[tor-commits] [bridgedb/master] Change Dist.uniformMap() to truncated IPv6 addresses to their /32.

isis at torproject.org isis at torproject.org
Fri May 1 07:10:58 UTC 2015


commit c91def00b30be2ae130c9884a58bb700e093afb4
Author: Isis Lovecruft <isis at torproject.org>
Date:   Tue Mar 31 12:21:00 2015 +0000

    Change Dist.uniformMap() to truncated IPv6 addresses to their /32.
    
     * FIXES #15522: https://bugs.torproject.org/15522
---
 lib/bridgedb/Dist.py |   10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/lib/bridgedb/Dist.py b/lib/bridgedb/Dist.py
index 466db84..6bb41b9 100644
--- a/lib/bridgedb/Dist.py
+++ b/lib/bridgedb/Dist.py
@@ -49,7 +49,7 @@ class EmailRequestedKey(Exception):
 def uniformMap(ip):
     """Map an IP to an arbitrary 'area' string, such that any two IPv4
     addresses in the same ``/16`` subnet, or any two IPv6 addresses in the
-    same ``/64`` subnet, get the same string.
+    same ``/32`` subnet, get the same string.
 
     >>> from bridgedb import Dist
     >>> Dist.uniformMap('1.2.3.4')
@@ -57,9 +57,9 @@ def uniformMap(ip):
     >>> Dist.uniformMap('1.2.211.154')
     '1.2.0.0/16'
     >>> Dist.uniformMap('2001:f::bc1:b13:2808')
-    '2001:f::/64'
+    '2001:f::/32'
     >>> Dist.uniformMap('2a00:c98:2030:a020:2::42')
-    '2a00:c98:2030:a020::/64'
+    '2a00:c98::/32'
 
     :param str ip: A string representing an IPv4 or IPv6 address.
     :rtype: str
@@ -71,8 +71,8 @@ def uniformMap(ip):
     # in a hashring.
     address = ipaddr.IPAddress(ip)
     if address.version == 6:
-        truncated = ':'.join(address.exploded.split(':')[:4])
-        subnet = str(ipaddr.IPv6Network(truncated + "::/64"))
+        truncated = ':'.join(address.exploded.split(':')[:2])
+        subnet = str(ipaddr.IPv6Network(truncated + "::/32"))
         return subnet
     else:
         truncated = '.'.join(address.exploded.split('.')[:2])





More information about the tor-commits mailing list