anchor.diff:           log_request_success/3,
            log_request_from/3,
            keepalive/3,
  +         refresh/3,
            dump_state/0,
            dump_state/1,
            dump_state/3,
  
positive.code:                     NodeID
              end
      end.
      
  
  
  max_unreachable() ->
  
negative.code: % a ping query to it first. This function must be used when we
  % want to verify the identify and status of a node.
  %
  % This function will return {error, timeout} if the node is unreachable
  % or has changed identity, false if the node is not interesting or wasnt
  % inserted into the routing table, true if the node was interesting and was
  % inserted into the routing table.
  %
  safe_insert_node(ID, IP, Port) ->
      case is_interesting(ID, IP, Port) of
          false -> false;
          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
                  ID   -> unsafe_insert_node(ID, IP, Port);
                  pang -> {error, timeout};
                  _    -> {error, timeout}
          end
      end.
  
  