Here it is -- And that's my crabbing done for the day. Got it out of the way early, now I have the rest of the afternoon to sniff fragrant tea-roses or strangle cute bunnies or something. -- Michael Devore GnuPG Key Fingerprint 86 F5 81 A5 D4 2E 1F 1C http://gnupg.org No more sea shells: Daniel's Weblog http://cshore.wordpress.com
diff -Naur bittorrent-3.4.2-11-pristine/BitTorrent/download.py bittorrent-3.4.2/BitTorrent/download.py
--- bittorrent-3.4.2-11-pristine/BitTorrent/download.py 2004-04-02 23:10:45.000000000 -0500
+++ bittorrent-3.4.2/BitTorrent/download.py 2008-05-23 03:34:17.000000000 -0400
@@ -92,6 +92,10 @@
"the number of uploads to fill out to with extra optimistic unchokes"),
('report_hash_failures', 0,
"whether to inform the user that hash failures occur. They're non-fatal."),
+ ('min_outgoing_port', 1024,
+ "lowest port to which we are willing to connect"),
+ ('max_outgoing_port', 65535,
+ "highest port to which we are willing to connect"),
]
def download(params, filefunc, statusfunc, finfunc, errorfunc, doneflag, cols, pathFunc = None, paramfunc = None, spewflag = Event()):
@@ -242,6 +246,13 @@
errorfunc("Couldn't listen - " + str(e))
return
+ if config['min_outgoing_port'] < 1024 or config['max_outgoing_port'] > 65535:
+ errorfunc("We can only connect to peers using ports between 1024 and 65535")
+ return
+ if config['min_outgoing_port'] > config['max_outgoing_port']:
+ errorfunc("max_outgoing_port less than min_outgoing_port; can't connect")
+ return
+
choker = Choker(config['max_uploads'], rawserver.add_task, finflag.isSet,
config['min_uploads'])
upmeasure = Measure(config['max_rate_period'],
@@ -277,7 +288,7 @@
upmeasure.get_total, downmeasure.get_total, listen_port,
config['ip'], myid, infohash, config['http_timeout'], errorfunc,
config['max_initiate'], doneflag, upmeasure.get_rate, downmeasure.get_rate,
- encoder.ever_got_incoming)
+ encoder.ever_got_incoming, config['min_outgoing_port'], config['max_outgoing_port'])
if config['spew']:
spewflag.set()
DownloaderFeedback(choker, rawserver.add_task, statusfunc,
diff -Naur bittorrent-3.4.2-11-pristine/BitTorrent/Rerequester.py bittorrent-3.4.2/BitTorrent/Rerequester.py
--- bittorrent-3.4.2-11-pristine/BitTorrent/Rerequester.py 2004-04-02 23:10:45.000000000 -0500
+++ bittorrent-3.4.2/BitTorrent/Rerequester.py 2008-05-23 03:33:51.000000000 -0400
@@ -14,7 +14,7 @@
def __init__(self, url, interval, sched, howmany, minpeers,
connect, externalsched, amount_left, up, down,
port, ip, myid, infohash, timeout, errorfunc, maxpeers, doneflag,
- upratefunc, downratefunc, ever_got_incoming):
+ upratefunc, downratefunc, ever_got_incoming, min_outgoing, max_outgoing):
self.url = ('%s?info_hash=%s&peer_id=%s&port=%s&key=%s' %
(url, quote(infohash), quote(myid), str(port),
b2a_hex(''.join([chr(randrange(256)) for i in xrange(4)]))))
@@ -41,6 +41,8 @@
self.ever_got_incoming = ever_got_incoming
self.last_failed = True
self.last_time = 0
+ self.min_outgoing = min_outgoing
+ self.max_outgoing = max_outgoing
def c(self):
self.sched(self.c, self.interval)
@@ -116,10 +118,12 @@
for x in xrange(0, len(p), 6):
ip = '.'.join([str(ord(i)) for i in p[x:x+4]])
port = (ord(p[x+4]) << 8) | ord(p[x+5])
- peers.append((ip, port, None))
+ if port >= min_outgoing and port <= max_outgoing:
+ peers.append((ip, port, None))
else:
for x in p:
- peers.append((x['ip'], x['port'], x.get('peer id')))
+ if x['port'] >= min_outgoing and x['port'] <= max_outgoing:
+ peers.append((x['ip'], x['port'], x.get('peer id')))
ps = len(peers) + self.howmany()
if ps < self.maxpeers:
if self.doneflag.isSet():
diff -Naur bittorrent-3.4.2-11-pristine/debian/changelog bittorrent-3.4.2/debian/changelog
--- bittorrent-3.4.2-11-pristine/debian/changelog 2008-05-22 21:58:42.000000000 -0400
+++ bittorrent-3.4.2/debian/changelog 2008-05-23 03:30:48.000000000 -0400
@@ -1,3 +1,10 @@
+bittorrent (3.4.2-11.1~dfd2) unstable; urgency=low
+
+ * Add outgoing port range limiting in order to play well with strict
+ firewalls. Closes: #481276
+
+ -- Daniel Dickinson <[EMAIL PROTECTED]> Fri, 23 May 2008 03:29:15 -0500
+
bittorrent (3.4.2-11) unstable; urgency=low
* Add LSB logging functionality. (thanks David!) Closes: #384724
signature.asc
Description: PGP signature

