[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Mldonkey-commits] Changes to mldonkey/src/networks/bittorrent/bTClients
From: |
mldonkey-commits |
Subject: |
[Mldonkey-commits] Changes to mldonkey/src/networks/bittorrent/bTClients.ml |
Date: |
Tue, 09 Aug 2005 06:52:58 -0400 |
Index: mldonkey/src/networks/bittorrent/bTClients.ml
diff -u mldonkey/src/networks/bittorrent/bTClients.ml:1.45
mldonkey/src/networks/bittorrent/bTClients.ml:1.46
--- mldonkey/src/networks/bittorrent/bTClients.ml:1.45 Sun Aug 7 12:57:21 2005
+++ mldonkey/src/networks/bittorrent/bTClients.ml Tue Aug 9 10:52:58 2005
@@ -860,19 +860,19 @@
(AvailableCharBitmap bitmap));
c.client_registered_bitfield <- true;
c.client_bitmap <- Some bitmap;
- send_interested c;
+ (* send interested if we are *)
+ if c.client_interesting then
+ send_interested c;
if !verbose_msg_clients then
lprintf_nl () "New BitField Registered";
(* for i = 1 to max_range_requests - List.length c.client_ranges do
(try get_from_client sock c with _ -> ())
done*)
end;
- (*a bitfield must only be sent after the handshake and before
everything else: NOT here
- if c.client_incoming then send_bitfield c;
- *)
+ (* Note: a bitfield must only be sent after the handshake and before
everything else: NOT here *)
| Have n ->
-(*A client can send a "Have" without sending a Bitfield*)
+ (* A client can send a "Have" without sending a Bitfield *)
begin
match c.client_file.file_swarmer with
None -> ()
@@ -985,9 +985,16 @@
end;
| Ping -> ()
- (*We don't 'generate' a Ping message on a Ping.*)
+ (* We don't 'generate' a Ping message on a Ping. *)
+
+ | Cancel (n, pos, len) ->
+ (* if we receive a cancel message from a peer, remove request *)
+ if client_has_a_slot (as_client c) then
+ c.client_upload_requests <- List2.remove_first (n, pos, len)
c.client_upload_requests
+ else
+ if !verbose_msg_clients then
+ lprintf_nl () "Error: received cancel request but client has no
slot"
- | Cancel _ -> ()
with e ->
lprintf_nl () "Error %s while handling MESSAGE: %s" (Printexc2.to_string
e) (TcpMessages.to_string msg)
@@ -1422,7 +1429,7 @@
(* lprintf "Unix32.read: offset %Ld len %d\n" offset len; *)
Unix32.read (file_fd file) offset upload_buffer 0 len;
(* update upload rate from len bytes *)
- Rate.update c.client_upload_rate (float_of_int len);
+ Rate.update c.client_upload_rate (float_of_int (len / 2));
file.file_uploaded <- file.file_uploaded ++ (Int64.of_int len);
let _ =
(* update stats *)