[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Mldonkey-commits] mldonkey distrib/ChangeLog src/networks/donkey/...
From: |
mldonkey-commits |
Subject: |
[Mldonkey-commits] mldonkey distrib/ChangeLog src/networks/donkey/... |
Date: |
Sat, 17 Dec 2005 20:14:38 +0000 |
CVSROOT: /sources/mldonkey
Module name: mldonkey
Branch:
Changes by: spiralvoice <address@hidden> 05/12/17 20:14:38
Modified files:
distrib : ChangeLog
src/networks/donkey: donkeyFiles.ml donkeyOvernet.ml
donkeyOvernet.mli donkeyProtoKademlia.ml
donkeyProtoKademlia.mli
donkeyProtoOvernet.ml
Log message:
patch #4715
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/mldonkey/mldonkey/distrib/ChangeLog.diff?tr1=1.625&tr2=1.626&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/mldonkey/mldonkey/src/networks/donkey/donkeyFiles.ml.diff?tr1=1.16&tr2=1.17&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/mldonkey/mldonkey/src/networks/donkey/donkeyOvernet.ml.diff?tr1=1.60&tr2=1.61&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/mldonkey/mldonkey/src/networks/donkey/donkeyOvernet.mli.diff?tr1=1.6&tr2=1.7&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/mldonkey/mldonkey/src/networks/donkey/donkeyProtoKademlia.ml.diff?tr1=1.17&tr2=1.18&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/mldonkey/mldonkey/src/networks/donkey/donkeyProtoKademlia.mli.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/mldonkey/mldonkey/src/networks/donkey/donkeyProtoOvernet.ml.diff?tr1=1.25&tr2=1.26&r1=text&r2=text
Patches:
Index: mldonkey/distrib/ChangeLog
diff -u mldonkey/distrib/ChangeLog:1.625 mldonkey/distrib/ChangeLog:1.626
--- mldonkey/distrib/ChangeLog:1.625 Sat Dec 17 20:11:39 2005
+++ mldonkey/distrib/ChangeLog Sat Dec 17 20:14:38 2005
@@ -12,6 +12,7 @@
http://mldonkey.berlios.de/modules.php?name=Wiki&pagename=Windows
2005/12/17
+4715: OV: Improve searching, longer ov timeout, some more bugfixes (bogeyman)
4718: Fix bug which prevented proper write to files introduced in patch #4694
4717: EDK: Removed unused variable file_md4s_to_register (bogeyman)
Index: mldonkey/src/networks/donkey/donkeyFiles.ml
diff -u mldonkey/src/networks/donkey/donkeyFiles.ml:1.16
mldonkey/src/networks/donkey/donkeyFiles.ml:1.17
--- mldonkey/src/networks/donkey/donkeyFiles.ml:1.16 Mon Nov 7 20:11:42 2005
+++ mldonkey/src/networks/donkey/donkeyFiles.ml Sat Dec 17 20:14:38 2005
@@ -81,7 +81,7 @@
(* let len_int = Int32.to_int len in *)
try
if !verbose then begin
- lprintf "send_small_block(%s-%s) %Ld %d\n"
+ lprintf "send_small_block(%s-%s) %Ld %d "
c.client_name (brand_to_string c.client_brand)
(begin_pos) (len_int);
end;
@@ -114,9 +114,9 @@
impl.impl_shared_uploaded <-
impl.impl_shared_uploaded ++ uploaded);
if c.client_connected then
- printf_string "U[OUT]"
+ printf_string "U[OUT]\n"
else
- printf_string "U[IN]";
+ printf_string "U[IN]\n";
write_string sock upload_buffer;
check_end_upload c sock
Index: mldonkey/src/networks/donkey/donkeyOvernet.ml
diff -u mldonkey/src/networks/donkey/donkeyOvernet.ml:1.60
mldonkey/src/networks/donkey/donkeyOvernet.ml:1.61
--- mldonkey/src/networks/donkey/donkeyOvernet.ml:1.60 Wed Dec 14 21:17:46 2005
+++ mldonkey/src/networks/donkey/donkeyOvernet.ml Sat Dec 17 20:14:38 2005
@@ -301,6 +301,8 @@
val overnet_tcpport : int Options.option_record
val overnet_section : Options.options_section
+ val checking_kind_timeout : int
+
val redirector_section : string
val options_section_name : string
val command_prefix : string
@@ -333,7 +335,7 @@
let max_peers_per_bucket = 20
let max_peers_per_prebucket = 40
(* how many peers a search may ask for more search peers *)
-let max_search_queries = 64
+let max_search_queries = 50
(* how many peers we ask for results *)
let max_search_requests = 20
let max_boot_peers = 200
@@ -428,7 +430,7 @@
peer_kind = 0;
peer_expire = 0;
peer_last_send = 0;
- peer_created = last_time ();
+ peer_created = 0;
}
let connected_peers = ref 0
@@ -716,7 +718,7 @@
if (last_time () - p.peer_last_send) < 10 ||
p.peer_kind = 4 then () else begin
p.peer_kind <- p.peer_kind + 1;
- p.peer_expire <- last_time () + 120;
+ p.peer_expire <- last_time () + Proto.checking_kind_timeout;
end;
()
@@ -761,14 +763,15 @@
let ip = p.peer_ip in
let port = p.peer_port in
- if ip <> Ip.localhost && is_overnet_ip ip && port <> 0 then
-
try
let pp = KnownPeers.find known_peers p in
(* TODO: check for changes in ip:port? Or Hash? *)
pp
with _ ->
-
+
+ if ip <> Ip.localhost && is_overnet_ip ip
+ && port <> 0 && p.peer_created <> 0 then
+
let bucket = bucket_number p.peer_md4 in
(* Add the peer to the table of known peers *)
@@ -909,7 +912,7 @@
let add_search_peer s p =
if p.peer_ip <> Ip.localhost && is_overnet_ip p.peer_ip &&
- p.peer_port <> 0 then begin
+ p.peer_port <> 0 && p.peer_created <> 0 then begin
let nbits = common_bits p.peer_md4 s.search_md4 in
begin
try
@@ -925,7 +928,8 @@
let create_search kind md4 =
if !verbose_overnet then lprintf_nl () "create_search";
- let s = {
+ let starttime = last_time () + (2 * List.length !overnet_searches) in
+ let s = ref {
search_md4 = md4;
search_kind = kind;
search_queries = 0;
@@ -933,17 +937,28 @@
search_waiting_peers = Array.init 129 (fun _ -> Fifo.create ());
search_asked_peers = Array.init 129 (fun _ -> Fifo.create ());
search_ok_peers = Array.init 129 (fun _ -> Fifo.create ());
- search_start = last_time ();
- search_last_query = last_time () +
- ((List.length !overnet_searches) mod (int_of_float
!!overnet_query_peer_period));
+ search_start = (match kind with
+ KeywordSearch s -> last_time ()
+ | FillBuckets -> last_time ()
+ | FileSearch s -> starttime);
+ search_last_query = (match kind with
+ KeywordSearch s -> last_time ()
+ | FillBuckets -> last_time ()
+ | FileSearch s -> starttime);
search_hits = 0;
search_nresults = 0;
- search_results = Hashtbl.create 13;
+ search_results = Hashtbl.create 64;
} in
- List.iter (add_search_peer s) (get_closest_peers md4 max_search_queries);
+ List.iter (fun ss ->
+ if ss.search_md4 = !s.search_md4 && ss.search_kind = !s.search_kind then
begin
+ ss.search_start <- !s.search_start;
+ s := ss;
+ end
+ ) !overnet_searches;
+ List.iter (add_search_peer !s) (get_closest_peers md4 max_search_queries);
if !verbose_overnet then lprintf_nl () "create_search done";
- overnet_searches := s :: !overnet_searches;
- s
+ overnet_searches := !s :: !overnet_searches;
+ !s
let create_keyword_search w s =
let md4 = Md4.string w in
@@ -976,7 +991,8 @@
| OvernetConnect p ->
if is_overnet_ip sender.peer_ip && sender.peer_port <> 0 then
- let sender = new_peer { p with peer_port = other_port ; peer_ip =
other_ip } in
+ let sender = new_peer { p with peer_ip = other_ip } in
+ (* let sender = new_peer { p with peer_port = other_port ; peer_ip =
other_ip } in *)
new_peer_message sender;
udp_send sender (OvernetConnectReply (get_any_peers 20))
else
@@ -993,7 +1009,7 @@
match list with
[] -> ()
| [p] ->
- let sender = new_peer { p with peer_port = other_port ; peer_ip =
other_ip } in
+ let sender = new_peer { p with peer_ip = other_ip } in
new_peer_message sender
| p :: tail ->
let _ = new_peer p in
@@ -1002,7 +1018,7 @@
iter ps;
| OvernetPublicize p ->
- let sender = new_peer { p with peer_port = other_port ; peer_ip =
other_ip } in
+ let sender = new_peer { p with peer_ip = other_ip } in
new_peer_message sender;
if is_overnet_ip sender.peer_ip && sender.peer_port <> 0 then
udp_send sender (OvernetPublicized (Some (my_peer ())))
@@ -1168,6 +1184,7 @@
if p.peer_ip = peer.peer_ip &&
p.peer_port = peer.peer_port then begin
decr pre_connected_peers;
+ KnownPeers.remove known_peers dp;
end else Fifo.put b p
done;
done;
@@ -1219,7 +1236,11 @@
if s.search_last_query < timeout then begin
s.search_last_query <- s.search_last_query + overnet_query_peer_period;
(* Query next search peers *)
- iter 128 2;
+ if s.search_queries < max_search_queries then
+ (if s.search_queries = 0 then
+ iter 128 3
+ else
+ iter 128 2);
(* Request next results *)
if s.search_requests < max_search_requests then begin
let nrequests =
@@ -1275,6 +1296,7 @@
else
begin
decr connected_peers;
+ KnownPeers.remove known_peers p;
if !verbose_overnet then lprintf_nl () "update_bucket1: removing
%s:%d" (Ip.to_string p.peer_ip) p.peer_port;
end;
done
@@ -1301,6 +1323,7 @@
(* bad peers are removed *)
end else if p.peer_kind = 4 && p.peer_expire <= last_time () then
begin
decr pre_connected_peers;
+ KnownPeers.remove known_peers p;
if !verbose_overnet then lprintf_nl () "update_bucket2: removing
%s:%d" (Ip.to_string p.peer_ip) p.peer_port;
end else
(* the rest returns in prebuckets *)
@@ -1435,8 +1458,8 @@
compute_to_ping ();
- let l = last_time () - 300 in
-(* remove searches that are older than 5 minutes *)
+ let l = last_time () - 180 in
+(* remove searches that are older than 3 minutes *)
overnet_searches := List.filter (fun s ->
s.search_requests < max_search_requests &&
s.search_start > l
Index: mldonkey/src/networks/donkey/donkeyOvernet.mli
diff -u mldonkey/src/networks/donkey/donkeyOvernet.mli:1.6
mldonkey/src/networks/donkey/donkeyOvernet.mli:1.7
--- mldonkey/src/networks/donkey/donkeyOvernet.mli:1.6 Mon Oct 31 18:07:11 2005
+++ mldonkey/src/networks/donkey/donkeyOvernet.mli Sat Dec 17 20:14:38 2005
@@ -107,7 +107,9 @@
val overnet_port : int Options.option_record
val overnet_tcpport : int Options.option_record
val overnet_section : Options.options_section
-
+
+ val checking_kind_timeout : int
+
val redirector_section : string
val options_section_name : string
val command_prefix : string
Index: mldonkey/src/networks/donkey/donkeyProtoKademlia.ml
diff -u mldonkey/src/networks/donkey/donkeyProtoKademlia.ml:1.17
mldonkey/src/networks/donkey/donkeyProtoKademlia.ml:1.18
--- mldonkey/src/networks/donkey/donkeyProtoKademlia.ml:1.17 Thu Dec 15
19:41:46 2005
+++ mldonkey/src/networks/donkey/donkeyProtoKademlia.ml Sat Dec 17 20:14:38 2005
@@ -482,6 +482,8 @@
);
| _ -> ()
+ let checking_kind_timeout = 120
+
let redirector_section = "DKKA"
let options_section_name = "Kademlia"
Index: mldonkey/src/networks/donkey/donkeyProtoKademlia.mli
diff -u mldonkey/src/networks/donkey/donkeyProtoKademlia.mli:1.2
mldonkey/src/networks/donkey/donkeyProtoKademlia.mli:1.3
--- mldonkey/src/networks/donkey/donkeyProtoKademlia.mli:1.2 Thu Aug 5
15:52:12 2004
+++ mldonkey/src/networks/donkey/donkeyProtoKademlia.mli Sat Dec 17
20:14:38 2005
@@ -17,29 +17,6 @@
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*)
-(*
-module P :
- sig
- val write : Buffer.t -> DonkeyOvernet.t -> unit
- val udp_buf : Buffer.t
- val kademlia_header_code : char
- val kademlia_packed_header_code : char
- val kademlia_header : string
- val kademlia_packed_header : string
- val udp_send : UdpSocket.t -> Ip.t -> int -> DonkeyOvernet.t -> unit
- val parse : 'a -> 'b
- val udp_handler :
- ('a -> UdpSocket.udp_packet -> unit) ->
- UdpSocket.t -> UdpSocket.event -> unit
- val redirector_section : string
- val options_section_name : string
- val enable_overnet : bool Options.option_record
- val overnet_section : Options.options_section
- val overnet_port : int Options.option_record
- val overnet_tcpport : int Options.option_record
- val command_prefix : string
- end
- *)
module Kademlia :
sig
val overnet_search : CommonTypes.search -> unit
Index: mldonkey/src/networks/donkey/donkeyProtoOvernet.ml
diff -u mldonkey/src/networks/donkey/donkeyProtoOvernet.ml:1.25
mldonkey/src/networks/donkey/donkeyProtoOvernet.ml:1.26
--- mldonkey/src/networks/donkey/donkeyProtoOvernet.ml:1.25 Thu Dec 15
19:41:46 2005
+++ mldonkey/src/networks/donkey/donkeyProtoOvernet.ml Sat Dec 17 20:14:38 2005
@@ -411,6 +411,8 @@
);
| _ -> ()
+ let checking_kind_timeout = 180
+
let redirector_section = "DKKO"
let options_section_name = overnet_options_section_name
let overnet_section = overnet_section