Changeset 3743

Show
Ignore:
Timestamp:
08/24/08 04:52:14 (3 months ago)
Author:
andar
Message:

Add saving/loading of lt session state

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/deluge/core/core.py

    r3742 r3743  
    167167        log.debug("Starting libtorrent session..") 
    168168        self.session = lt.session(fingerprint) 
     169         
     170        # Load the session state if available 
     171        self.load_session_state() 
    169172 
    170173        # Set the user agent 
     
    233236        if self.config["dht"]: 
    234237            self.save_dht_state() 
     238         
     239        # Save the libtorrent session state 
     240        self.save_session_state() 
    235241             
    236242        # Shutdown the socket 
     
    252258        del self.session 
    253259        self.loop.quit() 
    254         try: 
    255             self.gnome_client.disconnect() 
    256         except: 
    257             pass 
    258  
     260 
     261    def save_session_state(self): 
     262        """Saves the libtorrent session state""" 
     263        try: 
     264            open(deluge.common.get_default_config_dir("session.state"), "wb").write( 
     265                lt.bencode(self.session.state())) 
     266        except Exception, e: 
     267            log.warning("Failed to save lt state: %s", e) 
     268     
     269    def load_session_state(self): 
     270        """Loads the libtorrent session state""" 
     271        try: 
     272            self.session.load_state(lt.bdecode( 
     273                open(deluge.common.get_default_config_dir("session.state"), "rb").read())) 
     274        except Exception, e: 
     275            log.warning("Failed to load lt state: %s", e) 
     276             
    259277    def save_dht_state(self): 
    260278        """Saves the dht state to a file"""