diff --git a/apps/dns_proxy/src/dns_proxy_sup.erl b/apps/dns_proxy/src/dns_proxy_sup.erl index c29bb0a..0d75827 100644 --- a/apps/dns_proxy/src/dns_proxy_sup.erl +++ b/apps/dns_proxy/src/dns_proxy_sup.erl @@ -35,6 +35,14 @@ init([]) -> shutdown => 2000, type => supervisor, modules => ['dns_handler_sup'] + }, + #{ + id => dns_server, + start => {dns_server, start_link, []}, + restart => permanent, + shutdown => 2000, + type => worker, + modules => ['dns_server'] } ], {ok, {SupFlags, ChildSpecs}}. diff --git a/apps/dns_proxy/src/dns_server.erl b/apps/dns_proxy/src/dns_server.erl index c20a310..aedf48c 100644 --- a/apps/dns_proxy/src/dns_server.erl +++ b/apps/dns_proxy/src/dns_server.erl @@ -1,11 +1,14 @@ -module(dns_server). --export([start/0, stop/0]). +-export([start_link/0, init/0]). --define(LISTEN_PORT, 53). +-define(LISTEN_PORT, 15353). -start() -> +start_link() -> + {ok, spawn_link(?MODULE, init, [])}. + +init() -> dns_cache:init(), - dns_zone_loader:load("priv/local.zone"), + %dns_zone_loader:load("priv/local.zone"), %% 配置上游 DNS Upstreams = [ @@ -18,10 +21,6 @@ start() -> io:format("DNS Forwarder started on UDP port ~p~n", [?LISTEN_PORT]), loop(Sock). -stop() -> - gen_udp:close(?LISTEN_PORT), - ok. - loop(Sock) -> receive {udp, Sock, Ip, Port, Packet} ->