summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBadlop <badlop@process-one.net>2008-06-21 00:19:57 +0000
committerBadlop <badlop@process-one.net>2008-06-21 00:19:57 +0000
commitb6fd0a5ca538a50a39f48aa72f47e3c6e93f3240 (patch)
tree435cf7eab41347bc8c8b4637b1a3c3f7e1449b01 /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.erl13
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,