[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Mldonkey-commits] mldonkey distrib/ChangeLog src/daemon/common/co...
From: |
mldonkey-commits |
Subject: |
[Mldonkey-commits] mldonkey distrib/ChangeLog src/daemon/common/co... |
Date: |
Thu, 12 Jan 2006 09:03:12 +0000 |
CVSROOT: /sources/mldonkey
Module name: mldonkey
Branch:
Changes by: spiralvoice <address@hidden> 06/01/12 09:03:11
Modified files:
distrib : ChangeLog
src/daemon/common: commonComplexOptions.ml commonOptions.ml
src/daemon/driver: driverCommands.ml
src/networks/donkey: donkeyClient.ml donkeyGlobals.ml
donkeyServers.ml
Log message:
patch #4776
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/mldonkey/mldonkey/distrib/ChangeLog.diff?tr1=1.670&tr2=1.671&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/mldonkey/mldonkey/src/daemon/common/commonComplexOptions.ml.diff?tr1=1.45&tr2=1.46&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/mldonkey/mldonkey/src/daemon/common/commonOptions.ml.diff?tr1=1.119&tr2=1.120&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/mldonkey/mldonkey/src/daemon/driver/driverCommands.ml.diff?tr1=1.114&tr2=1.115&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/mldonkey/mldonkey/src/networks/donkey/donkeyClient.ml.diff?tr1=1.79&tr2=1.80&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/mldonkey/mldonkey/src/networks/donkey/donkeyGlobals.ml.diff?tr1=1.70&tr2=1.71&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/mldonkey/mldonkey/src/networks/donkey/donkeyServers.ml.diff?tr1=1.48&tr2=1.49&r1=text&r2=text
Patches:
Index: mldonkey/distrib/ChangeLog
diff -u mldonkey/distrib/ChangeLog:1.670 mldonkey/distrib/ChangeLog:1.671
--- mldonkey/distrib/ChangeLog:1.670 Thu Jan 12 08:57:58 2006
+++ mldonkey/distrib/ChangeLog Thu Jan 12 09:03:11 2006
@@ -15,6 +15,7 @@
=========
2006/01/12
+4776: EDK: Avoid LowID if max_indirect_connections is reached (thx to zet)
4787: EDK: Show server version (ported from Mulus - thx to Knocker),
disconnect blocked server after loading IP blocklist
Index: mldonkey/src/daemon/common/commonComplexOptions.ml
diff -u mldonkey/src/daemon/common/commonComplexOptions.ml:1.45
mldonkey/src/daemon/common/commonComplexOptions.ml:1.46
--- mldonkey/src/daemon/common/commonComplexOptions.ml:1.45 Thu Jan 12
08:57:58 2006
+++ mldonkey/src/daemon/common/commonComplexOptions.ml Thu Jan 12 09:03:11 2006
@@ -1333,5 +1333,6 @@
TcpBufferedSocket.set_max_opened_connections
(fun _ -> !!max_opened_connections);
- Unix32.max_cache_size := total_files - 20
+ Unix32.max_cache_size := total_files - 20;
+ calc_real_max_indirect_connections ()
)
Index: mldonkey/src/daemon/common/commonOptions.ml
diff -u mldonkey/src/daemon/common/commonOptions.ml:1.119
mldonkey/src/daemon/common/commonOptions.ml:1.120
--- mldonkey/src/daemon/common/commonOptions.ml:1.119 Thu Jan 12 08:57:58 2006
+++ mldonkey/src/daemon/common/commonOptions.ml Thu Jan 12 09:03:11 2006
@@ -442,7 +442,7 @@
up : some upload warnings
unk : unknown messages
ov : overnet
- loc : debug source research
+ loc : debug source research/master servers
share: debug sharing
md4 : md4 computation
connect : debug connections
@@ -483,7 +483,7 @@
let max_indirect_connections = define_option current_section
["max_indirect_connections"]
- "Amount of indirect connections in percent (max 50) of
max_opened_connections, additional to max_opened_connections"
+ "Amount of indirect connections in percent (min 30, max 70) of
max_opened_connections"
int_option 20
let max_upload_slots = define_option current_section ["max_upload_slots"]
@@ -1558,7 +1558,20 @@
Instead use the kill command in Telnet or HTML,
the kill function of a GUI or CTRL+C.\n\n"
+let real_max_indirect_connections = ref 0
+
+let calc_real_max_indirect_connections () =
+ real_max_indirect_connections :=
+ !!max_opened_connections * !!max_indirect_connections / 100
+
let _ =
+ option_hook max_indirect_connections (fun _ ->
+ begin
+ if !!max_indirect_connections > 70 then max_indirect_connections =:= 70
+ else if !!max_indirect_connections < 30 then max_indirect_connections
=:= 30
+ end;
+ calc_real_max_indirect_connections ()
+ );
option_hook global_login (fun _ ->
let len = String.length !!global_login in
let prefix = "mldonkey_" in
Index: mldonkey/src/daemon/driver/driverCommands.ml
diff -u mldonkey/src/daemon/driver/driverCommands.ml:1.114
mldonkey/src/daemon/driver/driverCommands.ml:1.115
--- mldonkey/src/daemon/driver/driverCommands.ml:1.114 Thu Jan 12 08:57:58 2006
+++ mldonkey/src/daemon/driver/driverCommands.ml Thu Jan 12 09:03:11 2006
@@ -1644,6 +1644,7 @@
strings_of_option max_hard_upload_rate;
strings_of_option max_hard_download_rate;
strings_of_option max_opened_connections;
+ strings_of_option max_indirect_connections;
strings_of_option max_connections_per_second;
strings_of_option max_concurrent_downloads;
]
Index: mldonkey/src/networks/donkey/donkeyClient.ml
diff -u mldonkey/src/networks/donkey/donkeyClient.ml:1.79
mldonkey/src/networks/donkey/donkeyClient.ml:1.80
--- mldonkey/src/networks/donkey/donkeyClient.ml:1.79 Mon Jan 9 00:22:35 2006
+++ mldonkey/src/networks/donkey/donkeyClient.ml Thu Jan 12 09:03:11 2006
@@ -2395,31 +2395,65 @@
) t.Q.locs;
with Not_found -> ()
+let rec matches_3 l ip =
+ let rec iter l (a,b,c,d) =
+ match l with
+ [] -> Ip.null
+ | ip :: _ when
+ let (w,x,y,z) = Ip.to_ints ip in
+ w=a && x=b && y=c -> ip
+ | _ :: t -> iter t (a,b,c,d)
+ in
+ iter l (Ip.to_ints ip)
+
let client_connection_handler overnet t event =
-(* lprintf "[REMOTE CONN]\n"; *)
match event with
TcpServerSocket.CONNECTION (s, Unix.ADDR_INET (from_ip, from_port)) ->
- let from_ip = (Ip.of_inet_addr from_ip) in
- if !DonkeySources.indirect_connections <
- !!max_opened_connections * !!max_indirect_connections / 100 &&
- (match Ip_set.match_ip !Ip_set.bl from_ip with
- None -> true
- | Some br ->
- if !verbose_connect then
- lprintf "DKOV: %s:%d blocked: %s\n"
- (Ip.to_string from_ip) from_port
br.blocking_description;
- false) then
+ let from_ip = Ip.of_inet_addr from_ip in
+ let s_from_ip = Ip.to_string from_ip in
+ let is_ip_blocked = Ip_set.ip_blocked from_ip in
+ let too_many_indirect_connections =
+ !DonkeySources.indirect_connections >
+ !real_max_indirect_connections
+ in
+
+ let connecting_server = matches_3 (connecting_server_ips()) from_ip in
+ let is_connecting_server = connecting_server <> Ip.null in
+
+ let accept_connection = not is_ip_blocked
+ && (not too_many_indirect_connections || is_connecting_server)
+ in
+
+ if !verbose_connect || (!verbose && (too_many_indirect_connections ||
is_connecting_server)) then
+ lprintf_nl () "incoming connection from %s:%d %s: (%d/%d)%s"
+ s_from_ip from_port
+ (if accept_connection then "accepted" else
+ if is_ip_blocked then "blocked" else "denied")
+ !DonkeySources.indirect_connections
+ !real_max_indirect_connections
+ (if is_connecting_server then
+ ( try
+ let s = Hashtbl.find servers_by_key from_ip in
+ Printf.sprintf " %s (%s)" s.server_name (Ip.to_string
s.server_ip)
+ with _ ->
+ try
+ let s = Hashtbl.find servers_by_key connecting_server in
+ Printf.sprintf " %s (%s)" s.server_name (Ip.to_string
s.server_ip)
+ with _ -> "Unknown server"
+ )
+ else ""
+ );
+
+ if accept_connection then
+
begin
-(* lprintf "+++++++++++++++++++++++++++++++++++++++++++++++\n"; *)
(try
let c = ref None in
incr DonkeySources.indirect_connections;
-(* lprintf "INDIRECT CONNECTION.........\n"; *)
let token = create_token connection_manager in
let sock =
TcpBufferedSocket.create token "donkey client connection" s
(client_handler2 c)
-(*client_msg_to_string*)
in
init_connection sock from_ip;
accept_connection_bandwidth sock;
@@ -2434,7 +2468,6 @@
90.
);
(try
-
set_reader sock
(DonkeyProtoCom.client_handler2 c (read_first_message
overnet)
(client_to_client []));
@@ -2447,11 +2480,8 @@
(Printexc2.to_string e);
Unix.close s)
end
-
- else begin
- (* lprintf "***** CONNECTION PREVENTED by limitations *****\n"; *)
+ else
Unix.close s
- end;
| _ ->
()
Index: mldonkey/src/networks/donkey/donkeyGlobals.ml
diff -u mldonkey/src/networks/donkey/donkeyGlobals.ml:1.70
mldonkey/src/networks/donkey/donkeyGlobals.ml:1.71
--- mldonkey/src/networks/donkey/donkeyGlobals.ml:1.70 Thu Jan 12 08:57:58 2006
+++ mldonkey/src/networks/donkey/donkeyGlobals.ml Thu Jan 12 09:03:11 2006
@@ -182,6 +182,7 @@
let current_files = ref ([] : file list)
let xs_servers_list = ref ([] : server list)
let connected_server_list = ref ([] : server list)
+let connecting_server_list = ref ([] : server list)
let (banned_ips : (Ip.t, int) Hashtbl.t) = Hashtbl.create 113
let (old_requests : (int * int, request_record) Hashtbl.t) =
@@ -246,6 +247,15 @@
Hashtbl.remove table key
with _ -> ()
+let add_connecting_server c =
+ connecting_server_list := c :: !connecting_server_list
+
+let remove_connecting_server c =
+ connecting_server_list := List2.removeq c !connecting_server_list
+
+let connecting_server_ips () =
+ List.rev_map (fun s -> s.server_ip) !connecting_server_list
+
let add_connected_server c =
connected_server_list := c :: !connected_server_list
@@ -775,6 +785,7 @@
Printf.bprintf buf " servers_list: %d\n" (List.length !servers_list);
Printf.bprintf buf " xs_servers_list: %d\n" (List.length !xs_servers_list);
Printf.bprintf buf " connected_server_list: %d\n" (List.length
!connected_server_list);
+ Printf.bprintf buf " connecting_server_list: %d\n" (List.length
!connecting_server_list);
Printf.bprintf buf " udp_servers_list: %d\n" (List.length
!udp_servers_list);
Printf.bprintf buf " interesting_clients: %d\n" (List.length
!interesting_clients);
Printf.bprintf buf " shared_files: %d\n" (List.length !shared_files);
Index: mldonkey/src/networks/donkey/donkeyServers.ml
diff -u mldonkey/src/networks/donkey/donkeyServers.ml:1.48
mldonkey/src/networks/donkey/donkeyServers.ml:1.49
--- mldonkey/src/networks/donkey/donkeyServers.ml:1.48 Thu Jan 12 08:57:58 2006
+++ mldonkey/src/networks/donkey/donkeyServers.ml Thu Jan 12 09:03:11 2006
@@ -241,6 +241,7 @@
| _ -> ());
s.server_banner <- "";
s.server_sent_all_queries <- false;
+ remove_connecting_server s;
remove_connected_server s
@@ -276,6 +277,7 @@
(* disconnect after (connected_server_timeout) seconds of silence *)
set_rtimeout sock !!connected_server_timeout;
set_server_state s Connected_initiating;
+ remove_connecting_server s;
s.server_score <- s.server_score + 5;
connection_ok (s.server_connection_control);
@@ -510,13 +512,9 @@
C.tags = !client_to_server_tags;
}
);
+ add_connecting_server s;
add_connected_server s;
with e ->
- (*
- lprintf "%s:%d IMMEDIAT DISCONNECT \n"
- (Ip.to_string s.server_ip) s.server_port;
- lprintf "DISCONNECTED IMMEDIATLY\n";
- *)
disconnect_server s (Closed_for_exception e)
)
in
@@ -746,7 +744,7 @@
(* check connected servers *)
let update_master_servers _ =
- if !verbose then
+ if !verbose_location then
lprintf_nl () "master servers: start re-computing";
let server_list = List.sort compare_servers (connected_servers ()) in
let masters = ref [] in
@@ -757,7 +755,7 @@
if s.server_master then
match s.server_sock with
| Connection _ ->
- if !verbose then begin
+ if !verbose_location then begin
if !tag2 then begin
lprintf_n () "master servers (old):";
tag1 := false;
@@ -794,7 +792,7 @@
connections *)
if !nconnected_servers > max_allowed_connected_servers then
begin
- if !verbose then
+ if !verbose_location then
lprintf_nl () "master servers: disconnect %s" (Ip.to_string
s.server_ip);
nconnected_servers := !nconnected_servers - 3;
do_if_connected s.server_sock (fun sock ->
@@ -813,7 +811,7 @@
last_time ()
- connection_last_conn s.server_connection_control
in
- if !verbose then
+ if !verbose_location then
lprintf_nl () "master servers: Checking ip:%s, users: %Ld, ct:%d"
(Ip.to_string s.server_ip) s.server_nusers connection_time;
if not s.server_master
@@ -825,7 +823,7 @@
begin
if (!nmasters < max_allowed_connected_servers) then
begin
- if !verbose then
+ if !verbose_location then
lprintf_nl () "master servers: raising %s"
(Ip.to_string s.server_ip);
make_master s
@@ -844,7 +842,7 @@
)
then
begin
- if !verbose then
+ if !verbose_location then
lprintf_nl ()
"master servers: raising %s, disconnected %s"
(Ip.to_string s.server_ip) (Ip.to_string
ss.server_ip);
@@ -858,7 +856,7 @@
end
)
) server_list;
- if !verbose then
+ if !verbose_location then
lprintf_nl () "master servers: %d connected %d masters - re-computing
completed"
!nconnected_servers !nmasters
- [Mldonkey-commits] mldonkey distrib/ChangeLog src/daemon/common/co..., (continued)
- [Mldonkey-commits] mldonkey distrib/ChangeLog src/daemon/common/co..., mldonkey-commits, 2006/01/04
- [Mldonkey-commits] mldonkey distrib/ChangeLog src/daemon/common/co..., mldonkey-commits, 2006/01/04
- [Mldonkey-commits] mldonkey distrib/ChangeLog src/daemon/common/co..., mldonkey-commits, 2006/01/04
- [Mldonkey-commits] mldonkey distrib/ChangeLog src/daemon/common/co..., mldonkey-commits, 2006/01/06
- [Mldonkey-commits] mldonkey distrib/ChangeLog src/daemon/common/co..., mldonkey-commits, 2006/01/07
- [Mldonkey-commits] mldonkey distrib/ChangeLog src/daemon/common/co..., mldonkey-commits, 2006/01/08
- [Mldonkey-commits] mldonkey distrib/ChangeLog src/daemon/common/co..., mldonkey-commits, 2006/01/08
- [Mldonkey-commits] mldonkey distrib/ChangeLog src/daemon/common/co..., mldonkey-commits, 2006/01/11
- [Mldonkey-commits] mldonkey distrib/ChangeLog src/daemon/common/co..., mldonkey-commits, 2006/01/11
- [Mldonkey-commits] mldonkey distrib/ChangeLog src/daemon/common/co..., mldonkey-commits, 2006/01/12
- [Mldonkey-commits] mldonkey distrib/ChangeLog src/daemon/common/co...,
mldonkey-commits <=
- [Mldonkey-commits] mldonkey distrib/ChangeLog src/daemon/common/co..., mldonkey-commits, 2006/01/16
- [Mldonkey-commits] mldonkey distrib/ChangeLog src/daemon/common/co..., mldonkey-commits, 2006/01/18
- [Mldonkey-commits] mldonkey distrib/ChangeLog src/daemon/common/co..., mldonkey-commits, 2006/01/18
- [Mldonkey-commits] mldonkey distrib/ChangeLog src/daemon/common/co..., mldonkey-commits, 2006/01/29
- [Mldonkey-commits] mldonkey distrib/ChangeLog src/daemon/common/co..., mldonkey-commits, 2006/01/29
- [Mldonkey-commits] mldonkey distrib/ChangeLog src/daemon/common/co..., mldonkey-commits, 2006/01/29