]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Moved headerTable and related enums to RegisteredHeaders.cc
authorFrancesco Chemolli <kinkie@squid-cache.org>
Fri, 31 Jul 2015 14:42:48 +0000 (16:42 +0200)
committerFrancesco Chemolli <kinkie@squid-cache.org>
Fri, 31 Jul 2015 14:42:48 +0000 (16:42 +0200)
src/HttpHeader.cc
src/HttpHeader.h
src/http/Makefile.am
src/http/RegisteredHeaders.h

index 009972bf25e77e732a50a7447d9b0f0fcab46bbf..bfe08d59f3184e673267e5d2f7975fd4138d6d63 100644 (file)
  * 7. being looking at the other arrays removal
  */
 
-struct HeaderTableRecord {
-    const char *name;
-    http_hdr_type id;
-    field_type type;
-};
-
-/*
- * A table with major attributes for every known field.
- * We calculate name lengths and reorganize this array on start up.
- * After reorganization, field id can be used as an index to the table.
- *
- * Invariant on this table:
- * for each index in headerTable, (int)headerTable[index] = index
- */
-static const HeaderTableRecord headerTable[] = {
-    {"Accept", HDR_ACCEPT, ftStr},
-    {"Accept-Charset", HDR_ACCEPT_CHARSET, ftStr},
-    {"Accept-Encoding", HDR_ACCEPT_ENCODING, ftStr},
-    {"Accept-Language", HDR_ACCEPT_LANGUAGE, ftStr},
-    {"Accept-Ranges", HDR_ACCEPT_RANGES, ftStr},
-    {"Age", HDR_AGE, ftInt},
-    {"Allow", HDR_ALLOW, ftStr},
-    {"Alternate-Protocol", HDR_ALTERNATE_PROTOCOL, ftStr},
-    {"Authentication-Info", HDR_AUTHENTICATION_INFO, ftStr},
-    {"Authorization", HDR_AUTHORIZATION, ftStr},    /* for now */
-    {"Cache-Control", HDR_CACHE_CONTROL, ftPCc},
-    {"Connection", HDR_CONNECTION, ftStr},
-    {"Content-Base", HDR_CONTENT_BASE, ftStr},
-    {"Content-Disposition", HDR_CONTENT_DISPOSITION, ftStr},  /* for now */
-    {"Content-Encoding", HDR_CONTENT_ENCODING, ftStr},
-    {"Content-Language", HDR_CONTENT_LANGUAGE, ftStr},
-    {"Content-Length", HDR_CONTENT_LENGTH, ftInt64},
-    {"Content-Location", HDR_CONTENT_LOCATION, ftStr},
-    {"Content-MD5", HDR_CONTENT_MD5, ftStr},    /* for now */
-    {"Content-Range", HDR_CONTENT_RANGE, ftPContRange},
-    {"Content-Type", HDR_CONTENT_TYPE, ftStr},
-    {"Cookie", HDR_COOKIE, ftStr},
-    {"Cookie2", HDR_COOKIE2, ftStr},
-    {"Date", HDR_DATE, ftDate_1123},
-    {"ETag", HDR_ETAG, ftETag},
-    {"Expect", HDR_EXPECT, ftStr},
-    {"Expires", HDR_EXPIRES, ftDate_1123},
-    {"Forwarded", HDR_FORWARDED, ftStr},
-    {"From", HDR_FROM, ftStr},
-    {"Host", HDR_HOST, ftStr},
-    {"HTTP2-Settings", HDR_HTTP2_SETTINGS, ftStr}, /* for now */
-    {"If-Match", HDR_IF_MATCH, ftStr},  /* for now */
-    {"If-Modified-Since", HDR_IF_MODIFIED_SINCE, ftDate_1123},
-    {"If-None-Match", HDR_IF_NONE_MATCH, ftStr},    /* for now */
-    {"If-Range", HDR_IF_RANGE, ftDate_1123_or_ETag},
-    {"If-Unmodified-Since", HDR_IF_UNMODIFIED_SINCE, ftDate_1123},
-    {"Keep-Alive", HDR_KEEP_ALIVE, ftStr},
-    {"Key", HDR_KEY, ftStr},
-    {"Last-Modified", HDR_LAST_MODIFIED, ftDate_1123},
-    {"Link", HDR_LINK, ftStr},
-    {"Location", HDR_LOCATION, ftStr},
-    {"Max-Forwards", HDR_MAX_FORWARDS, ftInt64},
-    {"Mime-Version", HDR_MIME_VERSION, ftStr},  /* for now */
-    {"Negotiate", HDR_NEGOTIATE, ftStr},
-    {"Origin", HDR_ORIGIN, ftStr},
-    {"Pragma", HDR_PRAGMA, ftStr},
-    {"Proxy-Authenticate", HDR_PROXY_AUTHENTICATE, ftStr},
-    {"Proxy-Authentication-Info", HDR_PROXY_AUTHENTICATION_INFO, ftStr},
-    {"Proxy-Authorization", HDR_PROXY_AUTHORIZATION, ftStr},
-    {"Proxy-Connection", HDR_PROXY_CONNECTION, ftStr},
-    {"Proxy-support", HDR_PROXY_SUPPORT, ftStr},
-    {"Public", HDR_PUBLIC, ftStr},
-    {"Range", HDR_RANGE, ftPRange},
-    {"Referer", HDR_REFERER, ftStr},
-    {"Request-Range", HDR_REQUEST_RANGE, ftPRange}, /* usually matches HDR_RANGE */
-    {"Retry-After", HDR_RETRY_AFTER, ftStr},    /* for now (ftDate_1123 or ftInt!} */
-    {"Server", HDR_SERVER, ftStr},
-    {"Set-Cookie", HDR_SET_COOKIE, ftStr},
-    {"Set-Cookie2", HDR_SET_COOKIE2, ftStr},
-    {"TE", HDR_TE, ftStr},
-    {"Title", HDR_TITLE, ftStr},
-    {"Trailer", HDR_TRAILER, ftStr},
-    {"Transfer-Encoding", HDR_TRANSFER_ENCODING, ftStr},
-    {"Translate", HDR_TRANSLATE, ftStr},    /* for now. may need to crop */
-    {"Unless-Modified-Since", HDR_UNLESS_MODIFIED_SINCE, ftStr},  /* for now ignore. may need to crop */
-    {"Upgrade", HDR_UPGRADE, ftStr},    /* for now */
-    {"User-Agent", HDR_USER_AGENT, ftStr},
-    {"Vary", HDR_VARY, ftStr},  /* for now */
-    {"Via", HDR_VIA, ftStr},    /* for now */
-    {"Warning", HDR_WARNING, ftStr},    /* for now */
-    {"WWW-Authenticate", HDR_WWW_AUTHENTICATE, ftStr},
-    {"X-Cache", HDR_X_CACHE, ftStr},
-    {"X-Cache-Lookup", HDR_X_CACHE_LOOKUP, ftStr},
-    {"X-Forwarded-For", HDR_X_FORWARDED_FOR, ftStr},
-    {"X-Request-URI", HDR_X_REQUEST_URI, ftStr},
-    {"X-Squid-Error", HDR_X_SQUID_ERROR, ftStr},
-#if X_ACCELERATOR_VARY
-    {"X-Accelerator-Vary", HDR_X_ACCELERATOR_VARY, ftStr},
-#endif
-#if USE_ADAPTATION
-    {"X-Next-Services", HDR_X_NEXT_SERVICES, ftStr},
-#endif
-    {"Surrogate-Capability", HDR_SURROGATE_CAPABILITY, ftStr},
-    {"Surrogate-Control", HDR_SURROGATE_CONTROL, ftPSc},
-    {"Front-End-Https", HDR_FRONT_END_HTTPS, ftStr},
-    {"FTP-Command", HDR_FTP_COMMAND, ftStr},
-    {"FTP-Arguments", HDR_FTP_ARGUMENTS, ftStr},
-    {"FTP-Pre", HDR_FTP_PRE, ftStr},
-    {"FTP-Status", HDR_FTP_STATUS, ftInt},
-    {"FTP-Reason", HDR_FTP_REASON, ftStr},
-    {"Other:", HDR_OTHER, ftStr},    /* ':' will not allow matches */
-    {nullptr, HDR_BAD_HDR}    /* ':' will not allow matches */
-};
 
 LookupTable<http_hdr_type, HeaderTableRecord> headerLookupTable(HDR_BAD_HDR, headerTable);
 std::vector<HttpHeaderFieldStat> headerStatsTable(HDR_OTHER+1);
 
-http_hdr_type &operator++ (http_hdr_type &aHeader)
-{
-    int tmp = (int)aHeader;
-    aHeader = (http_hdr_type)(++tmp);
-    return aHeader;
-}
-
 /*
  * headers with field values defined as #(values) in HTTP/1.1
  * Headers that are currently not recognized, are commented out.
index 23a95df4a6efa70393e6f3ec3201edde062374e0..f1b1af17fc4708c3b45bc8c846ed402a3fcae720 100644 (file)
@@ -26,21 +26,6 @@ class Packable;
 class StoreEntry;
 class SBuf;
 
-/** possible types for http header fields */
-typedef enum {
-    ftInvalid = HDR_ENUM_END,   /**< to catch nasty errors with hdr_id<->fld_type clashes */
-    ftInt,
-    ftInt64,
-    ftStr,
-    ftDate_1123,
-    ftETag,
-    ftPCc,
-    ftPContRange,
-    ftPRange,
-    ftPSc,
-    ftDate_1123_or_ETag
-} field_type;
-
 /** Possible owners of http header */
 typedef enum {
     hoNone =0,
index 4ede3861f4424ecb50e3a895ffa1993b79bb9130..f8d96065cc05ee646fd2a8dbd4bcb54057fcb92e 100644 (file)
@@ -21,6 +21,7 @@ libsquid_http_la_SOURCES = \
        MethodType.h \
        ProtocolVersion.h \
        RegisteredHeaders.h \
+       RegisteredHeaders.cc \
        RequestMethod.cc \
        RequestMethod.h \
        StatusCode.cc \
index 63a6812ed15290cdd34c6c57a52c26982e972094..0ca367f30bcbacda1e0643dcc6b11ebf0bc7cfd0 100644 (file)
@@ -119,5 +119,30 @@ typedef enum {
     HDR_BAD_HDR = -1
 } http_hdr_type;
 
+/** possible types for http header fields */
+typedef enum {
+    ftInvalid = HDR_ENUM_END,   /**< to catch nasty errors with hdr_id<->fld_type clashes */
+    ftInt,
+    ftInt64,
+    ftStr,
+    ftDate_1123,
+    ftETag,
+    ftPCc,
+    ftPContRange,
+    ftPRange,
+    ftPSc,
+    ftDate_1123_or_ETag
+} field_type;
+
+/* POD for headerTable */
+class HeaderTableRecord {
+public:
+    const char *name;
+    http_hdr_type id;
+    field_type type;
+};
+
+extern const HeaderTableRecord headerTable[];
+
 #endif /* SQUID_HTTP_REGISTEREDHEADERS_H */