Test tracker address validity

This commit is contained in:
shortcutme 2018-08-26 02:56:24 +02:00
parent 0e3698fa2f
commit 33877c73bb
No known key found for this signature in database
GPG key ID: 5B63BAE6CB9613AE

View file

@ -5,6 +5,7 @@ import urllib
import urllib2 import urllib2
import struct import struct
import socket import socket
import re
from lib import bencode from lib import bencode
from lib.subtl.subtl import UdpTrackerClient from lib.subtl.subtl import UdpTrackerClient
@ -150,8 +151,8 @@ class SiteAnnouncer(object):
def announceTracker(self, tracker, mode="start", num_want=10): def announceTracker(self, tracker, mode="start", num_want=10):
s = time.time() s = time.time()
if "://" not in tracker: if "://" not in tracker or not re.match("^[A-Za-z0-9:/\\.#-]+$", tracker):
self.site.log.warning("Tracker %s error: Invalid address" % tracker) self.site.log.warning("Tracker %s error: Invalid address" % tracker.decode("utf8", "ignore"))
return False return False
protocol, address = tracker.split("://", 1) protocol, address = tracker.split("://", 1)
if tracker not in self.stats: if tracker not in self.stats: