#ifndef SQUID_HTTPMSG_H
#define SQUID_HTTPMSG_H
-#include "enums.h"
#include "typedefs.h"
#include "HttpHeader.h"
+#include "HttpStatusCode.h"
#include "HttpVersion.h"
#include "BodyPipe.h"
--- /dev/null
+#ifndef _SQUID_SRC_HTTP_STATUSCODE_H
+#define _SQUID_SRC_HTTP_STATUSCODE_H
+
+/**
+ * These basic HTTP reply status codes are defined by RFC 2616 unless otherwise stated.
+ */
+typedef enum {
+ HTTP_STATUS_NONE = 0,
+ HTTP_CONTINUE = 100,
+ HTTP_SWITCHING_PROTOCOLS = 101,
+ HTTP_PROCESSING = 102, /**< RFC2518 section 10.1 */
+ HTTP_OK = 200,
+ HTTP_CREATED = 201,
+ HTTP_ACCEPTED = 202,
+ HTTP_NON_AUTHORITATIVE_INFORMATION = 203,
+ HTTP_NO_CONTENT = 204,
+ HTTP_RESET_CONTENT = 205,
+ HTTP_PARTIAL_CONTENT = 206,
+ HTTP_MULTI_STATUS = 207, /**< RFC2518 section 10.2 */
+ HTTP_MULTIPLE_CHOICES = 300,
+ HTTP_MOVED_PERMANENTLY = 301,
+ HTTP_MOVED_TEMPORARILY = 302,
+ HTTP_SEE_OTHER = 303,
+ HTTP_NOT_MODIFIED = 304,
+ HTTP_USE_PROXY = 305,
+ HTTP_TEMPORARY_REDIRECT = 307,
+ HTTP_BAD_REQUEST = 400,
+ HTTP_UNAUTHORIZED = 401,
+ HTTP_PAYMENT_REQUIRED = 402,
+ HTTP_FORBIDDEN = 403,
+ HTTP_NOT_FOUND = 404,
+ HTTP_METHOD_NOT_ALLOWED = 405,
+ HTTP_NOT_ACCEPTABLE = 406,
+ HTTP_PROXY_AUTHENTICATION_REQUIRED = 407,
+ HTTP_REQUEST_TIMEOUT = 408,
+ HTTP_CONFLICT = 409,
+ HTTP_GONE = 410,
+ HTTP_LENGTH_REQUIRED = 411,
+ HTTP_PRECONDITION_FAILED = 412,
+ HTTP_REQUEST_ENTITY_TOO_LARGE = 413,
+ HTTP_REQUEST_URI_TOO_LARGE = 414,
+ HTTP_UNSUPPORTED_MEDIA_TYPE = 415,
+ HTTP_REQUESTED_RANGE_NOT_SATISFIABLE = 416,
+ HTTP_EXPECTATION_FAILED = 417,
+ HTTP_UNPROCESSABLE_ENTITY = 422, /**< RFC2518 section 10.3 */
+ HTTP_LOCKED = 423, /**< RFC2518 section 10.4 */
+ HTTP_FAILED_DEPENDENCY = 424, /**< RFC2518 section 10.5 */
+ HTTP_INTERNAL_SERVER_ERROR = 500,
+ HTTP_NOT_IMPLEMENTED = 501,
+ HTTP_BAD_GATEWAY = 502,
+ HTTP_SERVICE_UNAVAILABLE = 503,
+ HTTP_GATEWAY_TIMEOUT = 504,
+ HTTP_HTTP_VERSION_NOT_SUPPORTED = 505,
+ HTTP_INSUFFICIENT_STORAGE = 507, /**< RFC2518 section 10.6 */
+ HTTP_INVALID_HEADER = 600, /**< Squid header parsing error */
+ HTTP_HEADER_TOO_LARGE = 601 /* Header too large to process */
+} http_status;
+
+#endif /* _SQUID_SRC_HTTP_STATUSCODE_H */
$(HTCPSOURCE) \
http.cc \
http.h \
+ HttpStatusCode.h \
HttpStatusLine.cc \
HttpStatusLine.h \
HttpHdrCc.cc \
HttpMsg.cc \
HttpReply.h \
HttpReply.cc \
+ HttpStatusCode.h \
HttpStatusLine.h \
HttpStatusLine.cc \
mem.cc \
#ifndef SQUID_ENUMS_H
#define SQUID_ENUMS_H
+#include "HttpStatusCode.h"
+
typedef enum {
LOG_TAG_NONE,
LOG_TCP_HIT,
PROTO_MAX
} protocol_t;
-typedef enum {
- HTTP_STATUS_NONE = 0,
- HTTP_CONTINUE = 100,
- HTTP_SWITCHING_PROTOCOLS = 101,
- HTTP_PROCESSING = 102, /* RFC2518 section 10.1 */
- HTTP_OK = 200,
- HTTP_CREATED = 201,
- HTTP_ACCEPTED = 202,
- HTTP_NON_AUTHORITATIVE_INFORMATION = 203,
- HTTP_NO_CONTENT = 204,
- HTTP_RESET_CONTENT = 205,
- HTTP_PARTIAL_CONTENT = 206,
- HTTP_MULTI_STATUS = 207, /* RFC2518 section 10.2 */
- HTTP_MULTIPLE_CHOICES = 300,
- HTTP_MOVED_PERMANENTLY = 301,
- HTTP_MOVED_TEMPORARILY = 302,
- HTTP_SEE_OTHER = 303,
- HTTP_NOT_MODIFIED = 304,
- HTTP_USE_PROXY = 305,
- HTTP_TEMPORARY_REDIRECT = 307,
- HTTP_BAD_REQUEST = 400,
- HTTP_UNAUTHORIZED = 401,
- HTTP_PAYMENT_REQUIRED = 402,
- HTTP_FORBIDDEN = 403,
- HTTP_NOT_FOUND = 404,
- HTTP_METHOD_NOT_ALLOWED = 405,
- HTTP_NOT_ACCEPTABLE = 406,
- HTTP_PROXY_AUTHENTICATION_REQUIRED = 407,
- HTTP_REQUEST_TIMEOUT = 408,
- HTTP_CONFLICT = 409,
- HTTP_GONE = 410,
- HTTP_LENGTH_REQUIRED = 411,
- HTTP_PRECONDITION_FAILED = 412,
- HTTP_REQUEST_ENTITY_TOO_LARGE = 413,
- HTTP_REQUEST_URI_TOO_LARGE = 414,
- HTTP_UNSUPPORTED_MEDIA_TYPE = 415,
- HTTP_REQUESTED_RANGE_NOT_SATISFIABLE = 416,
- HTTP_EXPECTATION_FAILED = 417,
- HTTP_UNPROCESSABLE_ENTITY = 422, /* RFC2518 section 10.3 */
- HTTP_LOCKED = 423, /* RFC2518 section 10.4 */
- HTTP_FAILED_DEPENDENCY = 424, /* RFC2518 section 10.5 */
- HTTP_INTERNAL_SERVER_ERROR = 500,
- HTTP_NOT_IMPLEMENTED = 501,
- HTTP_BAD_GATEWAY = 502,
- HTTP_SERVICE_UNAVAILABLE = 503,
- HTTP_GATEWAY_TIMEOUT = 504,
- HTTP_HTTP_VERSION_NOT_SUPPORTED = 505,
- HTTP_INSUFFICIENT_STORAGE = 507, /* RFC2518 section 10.6 */
- HTTP_INVALID_HEADER = 600, /* Squid header parsing error */
- HTTP_HEADER_TOO_LARGE = 601 /* Header too large to process */
-} http_status;
-
/*
* These are for StoreEntry->flag, which is defined as a SHORT
*
SQUIDCEXTERN int etagParseInit(ETag * etag, const char *str);
SQUIDCEXTERN int etagIsEqual(const ETag * tag1, const ETag * tag2);
+#include "HttpStatusCode.h"
SQUIDCEXTERN const char *httpStatusString(http_status status);
/* Http Body */