From: Alexey Shchepin Date: Sun, 4 May 2008 07:38:24 +0000 (+0000) Subject: * src/ejabberd_receiver.erl: Don't activate a socket untill its X-Git-Tag: v2.1.0~18^2~718 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=8267194d5ede7c2f204bedda3f5584fcc7442443;p=ejabberd * src/ejabberd_receiver.erl: Don't activate a socket untill its receiver process is controlling it SVN Revision: 1316 --- diff --git a/ChangeLog b/ChangeLog index 034243bf2..75ed56a3f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2008-05-04 Alexey Shchepin + + * src/ejabberd_receiver.erl: Don't activate a socket untill its + receiver process is controlling it + 2008-04-30 Christophe Romain * src/mod_caps.erl: XEP-0115 patch (EJAB-618) diff --git a/src/ejabberd_receiver.erl b/src/ejabberd_receiver.erl index 22600eb27..72b3608d6 100644 --- a/src/ejabberd_receiver.erl +++ b/src/ejabberd_receiver.erl @@ -288,11 +288,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 ->