mldonkey-commits
[Top][All Lists]
Advanced

[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: Thu, 12 Oct 2006 12:48:24 +0000

CVSROOT:        /sources/mldonkey
Module name:    mldonkey
Changes by:     spiralvoice <spiralvoice>       06/10/12 12:48:24

Modified files:
        distrib        : ChangeLog 
        src/networks/donkey: donkeyOvernet.ml 

Log message:
        patch #5454

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/mldonkey/distrib/ChangeLog?cvsroot=mldonkey&r1=1.1049&r2=1.1050
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/networks/donkey/donkeyOvernet.ml?cvsroot=mldonkey&r1=1.68&r2=1.69

Patches:
Index: distrib/ChangeLog
===================================================================
RCS file: /sources/mldonkey/mldonkey/distrib/ChangeLog,v
retrieving revision 1.1049
retrieving revision 1.1050
diff -u -b -r1.1049 -r1.1050
--- distrib/ChangeLog   12 Oct 2006 12:47:07 -0000      1.1049
+++ distrib/ChangeLog   12 Oct 2006 12:48:24 -0000      1.1050
@@ -15,6 +15,7 @@
 =========
 
 2006/10/12
+5454: OV/KAD: Block blocked ips + small Overnet updates (bogeyman)
 5451: HTML: clickable new messages indicator (jave)
 
 2006/10/09

Index: src/networks/donkey/donkeyOvernet.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/networks/donkey/donkeyOvernet.ml,v
retrieving revision 1.68
retrieving revision 1.69
diff -u -b -r1.68 -r1.69
--- src/networks/donkey/donkeyOvernet.ml        5 Sep 2006 14:15:20 -0000       
1.68
+++ src/networks/donkey/donkeyOvernet.ml        12 Oct 2006 12:48:24 -0000      
1.69
@@ -451,7 +451,16 @@
 let pre_connected_peers = ref 0
 
 let is_overnet_ip ip =
-  Ip.usable ip && Ip.of_string "1.0.0.0" <> ip
+  let is_not_banned ip =
+       match !Ip.banned ip with
+       None -> true
+     | Some reason ->
+         if !verbose_overnet then
+           lprintf_nl "%s blocked: %s"
+             (Ip.to_string ip) reason;
+         false
+  in
+  Ip.usable ip && Ip.of_string "1.0.0.0" <> ip && is_not_banned ip
 
 module LimitedList = struct
 
@@ -756,12 +765,16 @@
   match !udp_sock with
     None -> ()
   | Some sock ->
+(* Why check this? Because it may have been blocked since it was added *)    
+     if ip <> Ip.localhost && is_overnet_ip ip && port <> 0 then
       Proto.udp_send sock ip port false msg
 
 let udp_send_ping ip port msg =
   match !udp_sock with
     None -> ()
   | Some sock ->
+(* Why check this? Because it may have been blocked since it was added *)    
+     if ip <> Ip.localhost && is_overnet_ip ip && port <> 0 then
       Proto.udp_send sock ip port true msg
 
 let udp_send p msg =
@@ -928,7 +941,8 @@
   if p.peer_ip <> Ip.localhost && is_overnet_ip p.peer_ip && 
      p.peer_port <> 0 && p.peer_created <> 0 then begin
     let nbits = common_bits p.peer_md4 s.search_md4 in
-    begin
+(* Don't add ourself *)
+    if not (nbits = 128 && s.search_kind == FillBuckets) then begin
       try
         Fifo.iter (fun pp ->
           if pp.peer_ip = p.peer_ip && 
@@ -1305,7 +1319,8 @@
     for j = 1 to Fifo.length b do
       let p = Fifo.take b in
       (* bad peers have kind = 4 and did not respond within peer_expire *)
-      if not (p.peer_kind = 4 && p.peer_expire <= last_time ()) then
+      (* Why check is_overnet_ip? Because it may have been blocked since it 
was added *)
+      if not (p.peer_kind = 4 && p.peer_expire <= last_time ()) && 
is_overnet_ip p.peer_ip then
         Fifo.put b p 
       else
       begin
@@ -1335,7 +1350,9 @@
                 incr connected_peers;
                decr pre_connected_peers;
             (* bad peers are removed *)    
-            end else if p.peer_kind = 4 && p.peer_expire <= last_time () then 
begin
+            (* Why check is_overnet_ip? Because it may have been blocked since 
it was added *)
+            end else if (p.peer_kind = 4 && p.peer_expire <= last_time ()) || 
+                        not (is_overnet_ip p.peer_ip) 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;
@@ -1418,6 +1435,7 @@
 
 (* copy all boot_peers to unknown_peers *)
       LimitedList.iter (fun (ip, port) ->
+          if ip <> Ip.localhost && is_overnet_ip ip && port <> 0 then
           LimitedList.add unknown_peers (ip, port)
           ) !!boot_peers;
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]