anchor.diff:      ok.
   
   %%--------------------------------------------------------------------
  -%% Func: code_change/3
  -%% Purpose: Convert process state when code is changed
  -%% Returns: {ok, NewState}
  +%% Function: code_change(OldVsn, State, Extra)
  +%% Purpose : Convert process state when code is changed
  +%% Returns : {ok, NewState}
   %%--------------------------------------------------------------------
   code_change(OldVsn, State, Extra) ->
       {ok, State}.
  
positive.code: %%====================================================================
  
  %%--------------------------------------------------------------------
  %% Function: init/1
  %% Description: Initiates the server
  %% Returns: {ok, State}          |
  %%          {ok, State, Timeout} |
  %%          ignore               |
  %%          {stop, Reason}
  %%--------------------------------------------------------------------
  init([]) ->
      Port = sipserver:get_listenport(udp),  %% same for UDP and UDPv6
      start_listening([udp, udp6], Port, #state{socketlist=socketlist:empty()}).
  
  -define(SOCKETOPTS, [{reuseaddr, true}]).
  %% v6 sockets have a default receive buffer size of 1k in Erlang R9C-0
  -define(SOCKETOPTSv6, [{reuseaddr, true}, inet6, {buffer, 8 * 1024}]).
  
  start_listening([], Port, State) ->
      {ok, State};
  start_listening([udp | T], Port, State) when integer(Port), record(State, state) ->
  
negative.code: %%% Interface functions
  %%--------------------------------------------------------------------
  
  %%--------------------------------------------------------------------
  %% Function: send(SipSocket, Proto, Host, Port, Message)
  %%           SipSocket = sipsocket record()
  %%           Proto     = atom(), udp | udp6
  %%           Host      = string()
  %%           Port      = integer()
  %%           Message   = term()
  %% Descrip.: Send Message to Host:Port. Proto must currently be the
  %%           same protocol as is stored in SipSocket.
  %% Returns : Result |
  %%           {error, Reason}
  %%           Result = term(), ultimately the result of send()
  %%           Reason = string()
  %%--------------------------------------------------------------------
  send(SipSocket, Proto, Host, Port, Message) when record(SipSocket, sipsocket), integer(Port), SipSocket#sipsocket.proto /= Proto ->
      {error, "Protocol mismatch"};
  send(SipSocket, Proto, Host, Port, Message) when record(SipSocket, sipsocket), integer(Port) ->
  