diff options
author | Alexey Shchepin <alexey@process-one.net> | 2009-02-23 05:25:10 +0000 |
---|---|---|
committer | Alexey Shchepin <alexey@process-one.net> | 2009-02-23 05:25:10 +0000 |
commit | b6208955f32245c300bde65a86da2ef4db9dbe54 (patch) | |
tree | 22d49669abea02ee0912db2b533a79d39031610b | |
parent | Fix a minor compilation warning and add EDoc comment (diff) |
* src/web/ejabberd_http.erl: Added a workaround for inet:peername
returning 'ebadf'
SVN Revision: 1910
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | src/web/ejabberd_http.erl | 14 |
2 files changed, 12 insertions, 7 deletions
@@ -1,3 +1,8 @@ +2009-02-23 Alexey Shchepin <alexey@process-one.net> + + * src/web/ejabberd_http.erl: Added a workaround for inet:peername + returning 'ebadf' + 2009-02-20 Badlop <badlop@process-one.net> * src/ejabberd_listener.erl: When stopping a listener, don't stop diff --git a/src/web/ejabberd_http.erl b/src/web/ejabberd_http.erl index d62d67dda..815e918a7 100644 --- a/src/web/ejabberd_http.erl +++ b/src/web/ejabberd_http.erl @@ -381,6 +381,13 @@ process_request(#state{request_method = Method, request_headers = RequestHeaders, request_handlers = RequestHandlers} = State) when (Method=:='POST' orelse Method=:='PUT') andalso is_integer(Len) -> + {ok, IP} = + case SockMod of + gen_tcp -> + inet:peername(Socket); + _ -> + SockMod:peername(Socket) + end, case SockMod of gen_tcp -> inet:setopts(Socket, [{packet, 0}]); @@ -400,13 +407,6 @@ process_request(#state{request_method = Method, LQ -> LQ end, - {ok, IP} = - case SockMod of - gen_tcp -> - inet:peername(Socket); - _ -> - SockMod:peername(Socket) - end, Request = #request{method = Method, path = LPath, q = LQuery, |