mirror of
https://github.com/processone/ejabberd
synced 2025-10-03 09:49:18 +02:00
Improve reporting of unavailable SASL mechanisms
This commit is contained in:
parent
28f4131d50
commit
8e41bdc25e
1 changed files with 6 additions and 5 deletions
|
@ -534,8 +534,7 @@ process_features(#stream_features{sub_els = Els} = StreamFeatures,
|
||||||
process_sasl_mechanisms(Mechs, State2);
|
process_sasl_mechanisms(Mechs, State2);
|
||||||
false ->
|
false ->
|
||||||
process_sasl_failure(
|
process_sasl_failure(
|
||||||
#sasl_failure{reason = 'invalid-mechanism'},
|
<<"Peer provided no SASL mechanisms">>, State2)
|
||||||
State2)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -564,7 +563,7 @@ process_sasl_mechanisms(Mechs, #{user := User, server := Server} = State) ->
|
||||||
send_pkt(State1, #sasl_auth{mechanism = Mech, text = Authzid});
|
send_pkt(State1, #sasl_auth{mechanism = Mech, text = Authzid});
|
||||||
false ->
|
false ->
|
||||||
process_sasl_failure(
|
process_sasl_failure(
|
||||||
#sasl_failure{reason = 'invalid-mechanism'}, State)
|
<<"Peer doesn't support EXTERNAL authentication">>, State)
|
||||||
end.
|
end.
|
||||||
|
|
||||||
-spec process_starttls(state()) -> state().
|
-spec process_starttls(state()) -> state().
|
||||||
|
@ -638,10 +637,12 @@ process_sasl_success(#{mod := Mod,
|
||||||
end
|
end
|
||||||
end.
|
end.
|
||||||
|
|
||||||
-spec process_sasl_failure(sasl_failure(), state()) -> state().
|
-spec process_sasl_failure(sasl_failure() | binary(), state()) -> state().
|
||||||
process_sasl_failure(#sasl_failure{} = Failure, #{mod := Mod} = State) ->
|
process_sasl_failure(#sasl_failure{} = Failure, State) ->
|
||||||
Reason = format("Peer responded with error: ~s",
|
Reason = format("Peer responded with error: ~s",
|
||||||
[format_sasl_failure(Failure)]),
|
[format_sasl_failure(Failure)]),
|
||||||
|
process_sasl_failure(Reason, State);
|
||||||
|
process_sasl_failure(Reason, #{mod := Mod} = State) ->
|
||||||
try Mod:handle_auth_failure(<<"EXTERNAL">>, {auth, Reason}, State)
|
try Mod:handle_auth_failure(<<"EXTERNAL">>, {auth, Reason}, State)
|
||||||
catch _:undef -> process_stream_end({auth, Reason}, State)
|
catch _:undef -> process_stream_end({auth, Reason}, State)
|
||||||
end.
|
end.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue