|
80 | 80 | sasl_state,
|
81 | 81 | access,
|
82 | 82 | shaper,
|
83 |
| - zlib = false, |
| 83 | + zlib = {false, 0}, |
84 | 84 | tls = false,
|
85 | 85 | tls_required = false,
|
86 | 86 | tls_enabled = false,
|
@@ -161,8 +161,8 @@ get_presence(FsmRef) ->
|
161 | 161 | ?GEN_FSM:sync_send_all_state_event(FsmRef, get_presence, 1000).
|
162 | 162 |
|
163 | 163 | get_aux_field(Key, #state{aux_fields = Opts}) ->
|
164 |
| - case lists:keysearch(Key, 1, Opts) of |
165 |
| - {value, {_, Val}} -> |
| 164 | + case lists:keyfind(Key, 1, Opts) of |
| 165 | + {_, Val} -> |
166 | 166 | {ok, Val};
|
167 | 167 | _ ->
|
168 | 168 | error
|
@@ -208,20 +208,23 @@ stop(FsmRef) ->
|
208 | 208 | %% {stop, StopReason}
|
209 | 209 | %%----------------------------------------------------------------------
|
210 | 210 | init([{SockMod, Socket}, Opts]) ->
|
211 |
| - Access = case lists:keysearch(access, 1, Opts) of |
212 |
| - {value, {_, A}} -> A; |
| 211 | + Access = case lists:keyfind(access, 1, Opts) of |
| 212 | + {_, A} -> A; |
213 | 213 | _ -> all
|
214 | 214 | end,
|
215 |
| - Shaper = case lists:keysearch(shaper, 1, Opts) of |
216 |
| - {value, {_, S}} -> S; |
| 215 | + Shaper = case lists:keyfind(shaper, 1, Opts) of |
| 216 | + {_, S} -> S; |
217 | 217 | _ -> none
|
218 | 218 | end,
|
219 | 219 | XMLSocket =
|
220 |
| - case lists:keysearch(xml_socket, 1, Opts) of |
221 |
| - {value, {_, XS}} -> XS; |
| 220 | + case lists:keyfind(xml_socket, 1, Opts) of |
| 221 | + {_, XS} -> XS; |
222 | 222 | _ -> false
|
223 | 223 | end,
|
224 |
| - Zlib = lists:member(zlib, Opts), |
| 224 | + Zlib = case lists:keyfind(zlib, 1, Opts) of |
| 225 | + {_, ZlibLimit} -> {true, ZlibLimit}; |
| 226 | + _ -> {false, 0} |
| 227 | + end, |
225 | 228 | StartTLS = lists:member(starttls, Opts),
|
226 | 229 | StartTLSRequired = lists:member(starttls_required, Opts),
|
227 | 230 | TLSEnabled = lists:member(tls, Opts),
|
@@ -328,7 +331,7 @@ wait_for_stream({xmlstreamstart, _Name, Attrs}, StateData) ->
|
328 | 331 | SockMod =
|
329 | 332 | (StateData#state.sockmod):get_sockmod(
|
330 | 333 | StateData#state.socket),
|
331 |
| - Zlib = StateData#state.zlib, |
| 334 | + {Zlib, _} = StateData#state.zlib, |
332 | 335 | CompressFeature =
|
333 | 336 | case Zlib andalso
|
334 | 337 | ((SockMod == gen_tcp) orelse
|
@@ -469,8 +472,7 @@ wait_for_stream(closed, StateData) ->
|
469 | 472 | wait_for_auth({xmlstreamelement, El}, StateData) ->
|
470 | 473 | case is_auth_packet(El) of
|
471 | 474 | {auth, _ID, get, {U, _, _, _}} ->
|
472 |
| - XE = #xmlel{name = Name, |
473 |
| - attrs = Attrs} = jlib:make_result_iq_reply(El), |
| 475 | + XE = jlib:make_result_iq_reply(El), |
474 | 476 | case U of
|
475 | 477 | <<>> ->
|
476 | 478 | UCdata = [];
|
@@ -613,7 +615,7 @@ wait_for_auth(closed, StateData) ->
|
613 | 615 |
|
614 | 616 | wait_for_feature_request({xmlstreamelement, El}, StateData) ->
|
615 | 617 | #xmlel{name = Name, attrs = Attrs, children = Els} = El,
|
616 |
| - Zlib = StateData#state.zlib, |
| 618 | + {Zlib, ZlibLimit} = StateData#state.zlib, |
617 | 619 | TLS = StateData#state.tls,
|
618 | 620 | TLSEnabled = StateData#state.tls_enabled,
|
619 | 621 | TLSRequired = StateData#state.tls_required,
|
@@ -705,7 +707,7 @@ wait_for_feature_request({xmlstreamelement, El}, StateData) ->
|
705 | 707 | <<"zlib">> ->
|
706 | 708 | Socket = StateData#state.socket,
|
707 | 709 | ZlibSocket = (StateData#state.sockmod):compress(
|
708 |
| - Socket, |
| 710 | + Socket, ZlibLimit, |
709 | 711 | xml:element_to_binary(
|
710 | 712 | #xmlel{name = <<"compressed">>,
|
711 | 713 | attrs = [{<<"xmlns">>, ?NS_COMPRESS}]})),
|
@@ -979,7 +981,7 @@ session_established({xmlstreamend, _Name}, StateData) ->
|
979 | 981 | send_trailer(StateData),
|
980 | 982 | {stop, normal, StateData};
|
981 | 983 |
|
982 |
| -session_established({xmlstreamerror, "XML stanza is too big" = E}, StateData) -> |
| 984 | +session_established({xmlstreamerror, <<"XML stanza is too big">> = E}, StateData) -> |
983 | 985 | send_element(StateData, ?POLICY_VIOLATION_ERR(StateData#state.lang, E)),
|
984 | 986 | send_trailer(StateData),
|
985 | 987 | {stop, normal, StateData};
|
@@ -2217,8 +2219,8 @@ check_from(El, FromJID) ->
|
2217 | 2219 | end.
|
2218 | 2220 |
|
2219 | 2221 | fsm_limit_opts(Opts) ->
|
2220 |
| - case lists:keysearch(max_fsm_queue, 1, Opts) of |
2221 |
| - {value, {_, N}} when is_integer(N) -> |
| 2222 | + case lists:keyfind(max_fsm_queue, 1, Opts) of |
| 2223 | + {_, N} when is_integer(N) -> |
2222 | 2224 | [{max_queue, N}];
|
2223 | 2225 | _ ->
|
2224 | 2226 | case ejabberd_config:get_local_option(max_fsm_queue) of
|
|
0 commit comments