diff --git a/ChangeLog b/ChangeLog index 4f5b3dc93..a004a93bc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2004-10-06 Alexey Shchepin + + * src/ejabberd_s2s_out.erl: Fixed socket closing condition + 2004-10-05 Alexey Shchepin * src/web/ejabberd_http_poll.erl: Properly handle bad requests diff --git a/src/ejabberd_s2s_out.erl b/src/ejabberd_s2s_out.erl index 07b976266..4da88b0cd 100644 --- a/src/ejabberd_s2s_out.erl +++ b/src/ejabberd_s2s_out.erl @@ -150,9 +150,8 @@ wait_for_stream({xmlstreamstart, Name, Attrs}, StateData) -> Server = StateData#state.server, New = case StateData#state.new of false -> - case - ejabberd_s2s:try_register( - {StateData#state.myname, Server}) of + case ejabberd_s2s:try_register( + {StateData#state.myname, Server}) of {key, Key} -> Key; false -> @@ -234,7 +233,12 @@ wait_for_validation({xmlstreamelement, El}, StateData) -> StateData#state.server, StateData#state.myname}) end, - {stop, normal, StateData} + if + StateData#state.verify == false -> + {stop, normal, StateData}; + true -> + {next_state, wait_for_validation, StateData} + end end; _ -> {next_state, wait_for_validation, StateData}