aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaweł Chmielowski <pchmielowski@process-one.net>2018-05-23 14:52:47 +0200
committerPaweł Chmielowski <pchmielowski@process-one.net>2018-05-23 14:52:47 +0200
commit97f7d990075bd84931595cd5027632c40ddc8da9 (patch)
treee2090bc32f6a3a90e8f7506f868aecb95ab43dab
parentMerge pull request #2431 from yokomizor/fix-xmpp-commit (diff)
Handle "Expect: 100-continue" request header in ejabberd_http
-rw-r--r--src/ejabberd_http.erl7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/ejabberd_http.erl b/src/ejabberd_http.erl
index e3cba3d95..7afe1ce55 100644
--- a/src/ejabberd_http.erl
+++ b/src/ejabberd_http.erl
@@ -462,6 +462,7 @@ process_request(#state{request_host = undefined,
process_request(#state{request_method = Method,
request_auth = Auth,
request_lang = Lang,
+ request_version = Version,
sockmod = SockMod,
socket = Socket,
options = Options,
@@ -472,6 +473,12 @@ process_request(#state{request_method = Method,
request_headers = RequestHeaders,
request_handlers = RequestHandlers,
custom_headers = CustomHeaders} = State) ->
+ case proplists:get_value(<<"Expect">>, RequestHeaders, <<>>) of
+ <<"100-", _/binary>> when Version == {1, 1} ->
+ send_text(State, <<"HTTP/1.1 100 Continue\r\n\r\n">>);
+ _ ->
+ ok
+ end,
case extract_path_query(State) of
{State2, false} ->
{State2, make_bad_request(State)};