anchor.diff:      LAddr = laddr(LAddrOpt, Mod, LSock),
       true = diameter_reg:add_new({?MODULE, listener, {Ref, {LAddr, LSock}}}),
       proc_lib:init_ack({ok, self(), {LAddr, LSock}}),
  -    #listener{socket = LSock}.
  +    #listener{socket = LSock,
  +              module = Mod}.
   
   laddr([], Mod, Sock) ->
       {ok, {Addr, _Port}} = sockname(Mod, Sock),
  
positive.code: 
  %% Service process has died.
  l({'DOWN', _, process, Pid, _} = T, #listener{service = Pid,
                                                socket = Sock}) ->
      gen_tcp:close(Sock),
      x(T);
  
  %% Transport has been removed.
  l({transport, remove, _} = T, #listener{socket = Sock}) ->
      gen_tcp:close(Sock),
      x(T).
  
  %% t/2
  
negative.code: 
  %% Listener process state.
  -record(listener, {socket :: inet:socket(),
                     module :: module(),
                     service = false :: false | pid()}). %% service process
  
  %% Monitor process state.
  