]> granicus.if.org Git - ejabberd/commitdiff
Don't activate a socket untill its receiver process is controlling it
authorChristophe Romain <christophe.romain@process-one.net>
Fri, 16 May 2008 12:56:24 +0000 (12:56 +0000)
committerChristophe Romain <christophe.romain@process-one.net>
Fri, 16 May 2008 12:56:24 +0000 (12:56 +0000)
SVN Revision: 1325

ChangeLog
src/ejabberd_receiver.erl

index b798bd63b6b06b7c783abdee2bc4ccd0aafc773a..22fc6162f171bb597dafd402f958ad5ee52a1a9f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2008-05-16  Christophe Romain <christophe.romain@process-one.net>
+
+       * src/ejabberd_receiver.erl: Don't activate a socket untill its
+       receiver process is controlling it (Thanks to Aleksey)
+
 2008-05-12  Badlop  <badlop@process-one.net>
 
        * src/mod_muc/mod_muc_room.erl: Return Forbidden error message
index 6c9cdf01d8dcaca4b6c6a10fd7521616e1581be7..cb1e213c00816508d22b207026c508da30d66d62 100644 (file)
@@ -293,11 +293,14 @@ activate_socket(#state{socket = Socket,
 
 process_data(Data,
             #state{xml_stream_state = XMLStreamState,
-                   shaper_state = ShaperState} = State) ->
+                   shaper_state = ShaperState,
+                   c2s_pid = C2SPid} = State) ->
     ?DEBUG("Received XML on stream = ~p", [binary_to_list(Data)]),
     XMLStreamState1 = xml_stream:parse(XMLStreamState, Data),
     {NewShaperState, Pause} = shaper:update(ShaperState, size(Data)),
     if
+       C2SPid == undefined ->
+           ok;
        Pause > 0 ->
            erlang:start_timer(Pause, self(), activate);
        true ->