anchor.diff:  %%===================================================================
   
   -record(state, {socket, owner, mode, state = init, accepting, connections, virtual_sockets}).
  --record(capwap_socket, {id, type, peer, owner, mode, queue}).
  +-record(capwap_socket, {id, type, peer, owner, monitor, mode, queue}).
   
   init([Owner, Port, Options0]) ->
       process_flag(trap_exit, true),
  
positive.code: 	        State = #state{virtual_sockets = VSockets}) ->
      State#state{virtual_sockets = gb_trees:update(CSocketId, CSocket, VSockets)}.
  
  delete_csocket(#capwap_socket{id = CSocketId, type = Type, peer = Peer},
  	       State =
  		   #state{connections = Connections, virtual_sockets = VSockets}) ->
      State#state{
        connections = gb_trees:delete_any({Peer, Type}, Connections),
        virtual_sockets = gb_trees:delete_any(CSocketId, VSockets)}.
  
negative.code: new_csocket(Peer, Type, Owner, Packet, State0 =
  	       #state{connections = Connections, virtual_sockets = VSockets}) ->
      CSocketId = make_ref(),
      MonRef = monitor(process, Owner),
      CSocket = #capwap_socket{id = CSocketId, type = Type, peer = Peer,
  			     owner = Owner, monitor = MonRef,
  			     mode = passive, queue = queue:from_list([Packet])},
  
      State = State0#state{connections     = gb_trees:insert({Peer, Type}, CSocketId, Connections),
  