36 lines
1.0 KiB
Erlang
36 lines
1.0 KiB
Erlang
%%%-------------------------------------------------------------------
|
|
%%% @author anlicheng
|
|
%%% @copyright (C) 2025, <COMPANY>
|
|
%%% @doc
|
|
%%% 内部地址协议注册表
|
|
%%% @end
|
|
%%% Created : 13. 12月 2025 21:09
|
|
%%%-------------------------------------------------------------------
|
|
-module(sdlan_domain_regedit).
|
|
-author("anlicheng").
|
|
|
|
%% API
|
|
-export([init/0, insert/1, maybe_domain/1]).
|
|
|
|
-define(TABLE, sdlan_domain_regedit).
|
|
|
|
init() ->
|
|
ets:new(?TABLE, [named_table, ordered_set, public, {read_concurrency, true}, {write_concurrency, true}]).
|
|
|
|
-spec maybe_domain(QName :: binary()) -> boolean().
|
|
maybe_domain(QName) when is_binary(QName) ->
|
|
case binary:split(QName, <<".">>) of
|
|
[_, Domain] ->
|
|
case ets:lookup(?TABLE, Domain) of
|
|
[{Domain}] ->
|
|
true;
|
|
[] ->
|
|
false
|
|
end;
|
|
_ ->
|
|
false
|
|
end.
|
|
|
|
-spec insert(Domain :: binary()) -> no_return().
|
|
insert(Domain) when is_binary(Domain) ->
|
|
true = ets:insert(?TABLE, {Domain}). |