mjschultz / py-radix

Python radix tree implementation for IPv4 and IPv6 prefix matching.
Other
121 stars 37 forks source link

A bug in latest version #17

Closed aghamir closed 9 years ago

aghamir commented 9 years ago

Hi, I used your package in my BSc. project but in this situation your package makes this error: rtree = radix.Radix() rtree.add('178.249.103.0/24') rtree.add('2a03:e780::/44') rtree.add('2001:7fb:ff02::/48') rtree.add('2001:7fb:ff02::/48') rtree.add('2001:7fb:ff02::/48') rtree.add('2001:7fb:ff02::/48') rtree.add('84.205.66.0/24') rtree.add('2001:7fb:ff02::/48') rtree.add('2001:7fb:ff02::/48') rtree.add('2001:7fb:ff02::/48') rtree.add('2001:7fb:ff02::/48') rtree.add('84.205.66.0/24') rtree.delete('84.205.66.0/24') rtree.add('84.205.66.0/24') rtree.add('2001:7fb:ff02::/48') rtree.add('2001:7fb:ff02::/48') rtree.add('2001:7fb:ff02::/48') rtree.add('2001:7fb:ff02::/48') rtree.add('69.171.208.0/20') rtree.add('69.171.208.0/20') rtree.add('163.174.113.0/24') rtree.add('163.174.112.0/24') rtree.add('163.174.113.0/24') rtree.add('163.174.112.0/24') rtree.add('163.174.113.0/24') rtree.add('163.174.112.0/24') rtree.add('163.174.113.0/24') rtree.add('163.174.112.0/24') rtree.add('163.174.112.0/24') rtree.add('163.174.113.0/24') rtree.add('163.174.112.0/24') rtree.add('163.174.113.0/24') rtree.add('192.58.232.0/24') rtree.add('37.228.71.0/24') rtree.add('46.235.87.0/24') rtree.add('163.174.112.0/24') rtree.add('163.174.113.0/24') rtree.add('37.228.71.0/24') rtree.add('46.235.87.0/24') rtree.add('192.58.232.0/24') rtree.add('163.174.113.0/24') rtree.add('163.174.112.0/24') rtree.add('205.83.192.0/19') rtree.add('163.174.113.0/24') rtree.add('163.174.112.0/24') rtree.add('205.83.192.0/19') rtree.add('192.58.232.0/24') rtree.add('205.83.192.0/19') rtree.add('192.58.232.0/24') rtree.add('205.83.192.0/19') rtree.add('192.58.232.0/24') rtree.add('69.171.208.0/20') rtree.add('205.83.192.0/19') rtree.add('163.174.113.0/24') rtree.add('163.174.112.0/24') rtree.add('109.161.64.0/20') rtree.add('163.174.113.0/24') rtree.add('163.174.112.0/24') rtree.add('109.161.64.0/20') rtree.add('109.161.64.0/20') rtree.add('109.161.64.0/20') rtree.add('109.161.64.0/20') rtree.add('109.161.64.0/20') rtree.add('69.171.208.0/20') rtree.add('109.161.64.0/20') rtree.add('109.161.64.0/20') rtree.add('109.161.64.0/20') rtree.add('89.221.206.0/24') rtree.add('109.161.64.0/20') rtree.add('69.171.208.0/20') rtree.add('89.221.206.0/24') rtree.add('89.221.206.0/24') rtree.add('89.221.206.0/24') rtree.add('89.221.206.0/24') rtree.add('195.178.105.0/24') rtree.add('195.178.104.0/24') rtree.add('205.83.192.0/19') rtree.add('193.151.109.0/24') rtree.add('89.221.206.0/24') rtree.add('69.59.116.0/24') rtree.add('24.31.24.0/24') rtree.add('24.245.76.0/24') rtree.add('89.221.206.0/24') rtree.add('69.171.208.0/20') rtree.add('193.151.109.0/24') rtree.add('193.151.109.0/24') rtree.add('69.171.208.0/20') rtree.add('193.151.109.0/24') rtree.add('193.151.109.0/24') rtree.add('67.210.190.0/23') rtree.add('84.205.66.0/24') rtree.add('121.52.144.0/24') rtree.add('194.110.218.0/24') rtree.add('194.110.218.0/24') rtree.add('121.52.144.0/24') rtree.add('194.110.218.0/24') rtree.add('194.110.218.0/24') rtree.add('193.32.12.0/22') rtree.add('151.249.96.0/21') rtree.add('91.217.100.0/23') rtree.add('185.22.16.0/22') rtree.add('195.211.252.0/22') rtree.add('193.106.220.0/22') rtree.add('151.249.96.0/21') rtree.add('91.217.100.0/23') rtree.add('193.32.12.0/22') rtree.add('195.211.252.0/22') rtree.add('193.106.220.0/22') rtree.add('185.22.16.0/22') rtree.add('84.205.66.0/24') rtree.add('2001:67c:1874::/48') rtree.add('103.11.61.0/24') rtree.add('2001:67c:1874::/48') rtree.add('2001:7fb:ff02::/48') rtree.add('2001:7fb:ff02::/48') rtree.add('103.11.61.0/24') rtree.add('103.11.61.0/24') rtree.add('2001:7fb:ff02::/48') rtree.add('78.106.190.0/24') rtree.add('78.106.190.0/24') rtree.add('78.106.190.0/24') rtree.add('78.106.190.0/24') rtree.add('78.106.190.0/24') rtree.add('78.106.190.0/24') rtree.add('103.253.46.0/24') rtree.add('78.106.190.0/24') rtree.add('78.106.190.0/24') rtree.add('78.106.190.0/24') rtree.add('103.11.61.0/24') rtree.add('194.110.218.0/24') rtree.add('103.11.61.0/24') rtree.add('194.110.218.0/24') rtree.add('103.11.61.0/24') rtree.add('194.110.218.0/24') rtree.add('194.110.218.0/24') rtree.add('199.187.118.0/24') rtree.add('69.59.116.0/24') rtree.add('24.31.24.0/24') rtree.add('24.245.76.0/24') rtree.add('198.36.36.0/24') rtree.add('166.87.0.0/16') rtree.add('67.138.8.0/24') rtree.add('67.136.14.0/23') rtree.add('192.58.232.0/24') rtree.add('202.5.130.0/24') rtree.add('202.5.128.0/24') rtree.add('103.11.61.0/24') rtree.add('121.52.144.0/24') rtree.add('84.205.66.0/24') rtree.add('205.83.192.0/19') rtree.add('163.174.112.0/24') rtree.add('163.174.113.0/24') rtree.add('109.161.64.0/20') rtree.add('89.221.206.0/24') rtree.add('195.211.252.0/22') rtree.add('194.110.218.0/24') rtree.add('69.171.208.0/20') rtree.add('194.110.218.0/24') rtree.add('5.150.145.0/24') rtree.add('178.249.103.0/24') rtree.add('5.150.145.0/24') rtree.add('5.150.145.0/24') rtree.add('5.150.145.0/24') rtree.add('5.150.145.0/24') rtree.add('5.150.145.0/24') rtree.add('178.249.103.0/24') rtree.add('178.249.103.0/24') rtree.add('5.150.145.0/24') rtree.add('2a03:ea80:18::/48') rtree.add('2a03:ea80:15::/48') rtree.add('2001:67c:2848::/48') rtree.add('2001:67c:11b4::/48') rtree.add('2a01:71c0::/32') rtree.add('2a00:5ac0::/32') rtree.add('2a00:8a80::/29') rtree.add('2a04:41c0::/29') rtree.add('2a03:e780::/44') rtree.add('2001:7fb:ff02::/48') rtree.add('2001:67c:1874::/48') rtree.add('2001:67c:1ec::/48') rtree.delete('5.150.145.0/24') rtree.add('178.249.103.0/24') rtree.delete('195.178.105.0/24') rtree.delete('195.178.104.0/24') rtree.add('5.150.145.0/24') #Exception

Traceback (most recent call last): File "", line 1, in File "/usr/local/lib/python2.7/dist-packages/radix/radix.py", line 426, in add node = self._tree4.add(prefix) File "/usr/local/lib/python2.7/dist-packages/radix/radix.py", line 140, in add r = addr[i] ^ test_addr[i] TypeError: 'NoneType' object has no attribute 'getitem'

aghamir commented 9 years ago

The minimum test with the same error that I found is here: rtree = radix.Radix() rtree.add('109.161.64.0/20') rtree.add('5.150.145.0/24') rtree.delete('5.150.145.0/24') rtree.add('5.150.145.0/24') #Exception

Traceback (most recent call last): File "", line 1, in File "/usr/local/lib/python2.7/dist-packages/radix/radix.py", line 426, in add node = self._tree4.add(prefix) File "/usr/local/lib/python2.7/dist-packages/radix/radix.py", line 140, in add r = addr[i] ^ test_addr[i] TypeError: 'NoneType' object has no attribute 'getitem'