huge bug ew

pull/20/head
quadrismegistus 4 years ago
parent 81f0475613
commit bd743aad0d

@ -49,6 +49,11 @@ class Server:
self.refresh_loop = None self.refresh_loop = None
self.save_state_loop = None self.save_state_loop = None
## echo
self.re_echo()
#def re_echo(self):
# return [asyncio.create_task(self.set_digest(k,v)) for k,v in self.storage.items()]
def __repr__(self): def __repr__(self):
repr = f""" repr = f"""
@ -197,15 +202,14 @@ class Server:
#dkey = digest(key) dkey = digest(key)
return await self.set_digest(key, value) return await self.set_digest(dkey, value)
async def set_digest(self, key, value, store_anywhere=STORE_ANYWHERE): async def set_digest(self, dkey, value, store_anywhere=STORE_ANYWHERE):
""" """
Set the given SHA1 digest key (bytes) to the given value in the Set the given SHA1 digest key (bytes) to the given value in the
network. network.
""" """
dkey=digest(key)
node = Node(dkey) node = Node(dkey)
@ -222,14 +226,14 @@ class Server:
# if this node is close too, then store here as well # if this node is close too, then store here as well
if store_anywhere: if store_anywhere:
self.storage.set(dkey,value,undigested_too=key) self.storage.set(dkey,value)
else: else:
biggest = max([n.distance_to(node) for n in nodes]) biggest = max([n.distance_to(node) for n in nodes])
if self.node.distance_to(node) < biggest: if self.node.distance_to(node) < biggest:
#self.storage[dkey] = value self.storage[dkey] = value
## IMPOSSIBLE STORING UNDIGESTED IN LOCAL STORAGE FOR NOW @DEBUG @HACK # ## IMPOSSIBLE STORING UNDIGESTED IN LOCAL STORAGE FOR NOW @DEBUG @HACK
#self.storage.data_debug[key]=value # #self.storage.data_debug[key]=value
self.storage.set(dkey,value,undigested_too=key) # self.storage.set(dkey,value)
results = [self.protocol.call_store(n, dkey, value) for n in nodes] results = [self.protocol.call_store(n, dkey, value) for n in nodes]

@ -120,7 +120,11 @@ class HalfForgetfulStorage(IStorage):
self.ttl = ttl self.ttl = ttl
self.log = logger.info self.log = logger.info
self.data_root = {} if not os.path.exists(self.fn) else self.load() self.data_root = {} if not os.path.exists(self.fn) else self.load()
for x in ['_digest','_plain']: self.data_root[x]=OrderedDict()
for x in ['_digest','_plain']:
if not x in self.data_root:
self.data_root[x]=OrderedDict()
self.data = self.data_root['_digest'] self.data = self.data_root['_digest']
self.data_plain = self.data_root['_plain'] self.data_plain = self.data_root['_plain']

Loading…
Cancel
Save