diff options
author | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2010-05-10 10:00:30 +0400 |
---|---|---|
committer | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2010-05-10 10:00:30 +0400 |
commit | 92ec42565e94be7ec23c65164716438d5fe14b34 (patch) | |
tree | f3940733c1964d3a06b0dbcd2cfcadaf7c7f9efc /src/ejabberd_c2s.erl | |
parent | f84a1c88cfafef82796b380fb20e5bd6022c4454 (diff) |
full support for XEP-0115 v1.5 (EJAB-1223) (EJAB-1189)
Diffstat (limited to 'src/ejabberd_c2s.erl')
-rw-r--r-- | src/ejabberd_c2s.erl | 31 |
1 files changed, 20 insertions, 11 deletions
diff --git a/src/ejabberd_c2s.erl b/src/ejabberd_c2s.erl index 6474e239c..1bb7dd950 100644 --- a/src/ejabberd_c2s.erl +++ b/src/ejabberd_c2s.erl @@ -323,9 +323,9 @@ wait_for_stream({xmlstreamstart, #xmlel{ns = NS} = Opening}, StateData) -> [] end, Other_Feats = ejabberd_hooks:run_fold( - c2s_stream_features, - ServerB, - [], []), + c2s_stream_features, + ServerB, + [], [ServerB]), send_element(StateData, exmpp_stream:features( TLSFeature ++ @@ -340,17 +340,26 @@ wait_for_stream({xmlstreamstart, #xmlel{ns = NS} = Opening}, StateData) -> _ -> case StateData#state.resource of undefined -> - RosterVersioningFeature = ejabberd_hooks:run_fold(roster_get_versioning_feature, ServerB, [], [ServerB]), + RosterVersioningFeature = + ejabberd_hooks:run_fold( + roster_get_versioning_feature, + ServerB, + [], [ServerB]), + Other_Feats = ejabberd_hooks:run_fold( + c2s_stream_features, + ServerB, + [], [ServerB]), send_element( StateData, - exmpp_stream:features([ - exmpp_server_binding:feature(), - exmpp_server_session:feature() - | RosterVersioningFeature])), + exmpp_stream:features( + [exmpp_server_binding:feature(), + exmpp_server_session:feature()] + ++ RosterVersioningFeature + ++ Other_Feats)), fsm_next_state(wait_for_bind, - StateData#state{ - server = ServerB, - lang = Lang}); + StateData#state{ + server = ServerB, + lang = Lang}); _ -> send_element( StateData, |