Просмотр исходного кода

fix(modules): fix start/stop exhook module failure

JianBo He 4 лет назад
Родитель
Сommit
56ac459b7f

+ 1 - 1
apps/emqx_exhook/src/emqx_exhook.app.src

@@ -1,6 +1,6 @@
 {application, emqx_exhook,
  [{description, "EMQ X Extension for Hook"},
-  {vsn, "4.3.1"},
+  {vsn, "4.3.2"},
   {modules, []},
   {registered, []},
   {mod, {emqx_exhook_app, []}},

+ 10 - 2
apps/emqx_exhook/src/emqx_exhook.appup.src

@@ -1,14 +1,22 @@
 %% -*-: erlang -*-
 {VSN,
  [
+    {"4.3.1", [
+      {load_module, emqx_exhook_server, brutal_purge, soft_purge, []}
+    ]},
     {"4.3.0", [
-      {load_module, emqx_exhook_pb, brutal_purge, soft_purge, []}
+      {load_module, emqx_exhook_pb, brutal_purge, soft_purge, []},
+      {load_module, emqx_exhook_server, brutal_purge, soft_purge, []}
     ]},
     {<<".*">>, []}
  ],
  [
+    {"4.3.1", [
+      {load_module, emqx_exhook_server, brutal_purge, soft_purge, []}
+    ]},
     {"4.3.0", [
-      {load_module, emqx_exhook_pb, brutal_purge, soft_purge, []}
+      {load_module, emqx_exhook_pb, brutal_purge, soft_purge, []},
+      {load_module, emqx_exhook_server, brutal_purge, soft_purge, []}
     ]},
     {<<".*">>, []}
  ]

+ 8 - 1
apps/emqx_exhook/src/emqx_exhook_server.erl

@@ -122,7 +122,7 @@ channel_opts(Opts) ->
     Scheme = proplists:get_value(scheme, Opts),
     Host = proplists:get_value(host, Opts),
     Port = proplists:get_value(port, Opts),
-    SvrAddr = lists:flatten(io_lib:format("~s://~s:~w", [Scheme, Host, Port])),
+    SvrAddr = format_http_uri(Scheme, Host, Port),
     ClientOpts = case Scheme of
                      https ->
                          SslOpts = lists:keydelete(ssl, 1, proplists:get_value(ssl_options, Opts, [])),
@@ -133,6 +133,13 @@ channel_opts(Opts) ->
                  end,
     {SvrAddr, ClientOpts}.
 
+format_http_uri(Scheme, Host0, Port) ->
+    Host = case is_tuple(Host0) of
+               true -> inet:ntoa(Host0);
+               _ -> Host0
+           end,
+    lists:flatten(io_lib:format("~s://~s:~w", [Scheme, Host, Port])).
+
 -spec unload(server()) -> ok.
 unload(#server{name = Name, hookspec = HookSpecs}) ->
     _ = do_deinit(Name),