diff --git a/src/server.py b/src/server.py --- a/src/server.py +++ b/src/server.py @@ -51,7 +51,13 @@ class Server: self._ss.listen(1) self._lastIndex=-1 - self._dataFile=None + self._dataFileHandle=None + + @property + def _dataFile(self): + if not self._dataFileHandle: + self._dataFileHandle=open(self._filename, mode="rb+") + return self._dataFileHandle def serve(self): while True: @@ -113,8 +119,6 @@ class Server: def _receiveData(self,jsonData,binData): log.info("received data block #{0}: {1}...{2}".format(jsonData["index"],binData[:5],binData[-5:])) - if not self._dataFile: - self._dataFile=open(self._filename, mode="rb+") i=jsonData["index"] if self._lastIndex+1!=i: self._dataFile.seek(i*self.BLOCK_SIZE) @@ -127,8 +131,8 @@ class Server: def _finalize(self): log.info("closing session...") - if self._dataFile: - self._dataFile.close() + self._dataFile.close() + self._dataFileHandle=None if self._treeFile: log.info("updating hash tree...") for (k,v) in self._newLeaves.items():