summaryrefslogtreecommitdiff
path: root/include/http_core.h
diff options
context:
space:
mode:
authorWilliam A. Rowe Jr <wrowe@apache.org>2016-08-18 07:15:06 +0000
committerWilliam A. Rowe Jr <wrowe@apache.org>2016-08-18 07:15:06 +0000
commit8d77efe21eb7a1796521a3212109036d775a61f6 (patch)
tree3cd7d1358de5cf0f80d776eba101ed0c484503b8 /include/http_core.h
parent37237a15f56c763ad3b596dc32450b2af8a691eb (diff)
downloadhttpd-8d77efe21eb7a1796521a3212109036d775a61f6.tar.gz
Perform correct, strict parsing of the request line, handling the
http protocol tag, url and method appropriately, and attempting to extract values even in the presence of unusual whitespace in keeping with section 3.5, prior to responding with whatever error reply is needed. Conforms to RFC7230 in all respects, the section 3.5 optional behavior can be disabled by the user with a new HttpProtocolOptions StrictWhitespace flag. In all cases, the_request is regenerated from the parsed components with exactly two space characters. Shift sf's 'strict' method check from the Strict behavior because it violates forward proxy logic, adding a new RegisteredMethods flag, as it will certainly be useful to some. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1756729 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'include/http_core.h')
-rw-r--r--include/http_core.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/include/http_core.h b/include/http_core.h
index 0a434d34aa..1f3207e820 100644
--- a/include/http_core.h
+++ b/include/http_core.h
@@ -739,6 +739,16 @@ typedef struct {
#define AP_HTTP_CONFORMANCE_STRICT 2
char http_conformance;
+#define AP_HTTP_WHITESPACE_UNSET 0
+#define AP_HTTP_WHITESPACE_LENIENT 1
+#define AP_HTTP_WHITESPACE_STRICT 2
+ char http_whitespace;
+
+#define AP_HTTP_METHODS_UNSET 0
+#define AP_HTTP_METHODS_LENIENT 1
+#define AP_HTTP_METHODS_REGISTERED 2
+ char http_methods;
+
#define AP_HTTP_CL_HEAD_ZERO_UNSET 0
#define AP_HTTP_CL_HEAD_ZERO_ENABLE 1
#define AP_HTTP_CL_HEAD_ZERO_DISABLE 2