Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/processone/ejabberd.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvgeniy Khramtsov <ekhramtsov@process-one.net>2010-05-10 10:00:30 +0400
committerEvgeniy Khramtsov <ekhramtsov@process-one.net>2010-05-10 10:00:30 +0400
commit92ec42565e94be7ec23c65164716438d5fe14b34 (patch)
treef3940733c1964d3a06b0dbcd2cfcadaf7c7f9efc /src/ejabberd_c2s.erl
parentf84a1c88cfafef82796b380fb20e5bd6022c4454 (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.erl31
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,