#include "base/StringArea.h"
#include "HttpHeader.h"
#include "HttpHeaderStat.h"
+#include "HttpHeaderTools.h"
#include "HttpHdrCc.h"
#include "StatHist.h"
#include "Store.h"
#include "HttpHdrSc.h"
#include "HttpHeader.h"
#include "HttpHeaderStat.h"
+#include "HttpHeaderTools.h"
#include "Store.h"
#include "protos.h"
#include "HttpHdrSc.h"
#include "HttpHeader.h"
#include "HttpHeaderStat.h"
+#include "HttpHeaderTools.h"
#include "MemBuf.h"
#include "mgr/Registration.h"
#include "profiler/Profiler.h"
#include "format/Format.h"
#include "HttpHeader.h"
+#include "typedefs.h"
#if HAVE_LIST
#include <list>
bool quoted;
};
-SQUIDCEXTERN int httpHeaderParseOffset(const char *start, int64_t * off);
+extern int httpHeaderParseOffset(const char *start, int64_t * off);
+
+class HttpHeaderFieldInfo;
+class String;
+
+extern HttpHeaderFieldInfo *httpHeaderBuildFieldsInfo(const HttpHeaderFieldAttrs * attrs, int count);
+extern void httpHeaderDestroyFieldsInfo(HttpHeaderFieldInfo * info, int count);
+extern http_hdr_type httpHeaderIdByName(const char *name, size_t name_len, const HttpHeaderFieldInfo * attrs, int end);
+extern http_hdr_type httpHeaderIdByNameDef(const char *name, int name_len);
+extern const char *httpHeaderNameById(int id);
+extern int httpHeaderHasConnDir(const HttpHeader * hdr, const char *directive);
+extern int httpHeaderParseInt(const char *start, int *val);
+extern void httpHeaderPutStrf(HttpHeader * hdr, http_hdr_type id, const char *fmt,...) PRINTF_FORMAT_ARG3;
+
#endif
#include "squid.h"
#include "Debug.h"
+#include "HttpHeaderTools.h"
#include "HttpMsg.h"
#include "MemBuf.h"
#include "profiler/Profiler.h"
HttpHeader.h \
HttpHeader.cc \
HttpHeaderMask.h \
+ HttpHeaderTools.h \
HttpHeaderTools.cc \
HttpControlMsg.h \
HttpMsg.cc \
HttpBody.cc \
HttpHeader.h \
HttpHeader.cc \
+ HttpHeaderTools.h \
HttpHeaderTools.cc \
HttpHdrContRange.cc \
HttpHdrRange.cc \
HttpBody.cc \
HttpHeader.h \
HttpHeader.cc \
+ HttpHeaderTools.h \
HttpHeaderTools.cc \
HttpHdrCc.h \
HttpHdrCc.cc \
HttpHdrSc.cc \
HttpHdrScTarget.cc \
HttpHdrRange.cc \
+ HttpHeaderTools.h \
HttpHeaderTools.cc \
HttpHeader.h \
HttpHeader.cc \
HttpBody.cc \
HttpHeader.h \
HttpHeader.cc \
+ HttpHeaderTools.h \
HttpHeaderTools.cc \
HttpHdrCc.h \
HttpHdrCc.cc \
HttpBody.cc \
HttpHeader.h \
HttpHeader.cc \
+ HttpHeaderTools.h \
HttpHeaderTools.cc \
HttpHdrCc.h \
HttpHdrCc.cc \
HttpHdrScTarget.cc \
HttpHeader.h \
HttpHeader.cc \
+ HttpHeaderTools.h \
HttpHeaderTools.cc \
HttpMsg.cc \
HttpParser.cc \
HttpBody.cc \
HttpHeader.h \
HttpHeader.cc \
+ HttpHeaderTools.h \
HttpHeaderTools.cc \
HttpHdrCc.h \
HttpHdrCc.cc \
HttpHdrRange.cc \
HttpHdrSc.cc \
HttpHdrScTarget.cc \
+ HttpHeaderTools.h \
HttpHeaderTools.cc \
HttpHeader.h \
HttpHeader.cc \
mem_node.cc \
stmem.cc \
tests/stub_mime.cc \
+ HttpHeaderTools.h \
HttpHeaderTools.cc \
HttpHeader.h \
HttpHeader.cc \
HttpHdrScTarget.cc \
HttpHeader.h \
HttpHeader.cc \
+ HttpHeaderTools.h \
HttpHeaderTools.cc \
HttpMsg.cc \
HttpReply.cc \
mem_node.cc \
stmem.cc \
tests/stub_mime.cc \
+ HttpHeaderTools.h \
HttpHeaderTools.cc \
HttpHeader.h \
HttpHeader.cc \
mem_node.cc \
stmem.cc \
tests/stub_mime.cc \
+ HttpHeaderTools.h \
HttpHeaderTools.cc \
HttpHeader.h \
HttpHeader.cc \
HttpHdrScTarget.cc \
HttpHeader.h \
HttpHeader.cc \
+ HttpHeaderTools.h \
HttpHeaderTools.cc \
HttpMsg.cc \
HttpParser.cc \
#include "protos.h"
#include "wordlist.h"
#include "ConfigParser.h"
+#include "HttpHeaderTools.h"
/* Construct an ACLHTTPHeaderData that uses an ACLRegex rule with the value of the
* selected header from a given request.
#include "comm.h"
#include "comm/Connection.h"
#include "err_detail_type.h"
+#include "HttpHeaderTools.h"
#include "HttpMsg.h"
#include "HttpReply.h"
#include "HttpRequest.h"
#include "adaptation/icap/OptXact.h"
#include "base/TextException.h"
#include "comm.h"
+#include "HttpHeaderTools.h"
#include "HttpReply.h"
#include "HttpRequest.h"
#include "protos.h"
#include "charset.h"
#include "mgr/Registration.h"
#include "Store.h"
+#include "HttpHeaderTools.h"
#include "HttpReply.h"
#include "protos.h"
#include "rfc1738.h"
#include "auth/digest/UserRequest.h"
#include "auth/State.h"
#include "charset.h"
+#include "HttpHeaderTools.h"
#include "HttpReply.h"
#include "HttpRequest.h"
#include "protos.h"
#include "base64.h"
#include "base/StringArea.h"
#include "event.h"
+#include "HttpHeaderTools.h"
#include "mgr/Registration.h"
#include "Store.h"
#include "HttpRequest.h"
#include "client_side.h"
#include "globals.h"
#include "helper.h"
+#include "HttpHeaderTools.h"
#include "HttpReply.h"
#include "HttpRequest.h"
#include "protos.h"
#include "mgr/Registration.h"
#include "Store.h"
#include "client_side.h"
+#include "HttpHeaderTools.h"
#include "HttpReply.h"
#include "HttpRequest.h"
#include "protos.h"
#include "mgr/Registration.h"
#include "Store.h"
#include "client_side.h"
+#include "HttpHeaderTools.h"
#include "HttpReply.h"
#include "HttpRequest.h"
#include "protos.h"
#include "ExternalACL.h"
#include "format/Format.h"
#include "globals.h"
+#include "HttpHeaderTools.h"
#include "HttpRequestMethod.h"
#include "ident/Config.h"
#include "ip/Intercept.h"
#include "fqdncache.h"
#include "http.h"
#include "HttpHdrContRange.h"
+#include "HttpHeaderTools.h"
#include "HttpReply.h"
#include "HttpRequest.h"
#include "ident/Config.h"
#include "forward.h"
#include "globals.h"
#include "globals.h"
+#include "HttpHeaderTools.h"
#include "HttpReply.h"
#include "HttpRequest.h"
#include "ip/QosConfig.h"
#include "ftp.h"
#include "Store.h"
#include "html_quote.h"
+#include "HttpHeaderTools.h"
#include "HttpReply.h"
#include "HttpRequest.h"
#include "MemObject.h"
#include "ExternalACL.h"
#include "fde.h"
#include "helper.h"
+#include "HttpHeaderTools.h"
#include "HttpReply.h"
#include "HttpRequest.h"
#include "ip/tools.h"
#include "HttpHdrContRange.h"
#include "HttpHdrSc.h"
#include "HttpHdrScTarget.h"
+#include "HttpHeaderTools.h"
#include "HttpReply.h"
#include "HttpRequest.h"
#include "log/access_log.h"
class HttpRequest;
class HttpReply;
-
-/* Http Header Tools */
-class HttpHeaderFieldInfo;
-SQUIDCEXTERN HttpHeaderFieldInfo *httpHeaderBuildFieldsInfo(const HttpHeaderFieldAttrs * attrs, int count);
-SQUIDCEXTERN void httpHeaderDestroyFieldsInfo(HttpHeaderFieldInfo * info, int count);
-SQUIDCEXTERN http_hdr_type httpHeaderIdByName(const char *name, size_t name_len, const HttpHeaderFieldInfo * attrs, int end);
-SQUIDCEXTERN http_hdr_type httpHeaderIdByNameDef(const char *name, int name_len);
-SQUIDCEXTERN const char *httpHeaderNameById(int id);
-SQUIDCEXTERN int httpHeaderHasConnDir(const HttpHeader * hdr, const char *directive);
+/* TODO: move to StrList.h */
SQUIDCEXTERN void strListAdd(String * str, const char *item, char del);
SQUIDCEXTERN int strListIsMember(const String * str, const char *item, char del);
SQUIDCEXTERN int strListIsSubstr(const String * list, const char *s, char del);
SQUIDCEXTERN int strListGetItem(const String * str, char del, const char **item, int *ilen, const char **pos);
-SQUIDCEXTERN const char *getStringPrefix(const char *str, const char *end);
-SQUIDCEXTERN int httpHeaderParseInt(const char *start, int *val);
-SQUIDCEXTERN void httpHeaderPutStrf(HttpHeader * hdr, http_hdr_type id, const char *fmt,...) PRINTF_FORMAT_ARG3;
+
+extern const char *getStringPrefix(const char *str, const char *end);