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
path: root/src
diff options
context:
space:
mode:
authorEvgeniy Khramtsov <ekhramtsov@process-one.net>2016-09-25 09:57:56 +0300
committerEvgeniy Khramtsov <ekhramtsov@process-one.net>2016-09-25 09:57:56 +0300
commit3112a7187f1d313de424aac157ba4484fc1b506c (patch)
treea3dfcad905e7cc16a22d5a411fd9489463721184 /src
parent7100c67be64b2833ac5bf5b93cbe8f920fc438c0 (diff)
Test anonymous auth
Diffstat (limited to 'src')
-rw-r--r--src/ejabberd_c2s.erl6
-rw-r--r--src/xmpp_codec.erl5
2 files changed, 7 insertions, 4 deletions
diff --git a/src/ejabberd_c2s.erl b/src/ejabberd_c2s.erl
index 02540259a..f7d8e9dbb 100644
--- a/src/ejabberd_c2s.erl
+++ b/src/ejabberd_c2s.erl
@@ -907,8 +907,12 @@ wait_for_bind(#sm_resume{} = Pkt, StateData) ->
wait_for_bind(Pkt, StateData) when ?IS_STREAM_MGMT_PACKET(Pkt) ->
fsm_next_state(wait_for_bind, dispatch_stream_mgmt(Pkt, StateData));
wait_for_bind(#iq{type = set,
- sub_els = [#bind{resource = R}]} = IQ, StateData) ->
+ sub_els = [#bind{resource = R0}]} = IQ, StateData) ->
U = StateData#state.user,
+ R = case R0 of
+ <<>> -> new_uniq_id();
+ _ -> R0
+ end,
case resource_conflict_action(U, StateData#state.server, R) of
closenew ->
Err = xmpp:make_error(IQ, xmpp:err_conflict()),
diff --git a/src/xmpp_codec.erl b/src/xmpp_codec.erl
index a0181e1e6..f8f8b205f 100644
--- a/src/xmpp_codec.erl
+++ b/src/xmpp_codec.erl
@@ -29737,7 +29737,7 @@ encode_legacy_auth_username_cdata(_val, _acc) ->
decode_bind(__TopXMLNS, __IgnoreEls,
{xmlel, <<"bind">>, _attrs, _els}) ->
{Jid, Resource} = decode_bind_els(__TopXMLNS,
- __IgnoreEls, _els, undefined, undefined),
+ __IgnoreEls, _els, undefined, <<>>),
{bind, Jid, Resource}.
decode_bind_els(__TopXMLNS, __IgnoreEls, [], Jid,
@@ -29800,8 +29800,7 @@ encode_bind({bind, Jid, Resource}, __TopXMLNS) ->
'encode_bind_$jid'(Jid, __TopXMLNS, _acc) ->
[encode_bind_jid(Jid, __TopXMLNS) | _acc].
-'encode_bind_$resource'(undefined, __TopXMLNS, _acc) ->
- _acc;
+'encode_bind_$resource'(<<>>, __TopXMLNS, _acc) -> _acc;
'encode_bind_$resource'(Resource, __TopXMLNS, _acc) ->
[encode_bind_resource(Resource, __TopXMLNS) | _acc].