diff --git a/apps/emqttd/src/emqttd_acl_internal.erl b/apps/emqttd/src/emqttd_acl_internal.erl index cada39b1a..bc861b9e1 100644 --- a/apps/emqttd/src/emqttd_acl_internal.erl +++ b/apps/emqttd/src/emqttd_acl_internal.erl @@ -125,9 +125,11 @@ description() -> %%%============================================================================= init([AclOpts]) -> - ets:new(?ACL_RULE_TABLE, [set, proteted, named_table]), + ets:new(?ACL_RULE_TABLE, [set, protected, named_table]), AclFile = proplists:get_value(file, AclOpts), - load_rules(#state{acl_file = AclFile}). + {ok, State} = load_rules(#state{acl_file = AclFile}), + emqttd_acl:register_mod(?MODULE), + {ok, State}. handle_call(reload, _From, State) -> case catch load_rules(State) of diff --git a/apps/emqttd/src/emqttd_app.erl b/apps/emqttd/src/emqttd_app.erl index 404591480..8c28f9775 100644 --- a/apps/emqttd/src/emqttd_app.erl +++ b/apps/emqttd/src/emqttd_app.erl @@ -81,6 +81,7 @@ start_servers(Sup) -> {ok, RetainOpts} = application:get_env(retain), {ok, BrokerOpts} = application:get_env(broker), {ok, MetricOpts} = application:get_env(metrics), + {ok, AclOpts} = application:get_env(acl), lists:foreach( fun({Name, F}) when is_function(F) -> ?PRINT("~s is starting...", [Name]), @@ -107,6 +108,8 @@ start_servers(Sup) -> {"emqttd broker", emqttd_broker, BrokerOpts}, {"emqttd metrics", emqttd_metrics, MetricOpts}, {"emqttd bridge supervisor", {supervisor, emqttd_bridge_sup}}, + {"emqttd acl", emqttd_acl, AclOpts}, + {"emqttd internal acl", emqttd_acl_internal, AclOpts}, {"emqttd monitor", emqttd_monitor} ]).