From: Christophe Romain Date: Fri, 16 May 2008 12:56:24 +0000 (+0000) Subject: Don't activate a socket untill its receiver process is controlling it X-Git-Tag: v2.0.2~97 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=8041c033a9ff63a06f9b1853ec881107be98f524;p=ejabberd Don't activate a socket untill its receiver process is controlling it SVN Revision: 1325 --- diff --git a/ChangeLog b/ChangeLog index b798bd63b..22fc6162f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2008-05-16 Christophe Romain + + * src/ejabberd_receiver.erl: Don't activate a socket untill its + receiver process is controlling it (Thanks to Aleksey) + 2008-05-12 Badlop * src/mod_muc/mod_muc_room.erl: Return Forbidden error message diff --git a/src/ejabberd_receiver.erl b/src/ejabberd_receiver.erl index 6c9cdf01d..cb1e213c0 100644 --- a/src/ejabberd_receiver.erl +++ b/src/ejabberd_receiver.erl @@ -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 ->