anchor.diff:  -export([init/1, handle_call/3, handle_cast/2, handle_info/2,
            terminate/2, code_change/3]).
   
  --record(state, {should_contact_tracker = false,
  -                queued_message = none,
  +-record(state, {queued_message = none,
                   %% The hard timer is the time we *must* wait on the tracker.
                   %% soft timer may be overridden if we want to change state.
                   soft_timer = none,
  
positive.code:                stopped -> [{"event", "stopped"} | Request];
                 completed -> [{"event", "completed"} | Request]
             end,
      lists:concat([S#state.url, "?", construct_headers(EReq, [])]).
  
  %%% Tracker response lookup functions
  response_interval(BC) ->
  
negative.code:     contact_tracker(none, S).
  
  contact_tracker(Event, S) ->
      RequestUrl = build_tracker_url(S#state.url, S, Event),
      ?INFO([{contacting_tracker, RequestUrl}]),
      case http_gzip:request(RequestUrl) of
          {ok, {{_, 200, _}, _, Body}} ->
              handle_tracker_response(etorrent_bcoding:decode(Body), S);
          {error, etimedout} ->
  