diff options
| author | Michael Klishin <klishinm@vmware.com> | 2023-01-19 15:27:56 -0600 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-01-19 15:27:56 -0600 |
| commit | 1a2d28f08d4bca68e19e82c0bc48344f366b4d5f (patch) | |
| tree | 74fa95885f339cf8c372de58a0e3ff4941ac294d | |
| parent | 51f8c87d595fa92d808941a03415168ab89e3c9d (diff) | |
| parent | b6cd708a081ac37ce934faf9d233abb0cfa09ac0 (diff) | |
| download | rabbitmq-server-git-1a2d28f08d4bca68e19e82c0bc48344f366b4d5f.tar.gz | |
Merge pull request #6956 from rabbitmq/dialyzer-warnings-rabbitmq_ewb_mqtt
Fix all dialyzer warnings in rabbitmq_web_mqtt
| -rw-r--r-- | deps/rabbitmq_mqtt/src/rabbit_mqtt_processor.erl | 1 | ||||
| -rw-r--r-- | deps/rabbitmq_web_mqtt/BUILD.bazel | 4 | ||||
| -rw-r--r-- | deps/rabbitmq_web_mqtt/src/rabbit_web_mqtt_app.erl | 6 | ||||
| -rw-r--r-- | deps/rabbitmq_web_mqtt/src/rabbit_web_mqtt_handler.erl | 33 |
4 files changed, 22 insertions, 22 deletions
diff --git a/deps/rabbitmq_mqtt/src/rabbit_mqtt_processor.erl b/deps/rabbitmq_mqtt/src/rabbit_mqtt_processor.erl index 7eef5da96e..a78fb6c3c7 100644 --- a/deps/rabbitmq_mqtt/src/rabbit_mqtt_processor.erl +++ b/deps/rabbitmq_mqtt/src/rabbit_mqtt_processor.erl @@ -398,6 +398,7 @@ maybe_send_retained_message(RPid, #mqtt_topic{name = Topic0, qos = SubscribeQos} end end. +-spec amqp_callback(#'basic.ack'{} | {#'basic.deliver'{}, #amqp_msg{}, {pid(), pid(), pid()}}, #proc_state{}) -> {'ok', #proc_state{}} | {'error', term(), term()}. amqp_callback({#'basic.deliver'{ consumer_tag = ConsumerTag, delivery_tag = DeliveryTag, routing_key = RoutingKey }, diff --git a/deps/rabbitmq_web_mqtt/BUILD.bazel b/deps/rabbitmq_web_mqtt/BUILD.bazel index 2dd2f9cc09..7210fd0ec1 100644 --- a/deps/rabbitmq_web_mqtt/BUILD.bazel +++ b/deps/rabbitmq_web_mqtt/BUILD.bazel @@ -55,13 +55,13 @@ xref() plt( name = "base_plt", - deps = BUILD_DEPS + DEPS, + plt = "//:base_plt", + deps = BUILD_DEPS + DEPS + RUNTIME_DEPS, ) dialyze( dialyzer_opts = RABBITMQ_DIALYZER_OPTS, plt = ":base_plt", - warnings_as_errors = False, ) broker_for_integration_suites() diff --git a/deps/rabbitmq_web_mqtt/src/rabbit_web_mqtt_app.erl b/deps/rabbitmq_web_mqtt/src/rabbit_web_mqtt_app.erl index 077dcb5fc7..a302957563 100644 --- a/deps/rabbitmq_web_mqtt/src/rabbit_web_mqtt_app.erl +++ b/deps/rabbitmq_web_mqtt/src/rabbit_web_mqtt_app.erl @@ -41,8 +41,8 @@ prep_stop(State) -> -spec stop(_) -> ok. stop(_State) -> - rabbit_networking:stop_ranch_listener_of_protocol(?TCP_PROTOCOL), - rabbit_networking:stop_ranch_listener_of_protocol(?TLS_PROTOCOL), + _ = rabbit_networking:stop_ranch_listener_of_protocol(?TCP_PROTOCOL), + _ = rabbit_networking:stop_ranch_listener_of_protocol(?TLS_PROTOCOL), ok. init([]) -> {ok, {{one_for_one, 1, 5}, []}}. @@ -126,7 +126,7 @@ start_tcp_listener(TCPConf0, CowboyOpts) -> [IpStr, Port]). start_tls_listener(TLSConf0, CowboyOpts) -> - rabbit_networking:ensure_ssl(), + _ = rabbit_networking:ensure_ssl(), {TLSConf, TLSIpStr, TLSPort} = get_tls_conf(TLSConf0), RanchTransportOpts = #{ socket_opts => TLSConf, diff --git a/deps/rabbitmq_web_mqtt/src/rabbit_web_mqtt_handler.erl b/deps/rabbitmq_web_mqtt/src/rabbit_web_mqtt_handler.erl index 59f04dc4ca..bc1b9abfbb 100644 --- a/deps/rabbitmq_web_mqtt/src/rabbit_web_mqtt_handler.erl +++ b/deps/rabbitmq_web_mqtt/src/rabbit_web_mqtt_handler.erl @@ -124,6 +124,17 @@ websocket_handle(Frame, State) -> [Frame]), {ok, State, hibernate}. +%% `rabbit_mqtt_processor:amqp_callback/2` doesn't actually return +%% {'error', _, _}, so this small function is a place to silence +%% unmatched warning. This allows to keep currently-unused +%% error-handling code. +-spec callback_reply(#state{}, {'ok', any()} | {'error', any(), any()}) -> {'ok', #state{}, 'hibernate'}. +-dialyzer({no_match, callback_reply/2}). +callback_reply(State, {ok, ProcState}) -> + {ok, State #state { proc_state = ProcState }, hibernate}; +callback_reply(State, {error, _Reason, _ProcState}) -> + stop(State). + websocket_info({conserve_resources, Conserve}, State) -> NewState = State#state{conserve_resources = Conserve}, handle_credits(control_throttle(NewState)); @@ -132,19 +143,9 @@ websocket_info({bump_credit, Msg}, State) -> handle_credits(control_throttle(State)); websocket_info({#'basic.deliver'{}, #amqp_msg{}, _DeliveryCtx} = Delivery, State = #state{ proc_state = ProcState0 }) -> - case rabbit_mqtt_processor:amqp_callback(Delivery, ProcState0) of - {ok, ProcState} -> - {ok, State #state { proc_state = ProcState }, hibernate}; - {error, _, _} -> - stop(State) - end; + callback_reply(State, rabbit_mqtt_processor:amqp_callback(Delivery, ProcState0)); websocket_info(#'basic.ack'{} = Ack, State = #state{ proc_state = ProcState0 }) -> - case rabbit_mqtt_processor:amqp_callback(Ack, ProcState0) of - {ok, ProcState} -> - {ok, State #state { proc_state = ProcState }, hibernate}; - {error, _, _} -> - stop(State) - end; + callback_reply(State, rabbit_mqtt_processor:amqp_callback(Ack, ProcState0)); websocket_info(#'basic.consume_ok'{}, State) -> {ok, State, hibernate}; websocket_info(#'basic.cancel'{}, State) -> @@ -187,7 +188,7 @@ websocket_info(Msg, State) -> terminate(_, _, #state{ proc_state = undefined }) -> ok; terminate(_, _, State) -> - stop_rabbit_mqtt_processor(State), + _ = stop_rabbit_mqtt_processor(State), ok. %% Internal. @@ -224,8 +225,6 @@ handle_data1(Data, State = #state{ parse_state = ParseState, rabbit_log_connection:info("MQTT protocol error ~tp for connection ~tp", [Reason, ConnStr]), stop(State, 1002, Reason); - {error, Error} -> - stop_with_framing_error(State, Error, ConnStr); {stop, _} -> stop(State) end; @@ -238,7 +237,7 @@ stop(State) -> stop(State, CloseCode, Error0) -> ok = file_handle_cache:release(), - stop_rabbit_mqtt_processor(State), + _ = stop_rabbit_mqtt_processor(State), Error1 = rabbit_data_coercion:to_binary(Error0), {[{close, CloseCode, Error1}], State}. @@ -253,7 +252,7 @@ stop_rabbit_mqtt_processor(State = #state{state = running, conn_name = ConnName}) -> maybe_emit_stats(State), rabbit_log_connection:info("closing Web MQTT connection ~tp (~ts)", [self(), ConnName]), - rabbit_mqtt_processor:send_will(ProcState), + _ = rabbit_mqtt_processor:send_will(ProcState), rabbit_mqtt_processor:close_connection(ProcState). handle_credits(State0) -> |
