diff options
author | Louis-Francis Ratté-Boulianne <louis-francis.ratte-boulianne@collabora.co.uk> | 2010-10-22 14:38:02 -0400 |
---|---|---|
committer | Louis-Francis Ratté-Boulianne <louis-francis.ratte-boulianne@collabora.co.uk> | 2010-12-03 10:55:43 -0500 |
commit | fb00d7ad2c8481a777844fd7ca20be76d2682fbd (patch) | |
tree | f0dc473c1f377a9c7d2981357710f0a6c514e1d1 | |
parent | 0a4df5c173d77b5aa98858a0d0cc2d9ea275e541 (diff) |
Add function to check if some protocol is supported by the CM
-rw-r--r-- | src/server/connmgr.py | 17 |
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) |