diff options
author | Alexey Shchepin <alexey@process-one.net> | 2003-04-29 19:05:31 +0000 |
---|---|---|
committer | Alexey Shchepin <alexey@process-one.net> | 2003-04-29 19:05:31 +0000 |
commit | 5b1379fe591eefc883ffe8faff0c8f8e2dbdcb95 (patch) | |
tree | 150ab7f1bec570aacfabc8210c3eccdec41be20c | |
parent | * src/mod_irc/mod_irc_connection.erl: Fixed URL to ejabberd (diff) |
* src/ejabberd_c2s.erl: Workaround to make SSL work properly
SVN Revision: 102
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | src/ejabberd_c2s.erl | 20 |
2 files changed, 23 insertions, 5 deletions
@@ -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 diff --git a/src/ejabberd_c2s.erl b/src/ejabberd_c2s.erl index d519176ed..4722888bd 100644 --- a/src/ejabberd_c2s.erl +++ b/src/ejabberd_c2s.erl @@ -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), |