diff options
| -rw-r--r-- | src/rabbit_control_main.erl | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/src/rabbit_control_main.erl b/src/rabbit_control_main.erl index 2799d510d0..5d061252d0 100644 --- a/src/rabbit_control_main.erl +++ b/src/rabbit_control_main.erl @@ -769,8 +769,20 @@ call(Node, {Mod, Fun, Args}, InfoKeys, ToBinUtf8, Timeout) -> true -> lists:map(fun list_to_binary_utf8/1, Args); false -> Args end, - spawn_link(rabbit_cli, rpc_call, [Node, Mod, Fun, Args0, Ref = make_ref(), - Pid = self(), Timeout]), + Ref = make_ref(), + Pid = self(), + spawn_link( + fun () -> + case rabbit_cli:rpc_call(Node, Mod, Fun, Args0, + Ref, Pid, Timeout) of + {error, _} = Error -> + Pid ! {error, Error}; + {bad_argument, _} = Error -> + Pid ! {error, Error}; + _ -> + ok + end + end), rabbit_control_misc:wait_for_info_messages( Pid, Ref, InfoKeys, fun display_info_message/2, Timeout). |
