diff options
author | Badlop <badlop@process-one.net> | 2008-06-21 00:19:57 +0000 |
---|---|---|
committer | Badlop <badlop@process-one.net> | 2008-06-21 00:19:57 +0000 |
commit | b6fd0a5ca538a50a39f48aa72f47e3c6e93f3240 (patch) | |
tree | 435cf7eab41347bc8c8b4637b1a3c3f7e1449b01 /src | |
parent | * doc/guide.tex: Explain that S2S outgoing first tries IPv4 and if (diff) |
* src/web/ejabberd_http.erl: Support PUT and DELETE methods in
ejabberd_http (thanks to Eric Cestari)(EJAB-662)
SVN Revision: 1373
Diffstat (limited to 'src')
-rw-r--r-- | src/web/ejabberd_http.erl | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/web/ejabberd_http.erl b/src/web/ejabberd_http.erl index a5391080..51384a21 100644 --- a/src/web/ejabberd_http.erl +++ b/src/web/ejabberd_http.erl @@ -271,13 +271,14 @@ process(Handlers, Request) -> process(HandlersLeft, Request) end. -process_request(#state{request_method = 'GET', +process_request(#state{request_method = Method, request_path = {abs_path, Path}, request_auth = Auth, request_lang = Lang, request_handlers = RequestHandlers, sockmod = SockMod, - socket = Socket} = State) -> + socket = Socket} = State) + when Method=:='GET' orelse Method=:='HEAD' orelse Method=:='DELETE' -> case (catch url_decode_q_split(Path)) of {'EXIT', _} -> process_request(false); @@ -296,7 +297,7 @@ process_request(#state{request_method = 'GET', _ -> SockMod:peername(Socket) end, - Request = #request{method = 'GET', + Request = #request{method = Method, path = LPath, q = LQuery, auth = Auth, @@ -319,7 +320,7 @@ process_request(#state{request_method = 'GET', end end; -process_request(#state{request_method = 'POST', +process_request(#state{request_method = Method, request_path = {abs_path, Path}, request_auth = Auth, request_content_length = Len, @@ -327,7 +328,7 @@ process_request(#state{request_method = 'POST', sockmod = SockMod, socket = Socket, request_handlers = RequestHandlers} = State) - when is_integer(Len) -> + when (Method=:='POST' orelse Method=:='PUT') andalso is_integer(Len) -> case SockMod of gen_tcp -> inet:setopts(Socket, [{packet, 0}]); @@ -347,7 +348,7 @@ process_request(#state{request_method = 'POST', LQ -> LQ end, - Request = #request{method = 'POST', + Request = #request{method = Method, path = LPath, q = LQuery, auth = Auth, |