Add saving/loading of lt session state
This commit is contained in:
parent
8a39b7dcd5
commit
36118b3d02
|
@ -167,6 +167,9 @@ class Core(
|
||||||
log.debug("Starting libtorrent session..")
|
log.debug("Starting libtorrent session..")
|
||||||
self.session = lt.session(fingerprint)
|
self.session = lt.session(fingerprint)
|
||||||
|
|
||||||
|
# Load the session state if available
|
||||||
|
self.load_session_state()
|
||||||
|
|
||||||
# Set the user agent
|
# Set the user agent
|
||||||
self.settings = lt.session_settings()
|
self.settings = lt.session_settings()
|
||||||
self.settings.user_agent = "Deluge %s" % deluge.common.get_version()
|
self.settings.user_agent = "Deluge %s" % deluge.common.get_version()
|
||||||
|
@ -233,6 +236,9 @@ class Core(
|
||||||
if self.config["dht"]:
|
if self.config["dht"]:
|
||||||
self.save_dht_state()
|
self.save_dht_state()
|
||||||
|
|
||||||
|
# Save the libtorrent session state
|
||||||
|
self.save_session_state()
|
||||||
|
|
||||||
# Shutdown the socket
|
# Shutdown the socket
|
||||||
try:
|
try:
|
||||||
self.socket.shutdown(socket.SHUT_RDWR)
|
self.socket.shutdown(socket.SHUT_RDWR)
|
||||||
|
@ -251,10 +257,22 @@ class Core(
|
||||||
del deluge.configmanager
|
del deluge.configmanager
|
||||||
del self.session
|
del self.session
|
||||||
self.loop.quit()
|
self.loop.quit()
|
||||||
|
|
||||||
|
def save_session_state(self):
|
||||||
|
"""Saves the libtorrent session state"""
|
||||||
try:
|
try:
|
||||||
self.gnome_client.disconnect()
|
open(deluge.common.get_default_config_dir("session.state"), "wb").write(
|
||||||
except:
|
lt.bencode(self.session.state()))
|
||||||
pass
|
except Exception, e:
|
||||||
|
log.warning("Failed to save lt state: %s", e)
|
||||||
|
|
||||||
|
def load_session_state(self):
|
||||||
|
"""Loads the libtorrent session state"""
|
||||||
|
try:
|
||||||
|
self.session.load_state(lt.bdecode(
|
||||||
|
open(deluge.common.get_default_config_dir("session.state"), "rb").read()))
|
||||||
|
except Exception, e:
|
||||||
|
log.warning("Failed to load lt state: %s", e)
|
||||||
|
|
||||||
def save_dht_state(self):
|
def save_dht_state(self):
|
||||||
"""Saves the dht state to a file"""
|
"""Saves the dht state to a file"""
|
||||||
|
|
Loading…
Reference in New Issue