anchor.diff:              %% Track uploaded size for torrent (for the tracker)
               ok = etorrent_torrent:statechange(S#state.torrent_id,
                                                 {add_upload, Len}),
  -            %% Track the amount uploaded by this peer.
  -
  +            %% Track the amount uploaded to this peer.
               send_piece_message(Msg, S, 0);
           %% Update cache and try again...
           {I, _Binary} when I /= Index ->
  
positive.code: send_message(Msg, S) ->
      send_message(Msg, S, 0).
  
  send_message(Msg, S, Timeout) ->
      case send(Msg, S) of
          {ok, NS} -> {noreply, NS, Timeout};
  
negative.code:     end.
  
  send(Msg, S) ->
      case etorrent_proto_wire:send_msg(S#state.socket, Msg) of
          {ok, Sz} ->
              NR = etorrent_rate:update(S#state.rate, Sz),
              ok = etorrent_rate_mgr:send_rate(
                     S#state.torrent_id,
                     S#state.parent,
                     NR#peer_rate.rate,
                     Sz),
              {ok, S#state { rate = NR}};
          {{error, E}, _Amount} ->
              {error, E, S}
      end.
  
  perform_choke(S) when S#state.fast_extension == true ->
      perform_fast_ext_choke(S);
  