mirror of
https://github.com/tahoe-lafs/tahoe-lafs.git
synced 2025-06-05 09:10:53 +00:00
offloaded: close the local filehandle after encoding is done, otherwise windows fails
This commit is contained in:
parent
fd0dc3013c
commit
e9307d3fda
@ -448,12 +448,10 @@ class Encoder(object):
|
|||||||
def finish_hashing(self):
|
def finish_hashing(self):
|
||||||
crypttext_hash = self._crypttext_hasher.digest()
|
crypttext_hash = self._crypttext_hasher.digest()
|
||||||
self.uri_extension_data["crypttext_hash"] = crypttext_hash
|
self.uri_extension_data["crypttext_hash"] = crypttext_hash
|
||||||
u = self._uploadable
|
d = self._uploadable.get_plaintext_hash()
|
||||||
d = u.get_plaintext_hash()
|
|
||||||
def _got(plaintext_hash):
|
def _got(plaintext_hash):
|
||||||
self.uri_extension_data["plaintext_hash"] = plaintext_hash
|
self.uri_extension_data["plaintext_hash"] = plaintext_hash
|
||||||
return u.get_plaintext_hashtree_leaves(0, self.num_segments,
|
return self._uploadable.get_plaintext_hashtree_leaves(0, self.num_segments, self.num_segments)
|
||||||
self.num_segments)
|
|
||||||
d.addCallback(_got)
|
d.addCallback(_got)
|
||||||
def _got_hashtree_leaves(leaves):
|
def _got_hashtree_leaves(leaves):
|
||||||
self.log("Encoder: got plaintext_hashtree_leaves: %s" %
|
self.log("Encoder: got plaintext_hashtree_leaves: %s" %
|
||||||
@ -462,6 +460,8 @@ class Encoder(object):
|
|||||||
self.uri_extension_data["plaintext_root_hash"] = ht[0]
|
self.uri_extension_data["plaintext_root_hash"] = ht[0]
|
||||||
self._plaintext_hashtree_nodes = ht
|
self._plaintext_hashtree_nodes = ht
|
||||||
d.addCallback(_got_hashtree_leaves)
|
d.addCallback(_got_hashtree_leaves)
|
||||||
|
|
||||||
|
d.addCallback(lambda res: self._uploadable.close())
|
||||||
return d
|
return d
|
||||||
|
|
||||||
def send_plaintext_hash_tree_to_all_shareholders(self):
|
def send_plaintext_hash_tree_to_all_shareholders(self):
|
||||||
|
@ -1282,6 +1282,9 @@ class RIEncryptedUploadable(RemoteInterface):
|
|||||||
def get_plaintext_hash():
|
def get_plaintext_hash():
|
||||||
return Hash
|
return Hash
|
||||||
|
|
||||||
|
def close():
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
class RICHKUploadHelper(RemoteInterface):
|
class RICHKUploadHelper(RemoteInterface):
|
||||||
__remote_name__ = "RIUploadHelper.tahoe.allmydata.com"
|
__remote_name__ = "RIUploadHelper.tahoe.allmydata.com"
|
||||||
|
@ -295,7 +295,8 @@ class LocalCiphertextReader(AskUntilSuccessMixin):
|
|||||||
def get_plaintext_hash(self):
|
def get_plaintext_hash(self):
|
||||||
return self.call("get_plaintext_hash")
|
return self.call("get_plaintext_hash")
|
||||||
def close(self):
|
def close(self):
|
||||||
# ??
|
self.f.close()
|
||||||
|
# ??. I'm not sure if it makes sense to forward the close message.
|
||||||
return self.call("close")
|
return self.call("close")
|
||||||
|
|
||||||
|
|
||||||
|
@ -498,6 +498,9 @@ class EncryptAnUploadable:
|
|||||||
h = self._plaintext_hasher.digest()
|
h = self._plaintext_hasher.digest()
|
||||||
return defer.succeed(h)
|
return defer.succeed(h)
|
||||||
|
|
||||||
|
def close(self):
|
||||||
|
return self.original.close()
|
||||||
|
|
||||||
|
|
||||||
class CHKUploader:
|
class CHKUploader:
|
||||||
peer_selector_class = Tahoe2PeerSelector
|
peer_selector_class = Tahoe2PeerSelector
|
||||||
@ -687,6 +690,8 @@ class RemoteEncryptedUploadable(Referenceable):
|
|||||||
return d
|
return d
|
||||||
def remote_get_plaintext_hash(self):
|
def remote_get_plaintext_hash(self):
|
||||||
return self._eu.get_plaintext_hash()
|
return self._eu.get_plaintext_hash()
|
||||||
|
def remote_close(self):
|
||||||
|
return self._eu.close()
|
||||||
|
|
||||||
|
|
||||||
class AssistedUploader:
|
class AssistedUploader:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user