anchor.diff: +%% @author Jesper Louis Andersen <jesper.louis.andersen@gmail.com>
  +%% @doc Track an UDP request event and handle its communication/timeout.
  +%% <p>This gen_server tracks a single announce-request for a tracker
  +%% client. There are actually two different types of requestors baked
  +%% into the gen-server. One for getting hold of a Connection ID, and
  +%% one for doing actual requests.</p>
  +%% <p>It is also the case that these processes are the ones that reply
  +%% back to the client. So the clients request goes through the
  +%% tracker_mgr process and ends up here. When we have data, they get
  +%% sent back via a gen_server:reply. Also note that protocol decoding
  +%% is separately handled by the trakcer_proto process. The proto looks
  +%% up the relevant recipient - a gen_server from this module and sends
  +%% the message to it.</p>
  +%% <p>The API is mostly internal, assumed to be used with the other
  +%% udp_tracker processes.</p>
  +%%@end
   -module(etorrent_udp_tracker).
   -include("types.hrl").
   -include("log.hrl").
  
positive.code:     ?WARN([unknown_msg, Msg]),
      {noreply, State}.
  
  handle_info(timeout, #state { tracker=Tracker,
  			      try_count=N,
  			      ty = announce,
  
negative.code:     ?WARN([unknown, Info]),
      {noreply, State}.
  
  %% @private
  terminate(_Reason, _State) ->
      ok.
  
  %% @private
  code_change(_OldVsn, State, _Extra) ->
      {ok, State}.
  
  