summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLouis-Francis Ratté-Boulianne <louis-francis.ratte-boulianne@collabora.co.uk>2010-10-22 14:38:02 -0400
committerLouis-Francis Ratté-Boulianne <louis-francis.ratte-boulianne@collabora.co.uk>2010-12-03 10:55:43 -0500
commitfb00d7ad2c8481a777844fd7ca20be76d2682fbd (patch)
treef0dc473c1f377a9c7d2981357710f0a6c514e1d1
parent0a4df5c173d77b5aa98858a0d0cc2d9ea275e541 (diff)
Add function to check if some protocol is supported by the CM
-rw-r--r--src/server/connmgr.py17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/server/connmgr.py b/src/server/connmgr.py
index 8167108..9c97b7d 100644
--- a/src/server/connmgr.py
+++ b/src/server/connmgr.py
@@ -38,7 +38,7 @@ class ConnectionManager(_ConnectionManager):
object_path)
self._connections = set()
- self._protos = {}
+ self._protos = {} # proto name => Connection class
def connected(self, conn):
"""
@@ -60,14 +60,17 @@ class ConnectionManager(_ConnectionManager):
return False # when called in an idle callback
+ def check_proto(self, proto):
+ if proto not in self._protos:
+ raise NotImplemented('unknown protocol %s' % proto)
+
@dbus.service.method(CONN_MGR_INTERFACE, in_signature='', out_signature='as')
def ListProtocols(self):
return self._protos.keys()
def RequestConnection(self, proto, parameters):
- if proto in self._protos:
- conn = self._protos[proto](self, parameters)
- self.connected(conn)
- return (conn._name.get_name(), conn._object_path)
- else:
- raise NotImplemented('unknown protocol %s' % proto)
+ self.check_proto(proto)
+
+ conn = self._protos[proto](self, parameters)
+ self.connected(conn)
+ return (conn._name.get_name(), conn._object_path)