alongside the 'del' button is now presented a 'rename' button, which takes
the user to a new page, the 't=rename-form' page, which asks ther user for
the new name of the child and ultimately submits a POST request to the dir
for 't=rename' to perform the actual rename i.e. an attach followed by a
delete of children.
fix bug in arg handling around 'delete' button in directory view
the code composing the form providing the 'delete' button in a dir
view was broken in that it tried to put some of the arguments into
the url query, rather than as the form's post args. worse, nevow
was kind enough to escape the querystring making it invalid.
this is likely to induce browsers to do more useful things with the result
than they would when given neither content-type nor filename. (i.e. they
can guess that a .jpg file is an image, even with a bogus content type)
Brian Warner [Thu, 12 Jul 2007 22:33:30 +0000 (15:33 -0700)]
allow the introducer to set default encoding parameters. Closes #84.
By writing something like "25 75 100" into a file named 'encoding_parameters'
in the central Introducer's base directory, all clients which use that
introducer will be advised to use 25-out-of-100 encoding for files (i.e.
100 shares will be produced, 25 are required to reconstruct, and the upload
process will be happy if it can find homes for at least 75 shares). The
default values are "3 7 10". For small meshes, the defaults are probably
good, but for larger ones it may be appropriate to increase the number of
shares.
Brian Warner [Wed, 11 Jul 2007 21:31:04 +0000 (14:31 -0700)]
cease producing .debs for dapper, since they'd depend upon a library (simplejson) that isn't packaged for dapper. Feisty++ are fine. Dapper users are encouraged to build from source.
Brian Warner [Mon, 9 Jul 2007 06:27:46 +0000 (23:27 -0700)]
storage: wrap buckets in a local proxy
This will make it easier to change RIBucketWriter in the future to reduce the wire
protocol to just open/write(offset,data)/close, and do all the structuring on the
client end. The ultimate goal is to store each bucket in a single file, to reduce
the considerable filesystem-quantization/inode overhead on the storage servers.
Brian Warner [Sun, 8 Jul 2007 07:17:11 +0000 (00:17 -0700)]
web: use real JSON instead of the fake stubs
Also include the encoder portion of Bob Ippolito's simplejson-1.7.1 as
allmydata.util.json_encoder . simplejson is distributed under a more liberal
license than Tahoe (looks to be modified BSD), so redistributing it should be ok.
Brian Warner [Wed, 4 Jul 2007 00:27:07 +0000 (17:27 -0700)]
activate storage size limits in the client. Closes #34.
To use this, write a number like 10MB or 5Gb or 5000000000 to a file
named 'sizelimit' in the client's base directory. The node will not grant
leases for shares that would take it much beyond this many bytes of
storage. Note that metadata is not included in the allocation count until
a restart, so the actual space consumed may grow beyond the limit if
the node is not restarted very frequently and the amount of metadata is
significant.
Brian Warner [Tue, 3 Jul 2007 20:47:37 +0000 (13:47 -0700)]
webish: improve reporting of web download errors that occur early enough
If the error occurs before any data has been sent, we can give a sensible
error message (code 500, stack trace, etc). This will cover most of the error
cases. The ones that aren't covered are when we run out of good peers after
successfully decoding the first segment, either because they go away or
because their shares are corrupt.
Brian Warner [Tue, 3 Jul 2007 20:18:14 +0000 (13:18 -0700)]
webish.py: handle errors during download better. Addresses #65.
Previously, exceptions during a web download caused a hang rather than some
kind of exception or error message. This patch improves the situation by
terminating the HTTP download rather than letting it hang forever. The
behavior still isn't ideal, however, because the error can occur too late to
abort the HTTP request cleanly (i.e. with an error code). In fact, the
Content-Type header and response code have already been set by the time any
download errors have been detected, so the browser is committed to displaying
an image or whatever (thus any error message we put into the stream is
unlikely to be displayed in a meaningful way).