1aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// 2aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// Copyright (C) 2009 The Android Open Source Project 3aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// 4aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// Licensed under the Apache License, Version 2.0 (the "License"); 5aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// you may not use this file except in compliance with the License. 6aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// You may obtain a copy of the License at 7aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// 8aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// http://www.apache.org/licenses/LICENSE-2.0 9aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// 10aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// Unless required by applicable law or agreed to in writing, software 11aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// distributed under the License is distributed on an "AS IS" BASIS, 12aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// See the License for the specific language governing permissions and 14aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// limitations under the License. 15aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// 169bedeb51f80c9547269eef6c2ec09596033bb818Gilad Arnold 179bedeb51f80c9547269eef6c2ec09596033bb818Gilad Arnold// This file contains general definitions used in implementing, testing and 189bedeb51f80c9547269eef6c2ec09596033bb818Gilad Arnold// emulating communication over HTTP. 199bedeb51f80c9547269eef6c2ec09596033bb818Gilad Arnold 2039910dcd1d68987ccee7c3031dc269233a8490bbAlex Deymo#ifndef UPDATE_ENGINE_COMMON_HTTP_COMMON_H_ 2139910dcd1d68987ccee7c3031dc269233a8490bbAlex Deymo#define UPDATE_ENGINE_COMMON_HTTP_COMMON_H_ 229bedeb51f80c9547269eef6c2ec09596033bb818Gilad Arnold 232447c67957a652cbece2e73fd295dc975571d67fAlex Deymonamespace chromeos_update_engine { 249bedeb51f80c9547269eef6c2ec09596033bb818Gilad Arnold 259bedeb51f80c9547269eef6c2ec09596033bb818Gilad Arnold// Enumeration type for HTTP response codes. 269bedeb51f80c9547269eef6c2ec09596033bb818Gilad Arnoldenum HttpResponseCode { 279bedeb51f80c9547269eef6c2ec09596033bb818Gilad Arnold kHttpResponseUndefined = 0, 289bedeb51f80c9547269eef6c2ec09596033bb818Gilad Arnold kHttpResponseOk = 200, 299bedeb51f80c9547269eef6c2ec09596033bb818Gilad Arnold kHttpResponseCreated = 201, 309bedeb51f80c9547269eef6c2ec09596033bb818Gilad Arnold kHttpResponseAccepted = 202, 319bedeb51f80c9547269eef6c2ec09596033bb818Gilad Arnold kHttpResponseNonAuthInfo = 203, 329bedeb51f80c9547269eef6c2ec09596033bb818Gilad Arnold kHttpResponseNoContent = 204, 339bedeb51f80c9547269eef6c2ec09596033bb818Gilad Arnold kHttpResponseResetContent = 205, 349bedeb51f80c9547269eef6c2ec09596033bb818Gilad Arnold kHttpResponsePartialContent = 206, 359bedeb51f80c9547269eef6c2ec09596033bb818Gilad Arnold kHttpResponseMultipleChoices = 300, 369bedeb51f80c9547269eef6c2ec09596033bb818Gilad Arnold kHttpResponseMovedPermanently = 301, 379bedeb51f80c9547269eef6c2ec09596033bb818Gilad Arnold kHttpResponseFound = 302, 389bedeb51f80c9547269eef6c2ec09596033bb818Gilad Arnold kHttpResponseSeeOther = 303, 399bedeb51f80c9547269eef6c2ec09596033bb818Gilad Arnold kHttpResponseNotModified = 304, 409bedeb51f80c9547269eef6c2ec09596033bb818Gilad Arnold kHttpResponseUseProxy = 305, 419bedeb51f80c9547269eef6c2ec09596033bb818Gilad Arnold kHttpResponseTempRedirect = 307, 429bedeb51f80c9547269eef6c2ec09596033bb818Gilad Arnold kHttpResponseBadRequest = 400, 439bedeb51f80c9547269eef6c2ec09596033bb818Gilad Arnold kHttpResponseUnauth = 401, 449bedeb51f80c9547269eef6c2ec09596033bb818Gilad Arnold kHttpResponseForbidden = 403, 459bedeb51f80c9547269eef6c2ec09596033bb818Gilad Arnold kHttpResponseNotFound = 404, 469bedeb51f80c9547269eef6c2ec09596033bb818Gilad Arnold kHttpResponseRequestTimeout = 408, 47e4ad2508de4d69d7a90d3ce441efe2c82c55bd1dGilad Arnold kHttpResponseReqRangeNotSat = 416, 489bedeb51f80c9547269eef6c2ec09596033bb818Gilad Arnold kHttpResponseInternalServerError = 500, 499bedeb51f80c9547269eef6c2ec09596033bb818Gilad Arnold kHttpResponseNotImplemented = 501, 509bedeb51f80c9547269eef6c2ec09596033bb818Gilad Arnold kHttpResponseServiceUnavailable = 503, 519bedeb51f80c9547269eef6c2ec09596033bb818Gilad Arnold kHttpResponseVersionNotSupported = 505, 529bedeb51f80c9547269eef6c2ec09596033bb818Gilad Arnold}; 539bedeb51f80c9547269eef6c2ec09596033bb818Gilad Arnold 549bedeb51f80c9547269eef6c2ec09596033bb818Gilad Arnold// Returns a standard HTTP status line string for a given response code. 559bedeb51f80c9547269eef6c2ec09596033bb818Gilad Arnoldconst char *GetHttpResponseDescription(HttpResponseCode code); 569bedeb51f80c9547269eef6c2ec09596033bb818Gilad Arnold 579bedeb51f80c9547269eef6c2ec09596033bb818Gilad Arnold// Converts a string beginning with an HTTP error code into numerical value. 589bedeb51f80c9547269eef6c2ec09596033bb818Gilad ArnoldHttpResponseCode StringToHttpResponseCode(const char *s); 599bedeb51f80c9547269eef6c2ec09596033bb818Gilad Arnold 609dd1e7c6bbc605c2150800f763c596ff0a4ad1c1Gilad Arnold 619dd1e7c6bbc605c2150800f763c596ff0a4ad1c1Gilad Arnold// Enumeration type for HTTP Content-Type. 629dd1e7c6bbc605c2150800f763c596ff0a4ad1c1Gilad Arnoldenum HttpContentType { 639dd1e7c6bbc605c2150800f763c596ff0a4ad1c1Gilad Arnold kHttpContentTypeUnspecified = 0, 649dd1e7c6bbc605c2150800f763c596ff0a4ad1c1Gilad Arnold kHttpContentTypeTextXml, 659dd1e7c6bbc605c2150800f763c596ff0a4ad1c1Gilad Arnold}; 669dd1e7c6bbc605c2150800f763c596ff0a4ad1c1Gilad Arnold 679dd1e7c6bbc605c2150800f763c596ff0a4ad1c1Gilad Arnold// Returns a standard HTTP Content-Type string. 689dd1e7c6bbc605c2150800f763c596ff0a4ad1c1Gilad Arnoldconst char *GetHttpContentTypeString(HttpContentType type); 699dd1e7c6bbc605c2150800f763c596ff0a4ad1c1Gilad Arnold 702447c67957a652cbece2e73fd295dc975571d67fAlex Deymo} // namespace chromeos_update_engine 712447c67957a652cbece2e73fd295dc975571d67fAlex Deymo 7239910dcd1d68987ccee7c3031dc269233a8490bbAlex Deymo#endif // UPDATE_ENGINE_COMMON_HTTP_COMMON_H_ 73