diff options
author | Ingela Anderton Andin <[email protected]> | 2014-05-16 14:46:13 +0200 |
---|---|---|
committer | Ingela Anderton Andin <[email protected]> | 2014-05-23 16:33:50 +0200 |
commit | ee3fd715255a865b80532ad1cf88e51a8a4147ba (patch) | |
tree | f1aebf9ee99cdb3cc81e7fb47def0216c4a3fd72 /lib/inets/src/http_server/httpd_request.erl | |
parent | bf352a0d19499f9041cb887ce83c1c13b9def759 (diff) | |
download | otp-ee3fd715255a865b80532ad1cf88e51a8a4147ba.tar.gz otp-ee3fd715255a865b80532ad1cf88e51a8a4147ba.tar.bz2 otp-ee3fd715255a865b80532ad1cf88e51a8a4147ba.zip |
inets: httpd - Behave well on not so long but wrong request lines
Diffstat (limited to 'lib/inets/src/http_server/httpd_request.erl')
-rw-r--r-- | lib/inets/src/http_server/httpd_request.erl | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/lib/inets/src/http_server/httpd_request.erl b/lib/inets/src/http_server/httpd_request.erl index 68e7c16702..712c73599f 100644 --- a/lib/inets/src/http_server/httpd_request.erl +++ b/lib/inets/src/http_server/httpd_request.erl @@ -107,8 +107,12 @@ validate("POST", Uri, "HTTP/1." ++ _N) -> validate("TRACE", Uri, "HTTP/1." ++ N) when hd(N) >= $1 -> validate_uri(Uri); validate(Method, Uri, Version) -> - {error, {not_supported, {Method, Uri, Version}}}. - + case validate_version(Version) of + true -> + {error, {not_supported, {Method, Uri, Version}}}; + false -> + {error, {bad_version, Version}} + end. %%---------------------------------------------------------------------- %% The request is passed through the server as a record of type mod %% create it. @@ -296,6 +300,14 @@ validate_path([".." | Rest], N, RequestURI) -> validate_path([_ | Rest], N, RequestURI) -> validate_path(Rest, N + 1, RequestURI). +validate_version("HTTP/1.1") -> + true; +validate_version("HTTP/1.0") -> + true; +validate_version("HTTP/0.9") -> + true; +validate_version(_) -> + false. %%---------------------------------------------------------------------- %% There are 3 possible forms of the reuqest URI %% |