Changeset - 6355fe7d655f
[Not reviewed]
default
0 1 0
Laman - 8 years ago 2017-06-20 21:43:58

fix server hash tree update for real
1 file changed with 1 insertions and 1 deletions:
0 comments (0 inline, 0 general)
src/server.py
Show inline comments
 
@@ -86,28 +86,28 @@ class Server:
 

	
 
		return (jsonResponse,binResponse)
 

	
 
	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._lastWrite+1!=i:
 
			self._dataFile.seek(i * self.BLOCK_SIZE)
 
		self._dataFile.write(binData)
 
		self._lastWrite=i
 
		if self._treeFile:
 
			self._newLeaves[i + self._tree.leafStart]= hashlib.sha256(binData).digest()[HashTree.HASH_LEN:]
 

	
 
		return ({"command": "ack", "index": i},)
 

	
 
	def _finalize(self):
 
		log.info("closing session...")
 
		if self._dataFile:
 
			self._dataFile.close()
 
		if self._treeFile:
 
			log.info("updating hash tree...")
 
			for (k,v) in self._newLeaves.values():
 
			for (k,v) in self._newLeaves.items():
 
				self._tree.updateLeaf(k, v)
 
			self._tree.save(self._treeFile)
 
		log.info("done")
0 comments (0 inline, 0 general)