]> granicus.if.org Git - ejabberd/commitdiff
* src/ejabberd_c2s.erl: Workaround to make SSL work properly
authorAlexey Shchepin <alexey@process-one.net>
Tue, 29 Apr 2003 19:05:31 +0000 (19:05 +0000)
committerAlexey Shchepin <alexey@process-one.net>
Tue, 29 Apr 2003 19:05:31 +0000 (19:05 +0000)
SVN Revision: 102

ChangeLog
src/ejabberd_c2s.erl

index d86f56d6c3ba2fd9c8bd715fe9755d5f76afb84d..27b856f0e3cd45ed7d0159ed6fa8281a094dd350 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,7 +1,15 @@
+2003-04-29  Alexey Shchepin  <alexey@sevcom.net>
+
+       * src/ejabberd_c2s.erl: Workaround to make SSL work properly
+
 2003-04-28  Alexey Shchepin  <alexey@sevcom.net>
 
        * src/mod_irc/mod_irc_connection.erl: Fixed URL to ejabberd
 
+2003-04-17  Alexey Shchepin  <alexey@sevcom.net>
+
+       * src/mod_muc/mod_muc.erl: Support for nick registration
+
 2003-04-15  Alexey Shchepin  <alexey@sevcom.net>
 
        * src/ejabberd_c2s.erl: Some fixes in work with socket
index d519176ed26d438988914d9ce7a9cdd938783856..4722888bd4003b608cffec9e5137ec4b9ac65297 100644 (file)
@@ -641,10 +641,16 @@ terminate(Reason, StateName, StateData) ->
 receiver(Socket, SockMod, Shaper, C2SPid) ->
     XMLStreamPid = xml_stream:start(C2SPid),
     ShaperState = shaper:new(Shaper),
-    receiver(Socket, SockMod, ShaperState, C2SPid, XMLStreamPid).
-
-receiver(Socket, SockMod, ShaperState, C2SPid, XMLStreamPid) ->
-    case SockMod:recv(Socket, 0) of
+    Timeout = case SockMod of
+                 ssl ->
+                     20;
+                 _ ->
+                     infinity
+             end,
+    receiver(Socket, SockMod, ShaperState, C2SPid, XMLStreamPid, Timeout).
+
+receiver(Socket, SockMod, ShaperState, C2SPid, XMLStreamPid, Timeout) ->
+    case SockMod:recv(Socket, 0, Timeout) of
         {ok, Text} ->
            ShaperSt1 = receive
                            {change_shaper, Shaper} ->
@@ -654,7 +660,11 @@ receiver(Socket, SockMod, ShaperState, C2SPid, XMLStreamPid) ->
                        end,
            NewShaperState = shaper:update(ShaperSt1, size(Text)),
            xml_stream:send_text(XMLStreamPid, Text),
-           receiver(Socket, SockMod, NewShaperState, C2SPid, XMLStreamPid);
+           receiver(Socket, SockMod, NewShaperState, C2SPid, XMLStreamPid,
+                    Timeout);
+       {error, timeout} ->
+           receiver(Socket, SockMod, ShaperState, C2SPid, XMLStreamPid,
+                    Timeout);
         {error, Reason} ->
            exit(XMLStreamPid, closed),
            gen_fsm:send_event(C2SPid, closed),