anchor.diff:  handle_call(_Call, _Who, S) ->
       {noreply, S}.
   
  -tick_after(Secs) ->
  -    timer:apply_after(Secs * 1000, self(),
  -		      fun () -> request_tracker_immediately(self()) end, []).
   
   handle_cast(tracker_request_now, State) ->
       tracker_request(State, none);
  
positive.code: handle_cast(stop, State) ->
      tracker_request(State, "stopped").
  
  %% Operations
  request_tracker_immediately(Pid) ->
      gen_server:cast(Pid, tracker_request_now).
  
  %% Helpers
  build_request_to_send(StatePid) ->
      {data_transfer_amounts, Uploaded, Downloaded, Left} =
  	torrent_state:current_state(StatePid),
  
negative.code: 			 downloaded = 0,
  			 left = 0}).
  
  -define(SERVER, ?MODULE).
  -define(DEFAULT_REQUEST_TIMEOUT, 180).
  
  %% API
  start_link({Master, StatePid, Url, InfoHash, PeerId}) ->
      gen_server:start_link({local, ?SERVER}, ?MODULE, [{Master, StatePid, Url, InfoHash, PeerId}], []).
  
  request_tracker_immediately(Pid) ->
      gen_server:cast(Pid, tracker_request_now).
  
  %% Callbacks
  init({Master, StatePid, Url, InfoHash, PeerId}) ->
      {ok, {Master, StatePid, Url, InfoHash, PeerId}}.
  
  