diff --git a/README.md b/README.md index 1b42527..da99fbc 100644 --- a/README.md +++ b/README.md @@ -19,10 +19,10 @@ Start a Syndicate broker (such as Find the line of broker output giving the root capability: - ... rootcap= ... + ... rootcap= ... Then, run [chat.py](chat.py) several times in several separate windows: python chat.py \ --address '' \ - --cap '' + --cap '' diff --git a/chat.py b/chat.py index 05f2ebd..a9a0544 100644 --- a/chat.py +++ b/chat.py @@ -17,7 +17,7 @@ parser.add_argument('--address', metavar='\'\'', default='') parser.add_argument('--cap', metavar='\'\'', help='capability for the dataspace on the server', - default='') + default='') args = parser.parse_args() Present = simpleChatProtocol.Present diff --git a/syndicate/gatekeeper.py b/syndicate/gatekeeper.py index 37fdda2..d14ecc1 100644 --- a/syndicate/gatekeeper.py +++ b/syndicate/gatekeeper.py @@ -5,8 +5,11 @@ from . import turn # decorator def resolve(gk, cap, *args, **kwargs): def configure_handler(handler): - def unwrapping_handler(wrapped_ref): - return handler(wrapped_ref.embeddedValue) + def unwrapping_handler(r): + resolved = gatekeeper.Resolved.decode(r) + if resolved.VARIANT.name == 'accepted': + return handler(resolved.responderSession) + raise Exception('Could not resolve reference: ' + repr(resolved)) return _resolve(gk, cap)(During(*args, **kwargs).add_handler(unwrapping_handler)) return configure_handler