diff --git a/src/emqttd_auth_clientid.erl b/src/emqttd_auth_clientid.erl index 45b81c0f6..35b71035b 100644 --- a/src/emqttd_auth_clientid.erl +++ b/src/emqttd_auth_clientid.erl @@ -108,9 +108,8 @@ load(Fd, {ok, Line}, Clients) when is_list(Line) -> [#mqtt_auth_clientid{client_id = ClientId} | Clients]; [ClientId, IpAddr0] -> IpAddr = string:strip(IpAddr0, right, $\n), - Range = esockd_access:range(IpAddr), [#mqtt_auth_clientid{client_id = list_to_binary(ClientId), - ipaddr = {IpAddr, Range}}|Clients]; + ipaddr = esockd_cidr:parse(IpAddr, true)} | Clients]; BadLine -> lager:error("BadLine in clients.config: ~s", [BadLine]), Clients @@ -123,11 +122,12 @@ load(Fd, eof, Clients) -> check_clientid_only(ClientId, IpAddr) -> case mnesia:dirty_read(?AUTH_CLIENTID_TAB, ClientId) of - [] -> {error, clientid_not_found}; - [#?AUTH_CLIENTID_TAB{ipaddr = undefined}] -> ok; - [#?AUTH_CLIENTID_TAB{ipaddr = {_, {Start, End}}}] -> - I = esockd_access:atoi(IpAddr), - case I >= Start andalso I =< End of + [] -> + {error, clientid_not_found}; + [#?AUTH_CLIENTID_TAB{ipaddr = undefined}] -> + ok; + [#?AUTH_CLIENTID_TAB{ipaddr = CIDR}] -> + case esockd_cidr:match(IpAddr, CIDR) of true -> ok; false -> {error, wrong_ipaddr} end