anchor.diff:  handle_cast({incoming_msg, Msg}, S) ->
       case handle_message(Msg, S) of
           {ok, NS} -> {noreply, NS};
  -        {stop, NS} -> {stop, normal, NS}
  +        {stop, NS} -> {stop, normal, NS};
  +        {stop, Reason, NS} -> {stop, Reason, NS}
       end;
   handle_cast(choke, S) ->
       etorrent_peer_send:choke(S#state.send_pid),
  
positive.code: %% Description: Process an incoming message Msg from the wire. Return either
  %%  {ok, S} if the processing was ok, or {stop, Reason, S} in case of an error.
  %%--------------------------------------------------------------------
  -spec handle_message(_,_) -> {'ok',_} | {'stop',_}.
  handle_message(keep_alive, S) ->
      {ok, S};
  handle_message(choke, S) ->
  
negative.code: 
  %% @doc Starts the server
  %% @end
  start_link(TrackerUrl, LocalPeerId, InfoHash, Id, {IP, Port}, Caps, Socket)
    when is_binary(LocalPeerId) ->
      gen_server:start_link(?MODULE, [TrackerUrl, LocalPeerId, InfoHash,
                                      Id, {IP, Port}, Caps, Socket], []).
  