anchor.diff:      {ok, {Ip, Port}} = inet:sockname(LSock),
       ?SYS_INFO("Listening ~s:~p", [inet:ntoa(Ip), Port]),
       gen_server:cast(self(), accept),
  -    {ok, #state{lsock = LSock}};
  -init([Sock]) ->
  +    {ok, #state{lsock = LSock, name = name(Port)}};
  +init([Name, Sock]) ->
       process_flag(trap_exit, true),
       {ok, {RIp, RPort}} = inet:peername(Sock),
       {ok, {LIp, LPort}} = inet:sockname(Sock),
       ?SYS_INFO("Connect ~s:~p -> ~s:~p",
                 [inet:ntoa(RIp), RPort, inet:ntoa(LIp), LPort]),
  -    {ok, #state{sock = Sock}}.
  +    {ok, #state{name = Name, sock = Sock}}.
   
   handle_call({auto_response, AutoResponse}, _From, State) ->
        case AutoResponse of
  
positive.code: 
  handle_cast(accept, State = #state{lsock = LSock}) ->
      {ok, {Ip, Port}} = inet:sockname(LSock),
      ?SYS_INFO("Accepting on  ~s:~p", [inet:ntoa(Ip), Port]),
      {ok, Sock} = gen_tcp:accept(LSock),
      {ok, {RIp, RPort}} = inet:peername(Sock),
      {ok, {LIp, LPort}} = inet:sockname(Sock),
      {ok,  Pid} =
      gen_server:start_link(
        {local, list_to_atom(
                  lists:concat(
                    [inet:ntoa(RIp), ":", RPort, "-",
                     inet:ntoa(LIp), ":", LPort]))},
        ?MODULE, [Sock], []),
      ok = gen_tcp:controlling_process(Sock, Pid),
      ok = gen_server:cast(Pid, arm),
      ok = gen_server:cast(self(), accept),
  
negative.code:     ?SYS_INFO("Unhandled message: ~p", [Any]),
      {noreply, State}.
  
  terminate(Reason, #state{name = Name, lsock = undefined}) ->
      ?SYS_INFO("client ~p down ~p", [Name, Reason]);
  terminate(Reason, #state{name = Name, sock = undefined}) ->
      ?SYS_INFO("server ~p down ~p", [Name, Reason]).
  
  code_change(_OldVsn, State, _Extra) ->
      {ok, State}.
  