1*6777b538SAndroid Build Coastguard Worker // Copyright 2012 The Chromium Authors 2*6777b538SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 3*6777b538SAndroid Build Coastguard Worker // found in the LICENSE file. 4*6777b538SAndroid Build Coastguard Worker 5*6777b538SAndroid Build Coastguard Worker #ifndef NET_HTTP_HTTP_STATUS_CODE_H_ 6*6777b538SAndroid Build Coastguard Worker #define NET_HTTP_HTTP_STATUS_CODE_H_ 7*6777b538SAndroid Build Coastguard Worker 8*6777b538SAndroid Build Coastguard Worker #include "net/base/net_export.h" 9*6777b538SAndroid Build Coastguard Worker 10*6777b538SAndroid Build Coastguard Worker namespace net { 11*6777b538SAndroid Build Coastguard Worker 12*6777b538SAndroid Build Coastguard Worker // HTTP status codes. 13*6777b538SAndroid Build Coastguard Worker enum HttpStatusCode { 14*6777b538SAndroid Build Coastguard Worker 15*6777b538SAndroid Build Coastguard Worker #define HTTP_STATUS_ENUM_VALUE(label, code, reason) HTTP_##label = code, 16*6777b538SAndroid Build Coastguard Worker #include "net/http/http_status_code_list.h" 17*6777b538SAndroid Build Coastguard Worker #undef HTTP_STATUS_ENUM_VALUE 18*6777b538SAndroid Build Coastguard Worker 19*6777b538SAndroid Build Coastguard Worker }; 20*6777b538SAndroid Build Coastguard Worker 21*6777b538SAndroid Build Coastguard Worker // Returns the corresponding HTTP status description to use in the Reason-Phrase 22*6777b538SAndroid Build Coastguard Worker // field in an HTTP response for given |code|. It's based on the IANA HTTP 23*6777b538SAndroid Build Coastguard Worker // Status Code Registry. 24*6777b538SAndroid Build Coastguard Worker // http://www.iana.org/assignments/http-status-codes/http-status-codes.xml 25*6777b538SAndroid Build Coastguard Worker // 26*6777b538SAndroid Build Coastguard Worker // This function may not cover all codes defined in the IANA registry. It 27*6777b538SAndroid Build Coastguard Worker // returns an empty string (or crash in debug build) for status codes which are 28*6777b538SAndroid Build Coastguard Worker // not yet covered or just invalid. Please extend it when needed. 29*6777b538SAndroid Build Coastguard Worker NET_EXPORT const char* GetHttpReasonPhrase(HttpStatusCode code); 30*6777b538SAndroid Build Coastguard Worker 31*6777b538SAndroid Build Coastguard Worker // Similar to the one above, but returns a nullptr in case code does not map 32*6777b538SAndroid Build Coastguard Worker // to a known reasone phrase, which allows a gentle recovery in case the code 33*6777b538SAndroid Build Coastguard Worker // was obtained from a non-trusted party. 34*6777b538SAndroid Build Coastguard Worker NET_EXPORT const char* TryToGetHttpReasonPhrase(HttpStatusCode code); 35*6777b538SAndroid Build Coastguard Worker 36*6777b538SAndroid Build Coastguard Worker } // namespace net 37*6777b538SAndroid Build Coastguard Worker 38*6777b538SAndroid Build Coastguard Worker #endif // NET_HTTP_HTTP_STATUS_CODE_H_ 39