Skip to content

Commit

Permalink
Avoid HTTP_STATUS macro clash on MacOSX13.0.sdk.
Browse files Browse the repository at this point in the history
This was detected by a WebRTC bot:

In file included from ../../net/test/embedded_test_server/http_response.h:19:
../../net/http/http_status_code.h:15:9: error: 'HTTP_STATUS' macro redefined [-Werror,-Wmacro-redefined]
        ^
sdk/xcode_links/MacOSX13.0.sdk/usr/include/cups/http.h:225:13: note: previous definition is here
            ^
1 error generated.

Bug: webrtc:14342
Change-Id: I9df431360a8c9259d1d3ae2fe559a14b90c3a373
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3830307
Reviewed-by: Ryan Hamilton <rch@chromium.org>
Reviewed-by: Fabio Tirelo <ftirelo@chromium.org>
Commit-Queue: Mirko Bonadei <mbonadei@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1034996}
  • Loading branch information
Mirko Bonadei authored and Chromium LUCI CQ committed Aug 15, 2022
1 parent 2e45a3a commit 2a81ba4
Show file tree
Hide file tree
Showing 4 changed files with 62 additions and 54 deletions.
4 changes: 2 additions & 2 deletions components/policy/test_support/test_server_helpers.cc
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,9 @@ namespace {
// net::HttpStatusCode enum. To allow distinguishing standard HTTP status code
// from custom ones, we define this array that will contain all standard codes.
constexpr net::HttpStatusCode kStandardHttpStatusCodes[] = {
#define HTTP_STATUS(label, code, reason) net::HttpStatusCode(code),
#define HTTP_STATUS_ENUM_VALUE(label, code, reason) net::HttpStatusCode(code),
#include "net/http/http_status_code_list.h"
#undef HTTP_STATUS
#undef HTTP_STATUS_ENUM_VALUE
};

} // namespace
Expand Down
7 changes: 4 additions & 3 deletions net/http/http_status_code.cc
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,11 @@ namespace net {

const char* GetHttpReasonPhrase(HttpStatusCode code) {
switch (code) {

#define HTTP_STATUS(label, code, reason) case HTTP_ ## label: return reason;
#define HTTP_STATUS_ENUM_VALUE(label, code, reason) \
case HTTP_##label: \
return reason;
#include "net/http/http_status_code_list.h"
#undef HTTP_STATUS
#undef HTTP_STATUS_ENUM_VALUE

default:
NOTREACHED() << "unknown HTTP status code " << code;
Expand Down
4 changes: 2 additions & 2 deletions net/http/http_status_code.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ namespace net {
// HTTP status codes.
enum HttpStatusCode {

#define HTTP_STATUS(label, code, reason) HTTP_ ## label = code,
#define HTTP_STATUS_ENUM_VALUE(label, code, reason) HTTP_##label = code,
#include "net/http/http_status_code_list.h"
#undef HTTP_STATUS
#undef HTTP_STATUS_ENUM_VALUE

};

Expand Down
101 changes: 54 additions & 47 deletions net/http/http_status_code_list.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,64 +12,71 @@
// Code Registry.
// http://www.iana.org/assignments/http-status-codes/http-status-codes.xml

#ifndef HTTP_STATUS
#ifndef HTTP_STATUS_ENUM_VALUE
#error "Do #include net/http/http_status_code.h instead of this file directly."
#endif

// Informational 1xx
HTTP_STATUS(CONTINUE, 100, "Continue")
HTTP_STATUS(SWITCHING_PROTOCOLS, 101, "Switching Protocols")
HTTP_STATUS(EARLY_HINTS, 103, "Early Hints")
HTTP_STATUS_ENUM_VALUE(CONTINUE, 100, "Continue")
HTTP_STATUS_ENUM_VALUE(SWITCHING_PROTOCOLS, 101, "Switching Protocols")
HTTP_STATUS_ENUM_VALUE(EARLY_HINTS, 103, "Early Hints")

// Successful 2xx
HTTP_STATUS(OK, 200, "OK")
HTTP_STATUS(CREATED, 201, "Created")
HTTP_STATUS(ACCEPTED, 202, "Accepted")
HTTP_STATUS(NON_AUTHORITATIVE_INFORMATION, 203, "Non-Authoritative Information")
HTTP_STATUS(NO_CONTENT, 204, "No Content")
HTTP_STATUS(RESET_CONTENT, 205, "Reset Content")
HTTP_STATUS(PARTIAL_CONTENT, 206, "Partial Content")
HTTP_STATUS_ENUM_VALUE(OK, 200, "OK")
HTTP_STATUS_ENUM_VALUE(CREATED, 201, "Created")
HTTP_STATUS_ENUM_VALUE(ACCEPTED, 202, "Accepted")
HTTP_STATUS_ENUM_VALUE(NON_AUTHORITATIVE_INFORMATION,
203,
"Non-Authoritative Information")
HTTP_STATUS_ENUM_VALUE(NO_CONTENT, 204, "No Content")
HTTP_STATUS_ENUM_VALUE(RESET_CONTENT, 205, "Reset Content")
HTTP_STATUS_ENUM_VALUE(PARTIAL_CONTENT, 206, "Partial Content")

// Redirection 3xx
HTTP_STATUS(MULTIPLE_CHOICES, 300, "Multiple Choices")
HTTP_STATUS(MOVED_PERMANENTLY, 301, "Moved Permanently")
HTTP_STATUS(FOUND, 302, "Found")
HTTP_STATUS(SEE_OTHER, 303, "See Other")
HTTP_STATUS(NOT_MODIFIED, 304, "Not Modified")
HTTP_STATUS(USE_PROXY, 305, "Use Proxy")
HTTP_STATUS_ENUM_VALUE(MULTIPLE_CHOICES, 300, "Multiple Choices")
HTTP_STATUS_ENUM_VALUE(MOVED_PERMANENTLY, 301, "Moved Permanently")
HTTP_STATUS_ENUM_VALUE(FOUND, 302, "Found")
HTTP_STATUS_ENUM_VALUE(SEE_OTHER, 303, "See Other")
HTTP_STATUS_ENUM_VALUE(NOT_MODIFIED, 304, "Not Modified")
HTTP_STATUS_ENUM_VALUE(USE_PROXY, 305, "Use Proxy")
// 306 is no longer used.
HTTP_STATUS(TEMPORARY_REDIRECT, 307, "Temporary Redirect")
HTTP_STATUS(PERMANENT_REDIRECT, 308, "Permanent Redirect")
HTTP_STATUS_ENUM_VALUE(TEMPORARY_REDIRECT, 307, "Temporary Redirect")
HTTP_STATUS_ENUM_VALUE(PERMANENT_REDIRECT, 308, "Permanent Redirect")

// Client error 4xx
HTTP_STATUS(BAD_REQUEST, 400, "Bad Request")
HTTP_STATUS(UNAUTHORIZED, 401, "Unauthorized")
HTTP_STATUS(PAYMENT_REQUIRED, 402, "Payment Required")
HTTP_STATUS(FORBIDDEN, 403, "Forbidden")
HTTP_STATUS(NOT_FOUND, 404, "Not Found")
HTTP_STATUS(METHOD_NOT_ALLOWED, 405, "Method Not Allowed")
HTTP_STATUS(NOT_ACCEPTABLE, 406, "Not Acceptable")
HTTP_STATUS(PROXY_AUTHENTICATION_REQUIRED, 407, "Proxy Authentication Required")
HTTP_STATUS(REQUEST_TIMEOUT, 408, "Request Timeout")
HTTP_STATUS(CONFLICT, 409, "Conflict")
HTTP_STATUS(GONE, 410, "Gone")
HTTP_STATUS(LENGTH_REQUIRED, 411, "Length Required")
HTTP_STATUS(PRECONDITION_FAILED, 412, "Precondition Failed")
HTTP_STATUS(REQUEST_ENTITY_TOO_LARGE, 413, "Request Entity Too Large")
HTTP_STATUS(REQUEST_URI_TOO_LONG, 414, "Request-URI Too Long")
HTTP_STATUS(UNSUPPORTED_MEDIA_TYPE, 415, "Unsupported Media Type")
HTTP_STATUS(REQUESTED_RANGE_NOT_SATISFIABLE, 416,
"Requested Range Not Satisfiable")
HTTP_STATUS(EXPECTATION_FAILED, 417, "Expectation Failed")
HTTP_STATUS_ENUM_VALUE(BAD_REQUEST, 400, "Bad Request")
HTTP_STATUS_ENUM_VALUE(UNAUTHORIZED, 401, "Unauthorized")
HTTP_STATUS_ENUM_VALUE(PAYMENT_REQUIRED, 402, "Payment Required")
HTTP_STATUS_ENUM_VALUE(FORBIDDEN, 403, "Forbidden")
HTTP_STATUS_ENUM_VALUE(NOT_FOUND, 404, "Not Found")
HTTP_STATUS_ENUM_VALUE(METHOD_NOT_ALLOWED, 405, "Method Not Allowed")
HTTP_STATUS_ENUM_VALUE(NOT_ACCEPTABLE, 406, "Not Acceptable")
HTTP_STATUS_ENUM_VALUE(PROXY_AUTHENTICATION_REQUIRED,
407,
"Proxy Authentication Required")
HTTP_STATUS_ENUM_VALUE(REQUEST_TIMEOUT, 408, "Request Timeout")
HTTP_STATUS_ENUM_VALUE(CONFLICT, 409, "Conflict")
HTTP_STATUS_ENUM_VALUE(GONE, 410, "Gone")
HTTP_STATUS_ENUM_VALUE(LENGTH_REQUIRED, 411, "Length Required")
HTTP_STATUS_ENUM_VALUE(PRECONDITION_FAILED, 412, "Precondition Failed")
HTTP_STATUS_ENUM_VALUE(REQUEST_ENTITY_TOO_LARGE,
413,
"Request Entity Too Large")
HTTP_STATUS_ENUM_VALUE(REQUEST_URI_TOO_LONG, 414, "Request-URI Too Long")
HTTP_STATUS_ENUM_VALUE(UNSUPPORTED_MEDIA_TYPE, 415, "Unsupported Media Type")
HTTP_STATUS_ENUM_VALUE(REQUESTED_RANGE_NOT_SATISFIABLE,
416,
"Requested Range Not Satisfiable")
HTTP_STATUS_ENUM_VALUE(EXPECTATION_FAILED, 417, "Expectation Failed")
// 418 returned by Cloud Print.
HTTP_STATUS(INVALID_XPRIVET_TOKEN, 418, "Invalid XPrivet Token")
HTTP_STATUS(TOO_EARLY, 425, "Too Early")
HTTP_STATUS(TOO_MANY_REQUESTS, 429, "Too Many Requests")
HTTP_STATUS_ENUM_VALUE(INVALID_XPRIVET_TOKEN, 418, "Invalid XPrivet Token")
HTTP_STATUS_ENUM_VALUE(TOO_EARLY, 425, "Too Early")
HTTP_STATUS_ENUM_VALUE(TOO_MANY_REQUESTS, 429, "Too Many Requests")

// Server error 5xx
HTTP_STATUS(INTERNAL_SERVER_ERROR, 500, "Internal Server Error")
HTTP_STATUS(NOT_IMPLEMENTED, 501, "Not Implemented")
HTTP_STATUS(BAD_GATEWAY, 502, "Bad Gateway")
HTTP_STATUS(SERVICE_UNAVAILABLE, 503, "Service Unavailable")
HTTP_STATUS(GATEWAY_TIMEOUT, 504, "Gateway Timeout")
HTTP_STATUS(VERSION_NOT_SUPPORTED, 505, "HTTP Version Not Supported")
HTTP_STATUS_ENUM_VALUE(INTERNAL_SERVER_ERROR, 500, "Internal Server Error")
HTTP_STATUS_ENUM_VALUE(NOT_IMPLEMENTED, 501, "Not Implemented")
HTTP_STATUS_ENUM_VALUE(BAD_GATEWAY, 502, "Bad Gateway")
HTTP_STATUS_ENUM_VALUE(SERVICE_UNAVAILABLE, 503, "Service Unavailable")
HTTP_STATUS_ENUM_VALUE(GATEWAY_TIMEOUT, 504, "Gateway Timeout")
HTTP_STATUS_ENUM_VALUE(VERSION_NOT_SUPPORTED, 505, "HTTP Version Not Supported")

0 comments on commit 2a81ba4

Please sign in to comment.