Author: andar
Revision: 5468
Log:
Fix client.connect() not firing the errback when a login attempt result
is 0 (meaning no
authorization)
Fix console connect command
Diff:
Modified: trunk/deluge/ui/client.py
===================================================================
--- trunk/deluge/ui/client.py 2009-07-06 11:51:06 UTC (rev 5467)
+++ trunk/deluge/ui/client.py 2009-07-06 20:00:41 UTC (rev 5468)
@@ -384,6 +384,11 @@
self.login_deferred.callback(False)
def __on_login(self, result, username):
+ if not result:
+ # We received a 0 auth level from the server which means it failed
+ self.login_deferred.errback(result)
+ return
+
self.username = username
# We need to tell the daemon what events we're interested in receiving
if self.__factory.event_handlers:
Modified: trunk/deluge/ui/console/commands/connect.py
===================================================================
--- trunk/deluge/ui/console/commands/connect.py 2009-07-06 11:51:06 UTC (rev
5467)
+++ trunk/deluge/ui/console/commands/connect.py 2009-07-06 20:00:41 UTC (rev
5468)
@@ -40,17 +40,29 @@
class Command(BaseCommand):
"""Connect to a new deluge server."""
- def handle(self, host="", port="58846", username="", password="",
**options):
+
+ usage = "Usage: connect <host[:port]> <username> <password>"
+
+ def handle(self, host="127.0.0.1:58846", username="", password="",
**options):
self.console = component.get("ConsoleUI")
+ try:
+ host, port = host.split(":")
+ except ValueError:
+ port = 58846
+ else:
+ port = int(port)
- port = int(port)
- d = client.connect(host, port, username, password)
- def on_connect(result):
- self.console.write("{!success!}Connected to %s:%s!" % (host, port))
+ def on_disconnect(result):
+ d = client.connect(host, port, username, password)
+ def on_connect(result):
+ self.console.write("{!success!}Connected to %s:%s!" % (host,
port))
+ component.start()
- def on_connect_fail(result):
- self.console.write("{!error!}Failed to connect to %s:%s!" % (host,
port))
+ def on_connect_fail(result):
+ self.console.write("{!error!}Failed to connect to %s:%s!" %
(host, port))
- d.addCallback(on_connect)
- d.addErrback(on_connect_fail)
- return d
+ d.addCallback(on_connect)
+ d.addErrback(on_connect_fail)
+ return d
+
+ client.disconnect().addCallback(on_disconnect)
Modified: trunk/deluge/ui/console/main.py
===================================================================
--- trunk/deluge/ui/console/main.py 2009-07-06 11:51:06 UTC (rev 5467)
+++ trunk/deluge/ui/console/main.py 2009-07-06 20:00:41 UTC (rev 5468)
@@ -140,6 +140,8 @@
# Load all the commands
self._commands = load_commands(os.path.join(UI_PATH, 'commands'))
+ client.set_disconnect_callback(self.on_client_disconnect)
+
# Set the interactive flag to indicate where we should print the output
self.interactive = True
if args:
@@ -166,7 +168,8 @@
# any of the commands.
self.started_deferred.addCallback(on_started)
- client.connect().addCallback(on_connect)
+ d = client.connect()
+ d.addCallback(on_connect)
self.coreconfig = CoreConfig()
if self.interactive:
@@ -397,3 +400,6 @@
for index, (tid, name) in enumerate(self.torrents):
if torrent_id == tid:
del self.torrents[index]
+
+ def on_client_disconnect(self):
+ component.stop()
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"deluge-commit" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/deluge-commit?hl=en
-~----------~----~----~----~------~----~------~--~---