Changeset 4019

Show
Ignore:
Timestamp:
10/15/08 23:57:03 (3 months ago)
Author:
andar
Message:

Fix IP filter

Files:
3 modified

Legend:

Unmodified
Added
Removed
  • branches/1.0.0_RC/ChangeLog

    r4018 r4019  
    66  * Fix issue where fastresume files would be rejected when using FAT32.  This 
    77    would cause the torrent to be rechecked on every startup. 
     8  * Fix ip filtering 
    89 
    910Deluge 1.0.2 (10 October 2008) 
  • branches/1.0.0_RC/deluge/core/core.py

    r3950 r4019  
    224224        self.session.set_settings(self.settings) 
    225225         
     226        # Create an ip filter 
     227        self.ip_filter = lt.ip_filter() 
     228        # This keeps track of the timer to set the ip filter.. We do this a few 
     229        # seconds aftering adding a rule so that 'batch' adding of rules isn't slow. 
     230        self._set_ip_filter_timer = None 
     231 
    226232        # Load metadata extension 
    227233        self.session.add_extension(lt.create_metadata_plugin) 
     
    615621    def export_block_ip_range(self, range): 
    616622        """Block an ip range""" 
    617         try: 
    618             self.ip_filter.add_rule(range[0], range[1], 1) 
    619         except AttributeError: 
    620             self.export_reset_ip_filter() 
    621             self.ip_filter.add_rule(range[0], range[1], 1) 
    622      
     623        self.ip_filter.add_rule(range[0], range[1], 1) 
     624         
     625        # Start a 2 second timer (and remove the previous one if it exists) 
     626        if self._set_ip_filter_timer: 
     627            gobject.source_remove(self._set_ip_filter_timer) 
     628        self._set_ip_filter_timer = gobject.timeout_add(2000, self.session.set_ip_filter, self.ip_filter) 
     629 
    623630    def export_reset_ip_filter(self): 
    624631        """Clears the ip filter""" 
  • trunk/deluge/core/core.py

    r3969 r4019  
    184184        self.session.set_settings(self.settings) 
    185185 
     186        # Create an ip filter 
     187        self.ip_filter = lt.ip_filter() 
     188        # This keeps track of the timer to set the ip filter.. We do this a few 
     189        # seconds aftering adding a rule so that 'batch' adding of rules isn't slow. 
     190        self._set_ip_filter_timer = None 
     191        
    186192        # Load metadata extension 
    187193        self.session.add_extension(lt.create_metadata_plugin) 
     
    634640    def export_block_ip_range(self, range): 
    635641        """Block an ip range""" 
    636         try: 
    637             self.ip_filter.add_rule(range[0], range[1], 1) 
    638         except AttributeError: 
    639             self.export_reset_ip_filter() 
    640             self.ip_filter.add_rule(range[0], range[1], 1) 
    641  
     642        self.ip_filter.add_rule(range[0], range[1], 1) 
     643         
     644        # Start a 2 second timer (and remove the previous one if it exists) 
     645        if self._set_ip_filter_timer: 
     646            gobject.source_remove(self._set_ip_filter_timer) 
     647        self._set_ip_filter_timer = gobject.timeout_add(2000, self.session.set_ip_filter, self.ip_filter) 
     648         
    642649    def export_reset_ip_filter(self): 
    643650        """Clears the ip filter""" 
     
    707714        list of (index, filename) pairs.""" 
    708715        self.torrents[torrent_id].rename_files(filenames) 
     716     
     717    def export_rename_folder(self, torrent_id, folder, new_folder): 
     718        """Renames the 'folder' to 'new_folder' in 'torrent_id'.""" 
     719        self.torrents[torrent_id].rename_folder(folder, new_folder) 
    709720 
    710721    ## Queueing functions ##