diff --git a/src/server.py b/src/server.py --- a/src/server.py +++ b/src/server.py @@ -32,6 +32,7 @@ class Server: def __init__(self,filename,treeFile=""): self._filename=filename self._treeFile=treeFile + self._locked=False if treeFile: self._tree=HashTree.load(treeFile) @@ -56,8 +57,8 @@ class Server: while True: with Connection(self._ss,self._ssl) as (incoming, outcoming): try: - while True: - if not self._serveOne(incoming,outcoming): return + while self._serveOne(incoming,outcoming): + pass except AssertionError: continue @@ -67,6 +68,7 @@ class Server: if jsonData["command"]=="init": assert jsonData["blockSize"]==self.BLOCK_SIZE assert jsonData["blockCount"]==self._tree.leafCount + self._locked=True outcoming.writeMsg({"command": "ack"}) elif jsonData["command"]=="req": @@ -80,6 +82,7 @@ class Server: elif jsonData["command"]=="end": self._finalize() + self._locked=False return False else: