Fix IP filter

This commit is contained in:
Andrew Resch 2008-10-15 23:57:03 +00:00
commit 0534b24609
2 changed files with 14 additions and 6 deletions

View file

@ -5,6 +5,7 @@ Deluge 1.0.3 (In Development)
pause/resume. pause/resume.
* Fix issue where fastresume files would be rejected when using FAT32. This * Fix issue where fastresume files would be rejected when using FAT32. This
would cause the torrent to be rechecked on every startup. would cause the torrent to be rechecked on every startup.
* Fix ip filtering
Deluge 1.0.2 (10 October 2008) Deluge 1.0.2 (10 October 2008)
Core: Core:

View file

@ -223,6 +223,12 @@ class Core(
self.settings.send_redundant_have = True self.settings.send_redundant_have = True
self.session.set_settings(self.settings) self.session.set_settings(self.settings)
# Create an ip filter
self.ip_filter = lt.ip_filter()
# This keeps track of the timer to set the ip filter.. We do this a few
# seconds aftering adding a rule so that 'batch' adding of rules isn't slow.
self._set_ip_filter_timer = None
# Load metadata extension # Load metadata extension
self.session.add_extension(lt.create_metadata_plugin) self.session.add_extension(lt.create_metadata_plugin)
@ -614,12 +620,13 @@ class Core(
def export_block_ip_range(self, range): def export_block_ip_range(self, range):
"""Block an ip range""" """Block an ip range"""
try: self.ip_filter.add_rule(range[0], range[1], 1)
self.ip_filter.add_rule(range[0], range[1], 1)
except AttributeError: # Start a 2 second timer (and remove the previous one if it exists)
self.export_reset_ip_filter() if self._set_ip_filter_timer:
self.ip_filter.add_rule(range[0], range[1], 1) gobject.source_remove(self._set_ip_filter_timer)
self._set_ip_filter_timer = gobject.timeout_add(2000, self.session.set_ip_filter, self.ip_filter)
def export_reset_ip_filter(self): def export_reset_ip_filter(self):
"""Clears the ip filter""" """Clears the ip filter"""
self.ip_filter = lt.ip_filter() self.ip_filter = lt.ip_filter()