anchor.diff:  
   %% Listener process state.
   -record(listener, {socket :: inet:socket(),
  +                   module :: module(),
                      service = false :: false | pid()}). %% service process
   
   %% Monitor process state.
  
positive.code:     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}.
  
  laddr([], Mod, Sock) ->
      {ok, {Addr, _Port}} = sockname(Mod, Sock),
  
negative.code: 
  %% Service process has died.
  l({'DOWN', _, process, Pid, _} = T, #listener{service = Pid,
                                                socket = Sock,
                                                module = M}) ->
      M:close(Sock),
      x(T);
  
  %% Transport has been removed.
  l({transport, remove, _} = T, #listener{socket = Sock,
                                          module = M}) ->
      M:close(Sock),
      x(T).
  
  %% t/2
  