Current section

Files

Jump to
mdns_client_lib src mdns_client_lib_mdns_handler.erl
Raw

src/mdns_client_lib_mdns_handler.erl

-module(mdns_client_lib_mdns_handler).
-behaviour(gen_event).
-export([init/1,
terminate/2,
handle_info/2,
handle_event/2,
code_change/3,
handle_call/2]).
init([Type, Pid]) ->
{ok, {Type, Pid}}.
terminate(remove_handler, _) ->
ok;
terminate(stop, _) ->
ok;
terminate(Error, State) ->
error_logger:error_report([{module, ?MODULE},
{self, self()},
{error, Error},
{state, State}]).
handle_event({service_add, Type, Host, Options}, {Type, Pid}) ->
mdns_client_lib_server:add_endpoint(Pid, Host, Options),
{ok, {Type, Pid}};
handle_event({service_remove, Type, Host, Options}, {Type, Pid}) ->
mdns_client_lib_server:remove_endpoint(Pid, {Host, Options}),
{ok, {Type, Pid}};
handle_event(_, State) ->
{ok, State}.
handle_info({'EXIT', _, shutdown}, _) ->
remove_handler.
code_change(_, _, State) ->
{ok, State}.
handle_call(_, State) ->
{ok, ok, State}.