anchor.diff:      ?error("Unhandled info in ~p: ~p~n", [?MODULE, Info]),
       {noreply, State}.
   
  -
   terminate(_Reason, #state{sock=Sock, loop=Loop}) ->
       case Sock of
   	undefined -> ignore;
  
positive.code: %%% Priv
  %%%
  do_read(Sock, Pid) ->
      case procket:recvfrom(Sock, 16#FFFF) of
  	{error, eagain} ->
  	    {ok, read} = inert:poll(Sock, [{mode, read}]),
  	    do_read(Sock, Pid);
  	{error, _Err} ->
  	    ok;
  	%% EOF
  	{ok, <<>>} ->
  	    ok;
  	{ok, Buf} ->
  	    Pid ! {unix, Buf},
  	    do_read(Sock, Pid)
      end.
  
  get_sock_un(abstract, Path) when byte_size(Path) < ?UNIX_PATH_MAX-1 ->
      Len = byte_size(Path),
      <<(procket:sockaddr_common(?PF_LOCAL, Len))/binary,
        0, Path/binary>>;
  get_sock_un(path, Path) when byte_size(Path) < ?UNIX_PATH_MAX ->
      Len = byte_size(Path),
      <<(procket:sockaddr_common(?PF_LOCAL, Len))/binary,
        Path/binary, 
        0:((procket:unix_path_max()-Len)*8)>>.
  
negative.code:     ?error("Unhandled cast in ~p: ~p~n", [?MODULE, Request]),
      {noreply, State}.
  
  handle_info({unix, Data}, #state{owner=Owner}=State) ->
      ?debug("unix received(~p)~n", [Data]),
      Owner ! {received, Data},
      {noreply, State};
  
  