anchor.diff:           code_change/3]).
   
   % internal exports
  --export([handle_query/6,
  +-export([handle_query/7,
            decode_msg/1]).
   
   
   -record(state, {
       socket,
  -    sent
  +    sent,
  +    tokens
   }).
   
   %
  
positive.code:     Values = [{{string, "nodes"}, {string, LCompact}}],
      return(IP, Port, MsgID, common_values(Self) ++ Values);
  
  handle_query('get_peers', Params, IP, Port, MsgID, Self) ->
      {string, LHash} = search_dict({string, "info_hash"}, Params),
      InfoHash = list_to_binary(LHash),
      Values = case etorrent_dht_tracker:get_peers(InfoHash) of
  
negative.code: common_values(Self) ->
      [{{string, "id"}, {string, binary_to_list(Self)}}].
  
  handle_query('ping', _, IP, Port, MsgID, Self, _Tokens) ->
      return(IP, Port, MsgID, common_values(Self));
  
  handle_query('find_node', Params, IP, Port, MsgID, Self, _Tokens) ->
      {string, LTarget} = search_dict({string, "target"}, Params),
      Target = list_to_binary(LTarget),
      CloseNodes = [{ID, NIP, NPort} || {_, ID, NIP, NPort} <- etorrent_dht_state:closest_to(Target)],
  