StatusCode.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 1996-2023 The Squid Software Foundation and contributors
3  *
4  * Squid software is distributed under GPLv2+ license and includes
5  * contributions from numerous individuals and organizations.
6  * Please see the COPYING and CONTRIBUTORS files for details.
7  */
8 
9 #ifndef SQUID_SRC_HTTP_STATUSCODE_H
10 #define SQUID_SRC_HTTP_STATUSCODE_H
11 
12 namespace Http
13 {
14 
20 typedef enum {
21  scNone = 0,
22  scContinue = 100,
24  scProcessing = 102,
25  scEarlyHints = 103,
27  scOkay = 200,
28  scCreated = 201,
29  scAccepted = 202,
31  scNoContent = 204,
36  scImUsed = 226,
39  scFound = 302,
40  scSeeOther = 303,
42  scUseProxy = 305,
45  scBadRequest = 400,
48  scForbidden = 403,
49  scNotFound = 404,
54  scConflict = 409,
55  scGone = 410,
59  scUriTooLong = 414,
65  scLocked = 423,
67  scTooEarly = 425,
75  scBadGateway = 502,
84 
85  // The 6xx codes below are for internal use only: Bad requests result
86  // in scBadRequest; bad responses in scGatewayTimeout.
87 
90 } StatusCode;
91 
92 const char *StatusCodeString(const Http::StatusCode status);
94 inline bool Is1xx(const int sc) { return scContinue <= sc && sc < scOkay; }
96 inline bool Is4xx(const int sc) { return scBadRequest <= sc && sc < scInternalServerError; }
98 inline bool ProhibitsContentLength(const StatusCode sc) { return sc == scNoContent || Is1xx(sc); }
101 
102 } // namespace Http
103 
104 #endif /* SQUID_SRC_HTTP_STATUSCODE_H */
105 
@ scNetworkAuthenticationRequired
Definition: StatusCode.h:83
@ scMethodNotAllowed
Definition: StatusCode.h:50
@ scAccepted
Definition: StatusCode.h:29
@ scNonAuthoritativeInformation
Definition: StatusCode.h:30
@ scUnauthorized
Definition: StatusCode.h:46
@ scProcessing
Definition: StatusCode.h:24
@ scImUsed
Definition: StatusCode.h:36
@ scTooEarly
Definition: StatusCode.h:67
@ scBadRequest
Definition: StatusCode.h:45
@ scNone
Definition: StatusCode.h:21
@ scResetContent
Definition: StatusCode.h:32
@ scMisdirectedRequest
Definition: StatusCode.h:63
const char * StatusCodeString(const Http::StatusCode status)
Definition: StatusCode.cc:15
@ scLengthRequired
Definition: StatusCode.h:56
@ scUnsupportedMediaType
Definition: StatusCode.h:60
@ scUseProxy
Definition: StatusCode.h:42
@ scVariantAlsoNegotiates
Definition: StatusCode.h:79
@ scMovedPermanently
Definition: StatusCode.h:38
StatusCode
Definition: StatusCode.h:20
Definition: forward.h:17
@ scRequestedRangeNotSatisfied
Definition: StatusCode.h:61
bool Is1xx(const int sc)
whether this is an informational 1xx response status code
Definition: StatusCode.h:94
@ scSeeOther
Definition: StatusCode.h:40
@ scNotAcceptable
Definition: StatusCode.h:51
@ scGatewayTimeout
Definition: StatusCode.h:77
@ scTemporaryRedirect
Definition: StatusCode.h:43
@ scUploadResumptionSupported
Definition: StatusCode.h:26
@ scFailedDependency
Definition: StatusCode.h:66
@ scSwitchingProtocols
Definition: StatusCode.h:23
@ scForbidden
Definition: StatusCode.h:48
@ scInsufficientStorage
Definition: StatusCode.h:80
@ scNotImplemented
Definition: StatusCode.h:74
@ scPreconditionFailed
Definition: StatusCode.h:57
@ scTooManyRequests
Definition: StatusCode.h:70
@ scBadGateway
Definition: StatusCode.h:75
@ scPartialContent
Definition: StatusCode.h:33
@ scGone
Definition: StatusCode.h:55
@ scLoopDetected
Definition: StatusCode.h:81
@ scUnavailableForLegalReasons
Definition: StatusCode.h:72
@ scUnprocessableEntity
Definition: StatusCode.h:64
@ scCreated
Definition: StatusCode.h:28
@ scPermanentRedirect
Definition: StatusCode.h:44
@ scRequestHeaderFieldsTooLarge
Definition: StatusCode.h:71
bool Is4xx(const int sc)
whether this is a client error 4xx response status code
Definition: StatusCode.h:96
@ scUriTooLong
Definition: StatusCode.h:59
@ scContentTooLarge
Definition: StatusCode.h:58
@ scContinue
Definition: StatusCode.h:22
@ scServiceUnavailable
Definition: StatusCode.h:76
@ scInternalServerError
Definition: StatusCode.h:73
static int sc[16]
Definition: smbdes.c:121
@ scNotModified
Definition: StatusCode.h:41
@ scUpgradeRequired
Definition: StatusCode.h:68
@ scHttpVersionNotSupported
Definition: StatusCode.h:78
@ scFound
Definition: StatusCode.h:39
@ scRequestTimeout
Definition: StatusCode.h:53
@ scEarlyHints
Definition: StatusCode.h:25
@ scNotFound
Definition: StatusCode.h:49
@ scNotExtended
Definition: StatusCode.h:82
@ scPreconditionRequired
Definition: StatusCode.h:69
bool ProhibitsContentLength(const StatusCode sc)
whether this response status code prohibits sending Content-Length
Definition: StatusCode.h:98
@ scNoContent
Definition: StatusCode.h:31
@ scProxyAuthenticationRequired
Definition: StatusCode.h:52
@ scInvalidHeader
Squid header parsing error.
Definition: StatusCode.h:88
@ scPaymentRequired
Definition: StatusCode.h:47
@ scLocked
Definition: StatusCode.h:65
@ scConflict
Definition: StatusCode.h:54
bool IsReforwardableStatus(StatusCode)
whether to send the request to another peer based on the current response status code
Definition: StatusCode.cc:281
@ scMultiStatus
Definition: StatusCode.h:34
@ scMultipleChoices
Definition: StatusCode.h:37
@ scOkay
Definition: StatusCode.h:27
@ scHeaderTooLarge
Header too large to process.
Definition: StatusCode.h:89
@ scAlreadyReported
Definition: StatusCode.h:35
@ scExpectationFailed
Definition: StatusCode.h:62

 

Introduction

Documentation

Support

Miscellaneous