-module(pf_route_socket). -export([test/0, open/5]). test() -> open(17, 3, 0, fun (_) -> ok end, fun (_) -> ok end). open(PfRoute, SockRaw, AfUnspec, OpenFun, ParseFun) -> {ok, Socket} = socket:open(PfRoute, SockRaw, AfUnspec), OpenFun(Socket), recv(Socket, ParseFun). recv(Socket, ParseFun) -> case socket:recv(Socket, 0) of {ok, <>} -> ToRead = Len - 2, <> = Rest, logger:warning("Got a packet ~p", [Pckt]), ParseFun(Pckt), recv(Socket, ParseFun); Error -> Error end.