summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Klishin <klishinm@vmware.com>2023-01-19 15:27:56 -0600
committerGitHub <noreply@github.com>2023-01-19 15:27:56 -0600
commit1a2d28f08d4bca68e19e82c0bc48344f366b4d5f (patch)
tree74fa95885f339cf8c372de58a0e3ff4941ac294d
parent51f8c87d595fa92d808941a03415168ab89e3c9d (diff)
parentb6cd708a081ac37ce934faf9d233abb0cfa09ac0 (diff)
downloadrabbitmq-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.erl1
-rw-r--r--deps/rabbitmq_web_mqtt/BUILD.bazel4
-rw-r--r--deps/rabbitmq_web_mqtt/src/rabbit_web_mqtt_app.erl6
-rw-r--r--deps/rabbitmq_web_mqtt/src/rabbit_web_mqtt_handler.erl33
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) ->