diff --git a/test/emqx_request_handler.erl b/test/emqx_request_handler.erl index d80288023..b936d8406 100644 --- a/test/emqx_request_handler.erl +++ b/test/emqx_request_handler.erl @@ -23,8 +23,6 @@ -export([start_link/4, stop/1]). --include("emqx_client.hrl"). - -type qos() :: emqx_mqtt_types:qos_name() | emqx_mqtt_types:qos(). -type topic() :: emqx_topic:topic(). -type handler() :: fun((CorrData :: binary(), ReqPayload :: binary()) -> RspPayload :: binary()). @@ -65,26 +63,21 @@ handle_msg(ReqMsg, RequestHandler, Parent) -> CorrData = maps:get('Correlation-Data', Props), RspProps = maps:without(['Response-Topic'], Props), RspPayload = RequestHandler(CorrData, ReqPayload), - RspMsg = #mqtt_msg{qos = QoS, - topic = RspTopic, - props = RspProps, - payload = RspPayload - }, emqx_logger:debug("~p sending response msg to topic ~s with~n" "corr-data=~p~npayload=~p", [?MODULE, RspTopic, CorrData, RspPayload]), - ok = send_response(RspMsg); + ok = send_response(RspTopic, RspProps, RspPayload, QoS); _ -> Parent ! {discarded, ReqPayload}, ok end. -send_response(Msg) -> +send_response(Topic, Properties, Payload, QoS) -> %% This function is evaluated by emqx_client itself. %% hence delegate to another temp process for the loopback gen_statem call. Client = self(), _ = spawn_link(fun() -> - case emqx_client:publish(Client, Msg) of + case emqx_client:publish(Client, Topic, Properties, Payload, [{qos, QoS}]) of ok -> ok; {ok, _} -> ok; {error, Reason} -> exit({failed_to_publish_response, Reason}) diff --git a/test/emqx_request_sender.erl b/test/emqx_request_sender.erl index e01db96c0..6cf3cd3a7 100644 --- a/test/emqx_request_sender.erl +++ b/test/emqx_request_sender.erl @@ -22,8 +22,6 @@ -export([start_link/3, stop/1, send/6]). --include("emqx_client.hrl"). - start_link(ResponseTopic, QoS, Options0) -> Parent = self(), MsgHandler = make_msg_handler(Parent), @@ -48,12 +46,7 @@ send(Client, ReqTopic, RspTopic, CorrData, Payload, QoS) -> Props = #{'Response-Topic' => RspTopic, 'Correlation-Data' => CorrData }, - Msg = #mqtt_msg{qos = QoS, - topic = ReqTopic, - props = Props, - payload = Payload - }, - case emqx_client:publish(Client, Msg) of + case emqx_client:publish(Client, ReqTopic, Props, Payload, [{qos, QoS}]) of ok -> ok; %% QoS = 0 {ok, _} -> ok; {error, _} = E -> E