[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Mldonkey-commits] mldonkey distrib/ChangeLog src/networks/bittorr...
From: |
mldonkey-commits |
Subject: |
[Mldonkey-commits] mldonkey distrib/ChangeLog src/networks/bittorr... |
Date: |
Fri, 16 Dec 2005 20:59:42 +0000 |
CVSROOT: /sources/mldonkey
Module name: mldonkey
Branch:
Changes by: spiralvoice <address@hidden> 05/12/16 20:59:42
Modified files:
distrib : ChangeLog
src/networks/bittorrent: bTClients.ml bTComplexOptions.ml
bTGlobals.ml bTInteractive.ml
bTTypes.ml
Log message:
patch #4703
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/mldonkey/mldonkey/distrib/ChangeLog.diff?tr1=1.622&tr2=1.623&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/mldonkey/mldonkey/src/networks/bittorrent/bTClients.ml.diff?tr1=1.59&tr2=1.60&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/mldonkey/mldonkey/src/networks/bittorrent/bTComplexOptions.ml.diff?tr1=1.29&tr2=1.30&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/mldonkey/mldonkey/src/networks/bittorrent/bTGlobals.ml.diff?tr1=1.45&tr2=1.46&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/mldonkey/mldonkey/src/networks/bittorrent/bTInteractive.ml.diff?tr1=1.71&tr2=1.72&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/mldonkey/mldonkey/src/networks/bittorrent/bTTypes.ml.diff?tr1=1.29&tr2=1.30&r1=text&r2=text
Patches:
Index: mldonkey/distrib/ChangeLog
diff -u mldonkey/distrib/ChangeLog:1.622 mldonkey/distrib/ChangeLog:1.623
--- mldonkey/distrib/ChangeLog:1.622 Fri Dec 16 20:57:57 2005
+++ mldonkey/distrib/ChangeLog Fri Dec 16 20:59:42 2005
@@ -12,6 +12,8 @@
http://mldonkey.berlios.de/modules.php?name=Wiki&pagename=Windows
2005/12/16
+4703: BT: Deactivate dead trackers,
+ re-enable them if no active trackers are found (pango)
4708: HTML upstats: Enable preview for shared files
4652: dllink: reject EDK files > 4GB, print access errors for .torrent files
Index: mldonkey/src/networks/bittorrent/bTClients.ml
diff -u mldonkey/src/networks/bittorrent/bTClients.ml:1.59
mldonkey/src/networks/bittorrent/bTClients.ml:1.60
--- mldonkey/src/networks/bittorrent/bTClients.ml:1.59 Wed Dec 14 21:17:46 2005
+++ mldonkey/src/networks/bittorrent/bTClients.ml Fri Dec 16 20:59:42 2005
@@ -138,6 +138,17 @@
("ip", Ip.to_string !!set_client_ip) :: args else args
in
+ let enabled_trackers =
+ let enabled_trackers = List.filter (fun t -> t.tracker_enabled)
file.file_trackers in
+ if enabled_trackers <> [] then enabled_trackers
+ else begin
+ (* if there is no tracker left, do something ? *)
+ if !verbose_msg_servers then
+ lprintf_nl () "No trackers left, reenabling all of them...";
+ List.iter (fun t -> t.tracker_enabled <- true) file.file_trackers;
+ file.file_trackers
+ end in
+
List.iter (fun t ->
(* if we have too few sources we may ask the tracker before the interval
*)
@@ -156,8 +167,9 @@
if file.file_tracker_connected && t.tracker_last_clients_num = 0 &&
t.tracker_last_conn < 1 then begin
if !verbose_msg_servers then
- lprintf_nl () "Request error from tracker: removing %s"
t.tracker_url;
- remove_tracker t.tracker_url file
+ lprintf_nl () "Request error from tracker: disabling %s"
t.tracker_url;
+ t.tracker_enabled <- false;
+ (* remove_tracker t.tracker_url file *)
end
(* Send request to tracker *)
else begin
@@ -199,11 +211,7 @@
if !verbose_msg_servers then
lprintf_nl () "Request NOT sent to tracker %s - next request in %ds
for file: %s"
t.tracker_url (t.tracker_interval - (last_time () -
t.tracker_last_conn)) file.file_name
- ) file.file_trackers;
- (* if there is no tracker left, do something ? *)
- if List.length file.file_trackers = 0 then
- if !verbose_msg_servers then
- lprintf_nl () "No trackers left ..."
+ ) enabled_trackers
(** In this function we decide which peers will be
uploaders. We send a choke message to current uploaders
@@ -1330,8 +1338,9 @@
match (key, value) with
| String "failure reason", String failure ->
(* On failure, remove the faulty tracker from
file.file_trackers list *)
- remove_tracker t.tracker_url file;
- lprintf_nl () "Failure from Tracker %s in file: %s Reason:
%s\nBT: Tracker %s removed for failure"
+ t.tracker_enabled <- false;
+ (* remove_tracker t.tracker_url file; *)
+ lprintf_nl () "Failure from Tracker %s in file: %s Reason:
%s\nBT: Tracker %s disabled for failure"
t.tracker_url file.file_name failure t.tracker_url
| String "warning message", String warning ->
lprintf_nl () "Warning from Tracker %s in file: %s Reason: %s"
t.tracker_url file.file_name warning
Index: mldonkey/src/networks/bittorrent/bTComplexOptions.ml
diff -u mldonkey/src/networks/bittorrent/bTComplexOptions.ml:1.29
mldonkey/src/networks/bittorrent/bTComplexOptions.ml:1.30
--- mldonkey/src/networks/bittorrent/bTComplexOptions.ml:1.29 Wed Dec 14
21:17:46 2005
+++ mldonkey/src/networks/bittorrent/bTComplexOptions.ml Fri Dec 16
20:59:42 2005
@@ -182,11 +182,9 @@
torrent_nodes = file_nodes;
*)
torrent_announce =
- (
- try
- (List.hd file_trackers)
- with _ -> ""
- );
+ (match file_trackers with
+ | h::q -> h
+ | [] -> "");
torrent_announce_list = file_trackers;
} in
let torrent_diskname = Filename.concat downloads_directory
Index: mldonkey/src/networks/bittorrent/bTGlobals.ml
diff -u mldonkey/src/networks/bittorrent/bTGlobals.ml:1.45
mldonkey/src/networks/bittorrent/bTGlobals.ml:1.46
--- mldonkey/src/networks/bittorrent/bTGlobals.ml:1.45 Tue Dec 6 19:04:29 2005
+++ mldonkey/src/networks/bittorrent/bTGlobals.ml Fri Dec 16 20:59:42 2005
@@ -162,9 +162,7 @@
end
let add_torrent_infos file trackers =
- List.iter (fun tracker ->
- file.file_trackers <- tracker :: file.file_trackers
- ) trackers
+ file.file_trackers <- trackers @ file.file_trackers
let create_temp_file file_temp file_files =
if !CommonOptions.verbose_files then lprintf_nl () "create_temp_file %s"
file_temp;
@@ -196,6 +194,7 @@
tracker_torrent_last_dl_req = 0;
tracker_id = "";
tracker_key = "";
+ tracker_enabled = true
} ) file_trackers) @ file.file_trackers
let new_file file_id t torrent_diskname file_temp file_state =
@@ -236,7 +235,7 @@
impl_file_best_name = t.torrent_name;
}
in
- if List.length t.torrent_announce_list > 1 then
+ if t.torrent_announce_list <> [] then
set_trackers file t.torrent_announce_list
else
set_trackers file [t.torrent_announce];
Index: mldonkey/src/networks/bittorrent/bTInteractive.ml
diff -u mldonkey/src/networks/bittorrent/bTInteractive.ml:1.71
mldonkey/src/networks/bittorrent/bTInteractive.ml:1.72
--- mldonkey/src/networks/bittorrent/bTInteractive.ml:1.71 Fri Dec 16
20:56:31 2005
+++ mldonkey/src/networks/bittorrent/bTInteractive.ml Fri Dec 16 20:59:42 2005
@@ -142,7 +142,8 @@
("", "sr",
(let tracker_string = ref "" in
List.iter (fun tracker ->
- tracker_string := !tracker_string ^ (shorten tracker.tracker_url
!!max_name_len) ^ " "
+ tracker_string := (if tracker.tracker_enabled then "" else "*") ^
+ !tracker_string ^ (shorten tracker.tracker_url !!max_name_len) ^ " "
) file.file_trackers;
Printf.sprintf "%s" !tracker_string)) ];
@@ -186,77 +187,82 @@
"" -> "-"
| _ -> file.file_encoding) ];
- match file.file_trackers with
- [] -> ()
- | t :: _ ->
- Printf.bprintf buf "\\</tr\\>\\<tr class=\\\"dl-%d\\\"\\>"
(html_mods_cntr ());
- html_mods_td buf [
- ("Last Connect", "sr br", "Last Connect");
- ("", "sr", string_of_date t.tracker_last_conn) ];
-
- Printf.bprintf buf "\\</tr\\>\\<tr class=\\\"dl-%d\\\"\\>"
(html_mods_cntr ());
- html_mods_td buf [
- ("Connect Interval", "sr br", "Con Interval");
- ("", "sr", Printf.sprintf "%d" t.tracker_interval) ];
-
- Printf.bprintf buf "\\</tr\\>\\<tr class=\\\"dl-%d\\\"\\>"
(html_mods_cntr ());
- html_mods_td buf [
- ("Connect Min Interval", "sr br", "Con Min Interval");
- ("", "sr", Printf.sprintf "%d" t.tracker_min_interval) ];
- (* show only interesting answers*)
- if t.tracker_torrent_downloaded > 0 then begin
- Printf.bprintf buf "\\</tr\\>\\<tr class=\\\"dl-%d\\\"\\>"
(html_mods_cntr ());
- html_mods_td buf [
- ("Downloaded", "sr br", "Downloaded");
- ("", "sr", Printf.sprintf "%d" t.tracker_torrent_downloaded) ]
- end;
- if t.tracker_torrent_complete > 0 then begin
- Printf.bprintf buf "\\</tr\\>\\<tr class=\\\"dl-%d\\\"\\>"
(html_mods_cntr ());
- html_mods_td buf [
- ("Complete (seeds)", "sr br", "Complete");
- ("", "sr", Printf.sprintf "%d" t.tracker_torrent_complete) ]
- end;
- if t.tracker_torrent_incomplete > 0 then begin
- Printf.bprintf buf "\\</tr\\>\\<tr class=\\\"dl-%d\\\"\\>"
(html_mods_cntr ());
- html_mods_td buf [
- ("Incomplete (peers)", "sr br", "Incomplete");
- ("", "sr", Printf.sprintf "%d" t.tracker_torrent_incomplete) ]
- end;
- if t.tracker_torrent_total_clients_count > 0 then begin
- Printf.bprintf buf "\\</tr\\>\\<tr class=\\\"dl-%d\\\"\\>"
(html_mods_cntr ());
- html_mods_td buf [
- ("Total client count", "sr br", "All clients");
- ("", "sr", Printf.sprintf "%d"
t.tracker_torrent_total_clients_count) ]
- end;
- if t.tracker_torrent_last_dl_req > 0 then begin
- Printf.bprintf buf "\\</tr\\>\\<tr class=\\\"dl-%d\\\"\\>"
(html_mods_cntr ());
- html_mods_td buf [
- ("Latest torrent request", "sr br", "Latest request");
- ("", "sr", Printf.sprintf "%ds" t.tracker_torrent_last_dl_req) ]
- end;
- if String.length t.tracker_id > 0 then begin
- Printf.bprintf buf "\\</tr\\>\\<tr class=\\\"dl-%d\\\"\\>"
(html_mods_cntr ());
- html_mods_td buf [
- ("Tracker id", "sr br", "Tracker id");
- ("", "sr", Printf.sprintf "%s" t.tracker_id) ]
- end;
- if String.length t.tracker_key > 0 then begin
- Printf.bprintf buf "\\</tr\\>\\<tr class=\\\"dl-%d\\\"\\>"
(html_mods_cntr ());
- html_mods_td buf [
- ("Tracker key", "sr br", "Tracker key");
- ("", "sr", Printf.sprintf "%s" t.tracker_key) ]
- end;
-
- let cntr = ref 0 in
- List.iter (fun (filename, size) ->
- Printf.bprintf buf "\\</tr\\>\\<tr class=\\\"dl-%d\\\"\\>"
(html_mods_cntr ());
- let fs = Printf.sprintf "File %d" !cntr in
- html_mods_td buf [
- (fs, "sr br", fs);
- ("", "sr", (Printf.sprintf "%s (%Ld bytes)" filename size))
- ];
- incr cntr;
- ) file.file_files
+ let rec print_first_tracker l =
+ match l with
+ | [] -> ()
+ | t :: q ->
+ if not t.tracker_enabled then print_first_tracker q
+ else begin
+ Printf.bprintf buf "\\</tr\\>\\<tr class=\\\"dl-%d\\\"\\>"
(html_mods_cntr ());
+ html_mods_td buf [
+ ("Last Connect", "sr br", "Last Connect");
+ ("", "sr", string_of_date t.tracker_last_conn) ];
+
+ Printf.bprintf buf "\\</tr\\>\\<tr class=\\\"dl-%d\\\"\\>"
(html_mods_cntr ());
+ html_mods_td buf [
+ ("Connect Interval", "sr br", "Con Interval");
+ ("", "sr", Printf.sprintf "%d" t.tracker_interval) ];
+
+ Printf.bprintf buf "\\</tr\\>\\<tr class=\\\"dl-%d\\\"\\>"
(html_mods_cntr ());
+ html_mods_td buf [
+ ("Connect Min Interval", "sr br", "Con Min Interval");
+ ("", "sr", Printf.sprintf "%d" t.tracker_min_interval) ];
+ (* show only interesting answers*)
+ if t.tracker_torrent_downloaded > 0 then begin
+ Printf.bprintf buf "\\</tr\\>\\<tr class=\\\"dl-%d\\\"\\>"
(html_mods_cntr ());
+ html_mods_td buf [
+ ("Downloaded", "sr br", "Downloaded");
+ ("", "sr", Printf.sprintf "%d" t.tracker_torrent_downloaded) ]
+ end;
+ if t.tracker_torrent_complete > 0 then begin
+ Printf.bprintf buf "\\</tr\\>\\<tr class=\\\"dl-%d\\\"\\>"
(html_mods_cntr ());
+ html_mods_td buf [
+ ("Complete (seeds)", "sr br", "Complete");
+ ("", "sr", Printf.sprintf "%d" t.tracker_torrent_complete) ]
+ end;
+ if t.tracker_torrent_incomplete > 0 then begin
+ Printf.bprintf buf "\\</tr\\>\\<tr class=\\\"dl-%d\\\"\\>"
(html_mods_cntr ());
+ html_mods_td buf [
+ ("Incomplete (peers)", "sr br", "Incomplete");
+ ("", "sr", Printf.sprintf "%d" t.tracker_torrent_incomplete) ]
+ end;
+ if t.tracker_torrent_total_clients_count > 0 then begin
+ Printf.bprintf buf "\\</tr\\>\\<tr class=\\\"dl-%d\\\"\\>"
(html_mods_cntr ());
+ html_mods_td buf [
+ ("Total client count", "sr br", "All clients");
+ ("", "sr", Printf.sprintf "%d"
t.tracker_torrent_total_clients_count) ]
+ end;
+ if t.tracker_torrent_last_dl_req > 0 then begin
+ Printf.bprintf buf "\\</tr\\>\\<tr class=\\\"dl-%d\\\"\\>"
(html_mods_cntr ());
+ html_mods_td buf [
+ ("Latest torrent request", "sr br", "Latest request");
+ ("", "sr", Printf.sprintf "%ds" t.tracker_torrent_last_dl_req) ]
+ end;
+ if String.length t.tracker_id > 0 then begin
+ Printf.bprintf buf "\\</tr\\>\\<tr class=\\\"dl-%d\\\"\\>"
(html_mods_cntr ());
+ html_mods_td buf [
+ ("Tracker id", "sr br", "Tracker id");
+ ("", "sr", Printf.sprintf "%s" t.tracker_id) ]
+ end;
+ if String.length t.tracker_key > 0 then begin
+ Printf.bprintf buf "\\</tr\\>\\<tr class=\\\"dl-%d\\\"\\>"
(html_mods_cntr ());
+ html_mods_td buf [
+ ("Tracker key", "sr br", "Tracker key");
+ ("", "sr", Printf.sprintf "%s" t.tracker_key) ]
+ end
+ end in
+ print_first_tracker file.file_trackers;
+
+ let cntr = ref 0 in
+ List.iter (fun (filename, size) ->
+ Printf.bprintf buf "\\</tr\\>\\<tr class=\\\"dl-%d\\\"\\>" (html_mods_cntr
());
+ let fs = Printf.sprintf "File %d" !cntr in
+ html_mods_td buf [
+ (fs, "sr br", fs);
+ ("", "sr", (Printf.sprintf "%s (%Ld bytes)" filename size))
+ ];
+ incr cntr;
+ ) file.file_files
let op_file_print_sources_html file buf =
Index: mldonkey/src/networks/bittorrent/bTTypes.ml
diff -u mldonkey/src/networks/bittorrent/bTTypes.ml:1.29
mldonkey/src/networks/bittorrent/bTTypes.ml:1.30
--- mldonkey/src/networks/bittorrent/bTTypes.ml:1.29 Tue Nov 22 17:57:56 2005
+++ mldonkey/src/networks/bittorrent/bTTypes.ml Fri Dec 16 20:59:42 2005
@@ -217,6 +217,7 @@
mutable tracker_torrent_last_dl_req : int;
mutable tracker_id : string;
mutable tracker_key : string;
+ mutable tracker_enabled : bool;
}
and file = {