anchor.diff:      ?WARN("Unexpected info ~p", [Info]),
       {noreply, State}.
   
  +
  +handle_client(Parent, Sock) ->
  +    irc_s2c_fsm:sock_start(Parent, Sock, []).
  +
   %%--------------------------------------------------------------------
   %% @private
   %% @spec terminate(Reason, State) -> void()
  
positive.code: 
  shutdown(Server) ->
      gen_server:call(Server, shutdown).
  
  %%====================================================================
  %% gen_server callbacks
  
negative.code: %% @doc Call message handler callbacks
  %% @end
  %%--------------------------------------------------------------------
  handle_call({listen, Port}, _From, State = #state{listener=undefined}) ->
      {ok, L} = tcp_server:listen(Port, [{client_fn, fun handle_client/2}]),
      {reply, {ok, L}, State#state{listener=L}};
  handle_call({listen, Port}, _From, State = #state{listener=Pid}) when is_pid(Pid) ->
      {reply, {already_running, Pid}, State};
  
  handle_call(Call, _From, State) ->
      ?WARN("Unexpected call ~p.", [Call]),
      {noreply, State}.
  