Thu Mar 11 15:47:14 PST 2010 Jeremy Fitzhardinge * Add ETags for immutable directories Like immutable files, the ETag is based on the storage index. However, since a directory is a special interpretation of a file, it is distinguished from the file by prepending "DIR:" onto the start of the ETag, and adding -representation on the end (where -representation is the ?t= argument, json, info, etc). It also checks the return of setETag and avoids generating a representation if the client already has it. New patches: [Add ETags for immutable directories Jeremy Fitzhardinge **20100311234714 Ignore-this: b2b8f1c91af5e83b3c8d1441d658a15d Like immutable files, the ETag is based on the storage index. However, since a directory is a special interpretation of a file, it is distinguished from the file by prepending "DIR:" onto the start of the ETag, and adding -representation on the end (where -representation is the ?t= argument, json, info, etc). It also checks the return of setETag and avoids generating a representation if the client already has it. ] { hunk ./src/allmydata/web/directory.py 148 def render_GET(self, ctx): req = IRequest(ctx) + # This is where all of the directory-related ?t=* code goes. t = get_arg(req, "t", "").strip() hunk ./src/allmydata/web/directory.py 151 + + if not self.node.is_mutable(): + si = self.node.get_storage_index() + if si and req.setETag('DIR:%s-%s' % (base32.b2a(si), t or "")): + return "" + if not t: # render the directory as HTML, using the docFactory and Nevow's # whole templating thing. } Context: [setup: add licensing declaration for setuptools (noticed by the FSF compliance folks) zooko@zooko.com**20100309184415 Ignore-this: 2dfa7d812d65fec7c72ddbf0de609ccb ] [setup: fix error in licensing declaration from Shawn Willden, as noted by the FSF compliance division zooko@zooko.com**20100309163736 Ignore-this: c0623d27e469799d86cabf67921a13f8 ] [CREDITS to Jacob Appelbaum zooko@zooko.com**20100304015616 Ignore-this: 70db493abbc23968fcc8db93f386ea54 ] [desert-island-build-with-proper-versions jacob@appelbaum.net**20100304013858] [docs: a few small edits to try to guide newcomers through the docs zooko@zooko.com**20100303231902 Ignore-this: a6aab44f5bf5ad97ea73e6976bc4042d These edits were suggested by my watching over Jake Appelbaum's shoulder as he completely ignored/skipped/missed install.html and also as he decided that debian.txt wouldn't help him with basic installation. Then I threw in a few docs edits that have been sitting around in my sandbox asking to be committed for months. ] [TAG allmydata-tahoe-1.6.1 david-sarah@jacaranda.org**20100228062314 Ignore-this: eb5f03ada8ea953ee7780e7fe068539 ] Patch bundle hash: e39fc8874aa7dee40857867f2ea2653a62403182