diff options
author | Badlop <badlop@process-one.net> | 2009-12-28 20:09:46 +0000 |
---|---|---|
committer | Badlop <badlop@process-one.net> | 2009-12-28 20:09:46 +0000 |
commit | 455d85a2780e5e712f1ec32e3235b7fe76474a40 (patch) | |
tree | 5a7932fb98540415016dc06cde1c5965e9087773 | |
parent | Provide more detailed log message when s2s stream start fails. (diff) |
Send features after negotiating binding and session (EJAB-1058)
SVN Revision: 2834
-rw-r--r-- | src/ejabberd_c2s.erl | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/ejabberd_c2s.erl b/src/ejabberd_c2s.erl index 69f615a10..94a71ccc4 100644 --- a/src/ejabberd_c2s.erl +++ b/src/ejabberd_c2s.erl @@ -773,6 +773,15 @@ wait_for_bind({xmlstreamelement, El}, StateData) -> fsm_next_state(wait_for_bind, StateData); _ -> JID = jlib:make_jid(U, StateData#state.server, R), + Server = StateData#state.server, + RosterVersioningFeature = + ejabberd_hooks:run_fold( + roster_get_versioning_feature, Server, [], [Server]), + StreamFeatures = [{xmlelement, "session", + [{"xmlns", ?NS_SESSION}], []} | + RosterVersioningFeature], + send_element(StateData, {xmlelement, "stream:features", + [], StreamFeatures}), Res = IQ#iq{type = result, sub_el = [{xmlelement, "bind", [{"xmlns", ?NS_BIND}], @@ -816,6 +825,8 @@ wait_for_session({xmlstreamelement, El}, StateData) -> ?INFO_MSG("(~w) Opened session for ~s", [StateData#state.socket, jlib:jid_to_string(JID)]), + send_element(StateData, {xmlelement, "stream:features", + [], []}), SID = {now(), self()}, Conn = get_conn_type(StateData), Info = [{ip, StateData#state.ip}, {conn, Conn}, |