from foolscap.api import eventually
from allmydata.interfaces import IMutableFileNode, ICheckable, ICheckResults, \
NotEnoughSharesError, MDMF_VERSION, SDMF_VERSION, IMutableUploadable, \
- IMutableFileVersion, IWritable
+ IMutableFileVersion, IWriteable
from allmydata.util import hashutil, log, consumer, deferredutil, mathutil
from allmydata.util.assertutil import precondition
from allmydata.uri import WriteableSSKFileURI, ReadonlySSKFileURI, \
- WritableMDMFFileURI, ReadonlyMDMFFileURI
+ WriteableMDMFFileURI, ReadonlyMDMFFileURI
from allmydata.monitor import Monitor
from pycryptopp.cipher.aes import AES
# verification key, nor things like 'k' or 'N'. If and when someone
# wants to get our contents, we'll pull from shares and fill those
# in.
- if isinstance(filecap, (WritableMDMFFileURI, ReadonlyMDMFFileURI)):
+ if isinstance(filecap, (WriteableMDMFFileURI, ReadonlyMDMFFileURI)):
self._protocol_version = MDMF_VERSION
elif isinstance(filecap, (ReadonlySSKFileURI, WriteableSSKFileURI)):
self._protocol_version = SDMF_VERSION
self._encprivkey = self._encrypt_privkey(self._writekey, privkey_s)
self._fingerprint = hashutil.ssk_pubkey_fingerprint_hash(pubkey_s)
if version == MDMF_VERSION:
- self._uri = WritableMDMFFileURI(self._writekey, self._fingerprint)
+ self._uri = WriteableMDMFFileURI(self._writekey, self._fingerprint)
self._protocol_version = version
elif version == SDMF_VERSION:
self._uri = WriteableSSKFileURI(self._writekey, self._fingerprint)
I return a Deferred that fires with a MutableFileVersion
representing the best readable version of the file that I
represent. I am like get_best_readable_version, except that I
- will try to make a writable version if I can.
+ will try to make a writeable version if I can.
"""
return self.get_mutable_version(servermap=servermap)
overwrite or modify the contents of the mutable file that I
reference.
"""
- implements(IMutableFileVersion, IWritable)
+ implements(IMutableFileVersion, IWriteable)
def __init__(self,
node,
end_segment = start_segment
if offset + data.get_size() < self.get_size():
end_data = offset + data.get_size()
+ # The last byte we touch is the end_data'th byte, which is actually
+ # byte end_data - 1 because bytes are zero-indexed.
+ end_data -= 1
end_segment = end_data // segsize
self._start_segment = start_segment