Browse Source

PR #229 - Merge branch 'fix_127' of https://github.com/ThomasWaldmann/attic into merge

Thomas Waldmann 10 năm trước cách đây
mục cha
commit
8aebdd6c5b
1 tập tin đã thay đổi với 9 bổ sung3 xóa
  1. 9 3
      attic/remote.py

+ 9 - 3
attic/remote.py

@@ -59,7 +59,10 @@ class RepositoryServer(object):
                 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:
                         if not method in self.rpc_methods:
@@ -191,7 +194,10 @@ class RemoteRepository(object):
                 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:
@@ -331,4 +337,4 @@ class RepositoryCache:
 def cache_if_remote(repository):
     if isinstance(repository, RemoteRepository):
         return RepositoryCache(repository)
-    return repository
+    return repository