You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
88 lines
3.1 KiB
88 lines
3.1 KiB
// |
|
// Copyright (C) 2009 The Android Open Source Project |
|
// |
|
// Licensed under the Apache License, Version 2.0 (the "License"); |
|
// you may not use this file except in compliance with the License. |
|
// You may obtain a copy of the License at |
|
// |
|
// http://www.apache.org/licenses/LICENSE-2.0 |
|
// |
|
// Unless required by applicable law or agreed to in writing, software |
|
// distributed under the License is distributed on an "AS IS" BASIS, |
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|
// See the License for the specific language governing permissions and |
|
// limitations under the License. |
|
// |
|
|
|
// Implementation of common HTTP related functions. |
|
|
|
#include "update_engine/common/http_common.h" |
|
|
|
#include <cstdlib> |
|
|
|
#include <base/macros.h> |
|
|
|
namespace chromeos_update_engine { |
|
|
|
const char *GetHttpResponseDescription(HttpResponseCode code) { |
|
static const struct { |
|
HttpResponseCode code; |
|
const char* description; |
|
} http_response_table[] = { |
|
{ kHttpResponseOk, "OK" }, |
|
{ kHttpResponseCreated, "Created" }, |
|
{ kHttpResponseAccepted, "Accepted" }, |
|
{ kHttpResponseNonAuthInfo, "Non-Authoritative Information" }, |
|
{ kHttpResponseNoContent, "No Content" }, |
|
{ kHttpResponseResetContent, "Reset Content" }, |
|
{ kHttpResponsePartialContent, "Partial Content" }, |
|
{ kHttpResponseMultipleChoices, "Multiple Choices" }, |
|
{ kHttpResponseMovedPermanently, "Moved Permanently" }, |
|
{ kHttpResponseFound, "Found" }, |
|
{ kHttpResponseSeeOther, "See Other" }, |
|
{ kHttpResponseNotModified, "Not Modified" }, |
|
{ kHttpResponseUseProxy, "Use Proxy" }, |
|
{ kHttpResponseTempRedirect, "Temporary Redirect" }, |
|
{ kHttpResponseBadRequest, "Bad Request" }, |
|
{ kHttpResponseUnauth, "Unauthorized" }, |
|
{ kHttpResponseForbidden, "Forbidden" }, |
|
{ kHttpResponseNotFound, "Not Found" }, |
|
{ kHttpResponseRequestTimeout, "Request Timeout" }, |
|
{ kHttpResponseInternalServerError, "Internal Server Error" }, |
|
{ kHttpResponseNotImplemented, "Not Implemented" }, |
|
{ kHttpResponseServiceUnavailable, "Service Unavailable" }, |
|
{ kHttpResponseVersionNotSupported, "HTTP Version Not Supported" }, |
|
}; |
|
|
|
bool is_found = false; |
|
size_t i; |
|
for (i = 0; i < arraysize(http_response_table); i++) |
|
if ((is_found = (http_response_table[i].code == code))) |
|
break; |
|
|
|
return (is_found ? http_response_table[i].description : "(unsupported)"); |
|
} |
|
|
|
HttpResponseCode StringToHttpResponseCode(const char *s) { |
|
return static_cast<HttpResponseCode>(strtoul(s, nullptr, 10)); |
|
} |
|
|
|
|
|
const char *GetHttpContentTypeString(HttpContentType type) { |
|
static const struct { |
|
HttpContentType type; |
|
const char* str; |
|
} http_content_type_table[] = { |
|
{ kHttpContentTypeTextXml, "text/xml" }, |
|
}; |
|
|
|
bool is_found = false; |
|
size_t i; |
|
for (i = 0; i < arraysize(http_content_type_table); i++) |
|
if ((is_found = (http_content_type_table[i].type == type))) |
|
break; |
|
|
|
return (is_found ? http_content_type_table[i].str : nullptr); |
|
} |
|
|
|
} // namespace chromeos_update_engine
|
|
|