aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvgeniy Khramtsov <ekhramtsov@process-one.net>2017-01-23 16:30:16 +0300
committerEvgeniy Khramtsov <ekhramtsov@process-one.net>2017-01-23 16:30:16 +0300
commit48d8498dbb7d0313b71a1a79999cfb3024918761 (patch)
tree9391395a6ce258640b10774c8af74ee571407610
parentFix calling to mod_offline:store_packet (diff)
Avoid using maps:get/2 to keep compatibility with OTP 17.5
-rw-r--r--src/ejabberd_c2s.erl17
-rw-r--r--src/mod_client_state.erl8
-rw-r--r--src/mod_offline.erl5
-rw-r--r--src/xmpp_stream_pkix.erl4
4 files changed, 15 insertions, 19 deletions
diff --git a/src/ejabberd_c2s.erl b/src/ejabberd_c2s.erl
index fd2655632..e6a7f9c39 100644
--- a/src/ejabberd_c2s.erl
+++ b/src/ejabberd_c2s.erl
@@ -176,10 +176,9 @@ open_session(#{user := U, server := S, resource := R,
change_shaper(State),
Conn = get_conn_type(State),
State1 = State#{conn => Conn, resource => R, jid => JID},
- Prio = try maps:get(pres_last, State) of
+ Prio = case maps:get(pres_last, State, undefined) of
+ undefined -> undefined;
Pres -> get_priority_from_presence(Pres)
- catch _:{badkey, _} ->
- undefined
end,
Info = [{ip, IP}, {conn, Conn}, {auth_module, AuthModule}],
ejabberd_sm:open_session(SID, U, S, R, Prio, Info),
@@ -211,10 +210,9 @@ process_info(#{lserver := LServer} = State,
State1
end;
process_info(State, force_update_presence) ->
- try maps:get(pres_last, State) of
+ case maps:get(pres_last, State, error) of
+ error -> State;
Pres -> process_self_presence(State, Pres)
- catch _:{badkey, _} ->
- State
end;
process_info(State, Info) ->
?WARNING_MSG("got unexpected info: ~p", [Info]),
@@ -498,10 +496,11 @@ init([State, Opts]) ->
ejabberd_hooks:run_fold(c2s_init, {ok, State1}, [Opts]).
handle_call(get_presence, From, #{jid := JID} = State) ->
- Pres = try maps:get(pres_last, State)
- catch _:{badkey, _} ->
+ Pres = case maps:get(pres_last, State, error) of
+ error ->
BareJID = jid:remove_resource(JID),
- #presence{from = JID, to = BareJID, type = unavailable}
+ #presence{from = JID, to = BareJID, type = unavailable};
+ P -> P
end,
reply(From, Pres),
State;
diff --git a/src/mod_client_state.erl b/src/mod_client_state.erl
index 1243e7bf2..f57e3e32d 100644
--- a/src/mod_client_state.erl
+++ b/src/mod_client_state.erl
@@ -339,7 +339,10 @@ queue_new() ->
queue_in(Key, Type, Val, {N, Seq, Q}) ->
Seq1 = Seq + 1,
Time = {Seq1, p1_time_compat:timestamp()},
- try maps:get(Key, Q) of
+ case maps:get(Key, Q, error) of
+ error ->
+ Q1 = maps:put(Key, [{Type, Time, Val}], Q),
+ {N + 1, Seq1, Q1};
TypeVals ->
case lists:keymember(Type, 1, TypeVals) of
true ->
@@ -352,9 +355,6 @@ queue_in(Key, Type, Val, {N, Seq, Q}) ->
Q1 = maps:put(Key, TypeVals1, Q),
{N + 1, Seq1, Q1}
end
- catch _:{badkey, _} ->
- Q1 = maps:put(Key, [{Type, Time, Val}], Q),
- {N + 1, Seq1, Q1}
end.
-spec queue_take(term(), csi_queue()) -> {list(), csi_queue()} | error.
diff --git a/src/mod_offline.erl b/src/mod_offline.erl
index 43f13a629..61fa65bc5 100644
--- a/src/mod_offline.erl
+++ b/src/mod_offline.erl
@@ -565,10 +565,9 @@ c2s_self_presence({_Pres, #{resend_offline := false}} = Acc) ->
Acc;
c2s_self_presence({#presence{type = available} = NewPres, State} = Acc) ->
NewPrio = get_priority_from_presence(NewPres),
- LastPrio = try maps:get(pres_last, State) of
+ LastPrio = case maps:get(pres_last, State, error) of
+ error -> -1;
LastPres -> get_priority_from_presence(LastPres)
- catch _:{badkey, _} ->
- -1
end,
if LastPrio < 0 andalso NewPrio >= 0 ->
route_offline_messages(State);
diff --git a/src/xmpp_stream_pkix.erl b/src/xmpp_stream_pkix.erl
index 9d3da58be..16b7efa42 100644
--- a/src/xmpp_stream_pkix.erl
+++ b/src/xmpp_stream_pkix.erl
@@ -40,9 +40,7 @@ authenticate(State) ->
-> {ok, binary()} | {error, atom(), binary()}.
authenticate(#{xmlns := ?NS_SERVER, sockmod := SockMod,
socket := Socket} = State, Authzid) ->
- Peer = try maps:get(remote_server, State)
- catch _:{badkey, _} -> Authzid
- end,
+ Peer = maps:get(remote_server, State, Authzid),
case SockMod:get_peer_certificate(Socket) of
{ok, Cert} ->
case SockMod:get_verify_result(Socket) of