mirror of
https://github.com/processone/ejabberd.git
synced 2024-12-20 17:27:00 +01:00
Don't perform useless resourceprep
This commit is contained in:
parent
a098d1ec62
commit
719b4d1183
@ -24,7 +24,7 @@
|
||||
{fast_tls, ".*", {git, "https://github.com/processone/fast_tls", {tag, "1.0.10"}}},
|
||||
{stringprep, ".*", {git, "https://github.com/processone/stringprep", {tag, "1.0.7"}}},
|
||||
{fast_xml, ".*", {git, "https://github.com/processone/fast_xml", {tag, "1.1.21"}}},
|
||||
{xmpp, ".*", {git, "https://github.com/processone/xmpp", "f5cbd6dc0f3ec786b33a7e708979ed27dfbbb0ec"}},
|
||||
{xmpp, ".*", {git, "https://github.com/processone/xmpp", "4aaed37a16fc21be505553aabf9f47a48b8af027"}},
|
||||
{stun, ".*", {git, "https://github.com/processone/stun", {tag, "1.0.9"}}},
|
||||
{esip, ".*", {git, "https://github.com/processone/esip", {tag, "1.0.10"}}},
|
||||
{fast_yaml, ".*", {git, "https://github.com/processone/fast_yaml", {tag, "1.0.8"}}},
|
||||
|
@ -592,25 +592,17 @@ process_authenticated_packet(Pkt, #{mod := Mod} = State) ->
|
||||
|
||||
-spec process_bind(xmpp_element(), state()) -> state().
|
||||
process_bind(#iq{type = set, sub_els = [_]} = Pkt,
|
||||
#{xmlns := ?NS_CLIENT, mod := Mod, lang := Lang} = State) ->
|
||||
#{xmlns := ?NS_CLIENT, mod := Mod} = State) ->
|
||||
case xmpp:get_subtag(Pkt, #bind{}) of
|
||||
#bind{resource = R} ->
|
||||
case jid:resourceprep(R) of
|
||||
error ->
|
||||
Txt = <<"Malformed resource">>,
|
||||
Err = xmpp:err_bad_request(Txt, Lang),
|
||||
send_error(State, Pkt, Err);
|
||||
_ ->
|
||||
case Mod:bind(R, State) of
|
||||
{ok, #{user := U,
|
||||
server := S,
|
||||
resource := NewR} = State1} when NewR /= <<"">> ->
|
||||
Reply = #bind{jid = jid:make(U, S, NewR)},
|
||||
State2 = send_pkt(State1, xmpp:make_iq_result(Pkt, Reply)),
|
||||
process_stream_established(State2);
|
||||
{error, #stanza_error{} = Err, State1} ->
|
||||
send_error(State1, Pkt, Err)
|
||||
end
|
||||
case Mod:bind(R, State) of
|
||||
{ok, #{user := U, server := S, resource := NewR} = State1}
|
||||
when NewR /= <<"">> ->
|
||||
Reply = #bind{jid = jid:make(U, S, NewR)},
|
||||
State2 = send_pkt(State1, xmpp:make_iq_result(Pkt, Reply)),
|
||||
process_stream_established(State2);
|
||||
{error, #stanza_error{} = Err, State1} ->
|
||||
send_error(State1, Pkt, Err)
|
||||
end;
|
||||
_ ->
|
||||
try Mod:handle_unbinded_packet(Pkt, State)
|
||||
|
Loading…
Reference in New Issue
Block a user