]> granicus.if.org Git - ejabberd/commitdiff
* src/web/ejabberd_http.erl: Added a workaround for inet:peername
authorAlexey Shchepin <alexey@process-one.net>
Mon, 23 Feb 2009 05:25:10 +0000 (05:25 +0000)
committerAlexey Shchepin <alexey@process-one.net>
Mon, 23 Feb 2009 05:25:10 +0000 (05:25 +0000)
returning 'ebadf'

SVN Revision: 1910

ChangeLog
src/web/ejabberd_http.erl

index b4c50fb4c1422fc88abc4e32d2e15369762c12f7..f7863b148f9f771bb45749b6de77d00534d2a5e9 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -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
index d62d67ddab247849fba5c8b90aebbcc663e9f1e7..815e918a78239dee23a7cb6665269821be6d6c04 100644 (file)
@@ -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,