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 1b46d99620
commit fa40f38c1b
2 changed files with 6 additions and 1 deletions

View file

@ -20,6 +20,7 @@
==== Blocklist ====
* Force blocklist to auto-detect format when a download / import is forced
* Fix blocklist failing on certain PeerGuardian/SafePeer lists
=== Deluge 1.2.0_rc3 (01 November 2009) ===
==== Core ====

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"""