anchor.diff:      gen_server:call(srv_name(), {dump_state, Filename}).
   
   keepalive(ID, IP, Port) ->
  -    case etorrent_dht_net:ping(IP, Port) of
  +    case safe_ping(IP, Port) of
           ID    -> log_request_success(ID, IP, Port);
           pang  -> log_request_timeout(ID, IP, Port);
           _     -> log_request_timeout(ID, IP, Port)
  
positive.code: spawn_keepalive(ID, IP, Port) ->
      spawn(?MODULE, keepalive, [ID, IP, Port]).
  
  
  
  init([StateFile]) ->
      {NodeID, NodeList} = load_state(StateFile),
  
      % Insert any nodes loaded from the persistent state later
  
negative.code:         false ->
              ok;
          true ->
              % Since this clause will be reached every time this node
              % receives a query from a node that is interesting, use the
              % unsafe_ping function to avoid repeatedly issuing ping queries
              % to nodes that won't reply to them.
              case unsafe_ping(IP, Port) of
                  pang -> ok;
                  ID   -> unsafe_insert_node(ID, IP, Port);
                  _    -> ok
  