diff --git a/attic/remote.py b/attic/remote.py index f2a0aed06..f21d3cbc2 100644 --- a/attic/remote.py +++ b/attic/remote.py @@ -44,7 +44,10 @@ def serve(self): if not data: return unpacker.feed(data) - for type, msgid, method, args in unpacker: + for unpacked in unpacker: + if not (isinstance(unpacked, tuple) and len(unpacked) == 4): + raise Exception("Unexpected RPC data format.") + type, msgid, method, args = unpacked method = method.decode('ascii') try: try: @@ -172,7 +175,10 @@ def fetch_from_cache(args): if not data: raise ConnectionClosed() self.unpacker.feed(data) - for type, msgid, error, res in self.unpacker: + for unpacked in self.unpacker: + if not (isinstance(unpacked, tuple) and len(unpacked) == 4): + raise Exception("Unexpected RPC data format.") + type, msgid, error, res = unpacked if msgid in self.ignore_responses: self.ignore_responses.remove(msgid) else: @@ -312,4 +318,4 @@ def get_many(self, keys): def cache_if_remote(repository): if isinstance(repository, RemoteRepository): return RepositoryCache(repository) - return repository \ No newline at end of file + return repository