Allow for colons in PeerGuardian/SafePeer lists' descriptions.

Check that the start & end range resembles an ip when checking a list's validity.
This commit is contained in:
John Garland 2009-11-09 08:54:13 +00:00
parent 41353c9ae4
commit 4e2c0a70c4
1 changed files with 5 additions and 1 deletions

View File

@ -34,6 +34,7 @@
#
from common import raiseError, remove_zeros
import re
class ReaderParseError(Exception):
pass
@ -69,6 +70,9 @@ class BaseReader(object):
if not self.is_ignored(line):
try:
(start, end) = self.parse(line)
if not re.match("^(\d{1,3}\.){4}$", start + ".") or \
not re.match("^(\d{1,3}\.){4}$", end + "."):
valid = False
except:
valid = False
finally:
@ -94,7 +98,7 @@ class SafePeerReader(BaseReader):
"""Blocklist reader for SafePeer style blocklists"""
@raiseError(ReaderParseError)
def parse(self, line):
return line.strip().split(":")[1].split("-")
return line.strip().split(":")[-1].split("-")
class PeerGuardianReader(SafePeerReader):
"""Blocklist reader for PeerGuardian style blocklists"""