Current section
Files
Jump to
Current section
Files
src/dhcp_handler.erl
-module(dhcp_handler).
-export([init/1, discover/4, request/4, release/3]).
-ignore_xref([behaviour_info/1]).
-type state() :: any().
-type server_id() :: dhcp:ip().
-callback init() ->
{ok, state(), server_id()}.
-callback discover(ReplyPkg, RequestPkg, state()) ->
{ok, state()} |
{ok, {offer, IP, Netmask, ReplyPkg}, state()} |
{ok, {offer, IP, Netmask, GW, ReplyPkg}, state()} |
{ok, {offer, IP, Netmask, [GW], ReplyPkg}, state()} |
{ok, ReplyPkg, state()} |
{error, any()} when ReplyPkg::dhcp:package(),
RequestPkg::dhcp:package(),
IP::dhcp:ip(),
Netmask::dhcp:ip(),
GW::dhcp:ip().
-callback request(ReplyPkg, RequestPkg, state()) ->
{ok, state()} |
{ok, {ack, ReplyPkg}, state()} |
{ok, {ack, IP, Netmask, ReplyPkg}, state()} |
{ok, {ack, IP, Netmask, GW, ReplyPkg}, state()} |
{ok, {ack, IP, Netmask, [GW], ReplyPkg}, state()} |
{ok, {nck, ReplyPkg}, state()} |
{ok, ReplyPkg, state()} |
{error, any()} when ReplyPkg::dhcp:package(),
RequestPkg::dhcp:package(),
IP::dhcp:ip(),
Netmask::dhcp:ip(),
GW::dhcp:ip().
-callback release(RequestPkg, state()) ->
{ok, state()} |
{error, any()} when RequestPkg::dhcp:package().
init(Handler) ->
Handler:init().
request(Handler, ReplyPkg, RequestPkg, State) ->
Handler:request(ReplyPkg, RequestPkg, State).
discover(Handler, ReplyPkg, RequestPkg, State) ->
Handler:discover(ReplyPkg, RequestPkg, State).
release(Handler, RequestPkg, State) ->
Handler:release(RequestPkg, State).