aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBadlop <badlop@process-one.net>2009-12-28 20:09:46 +0000
committerBadlop <badlop@process-one.net>2009-12-28 20:09:46 +0000
commit455d85a2780e5e712f1ec32e3235b7fe76474a40 (patch)
tree5a7932fb98540415016dc06cde1c5965e9087773
parentProvide 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.erl11
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},