Temporary thug exchange the same story
BREAKING:
* id=s of files (#-anchors) in directory listings changed to be
the filename but tr " _, rather than filename but tr . _ (and "s unescaped!)
* id=parent_dir changed to id=..
(54634cfbd2d14d348492575ce386684ad96b107d)
(523f91ceb8191a52584212c7e3ba7732396e867b)
* No longer updateable from crates.io; update with
cargo install -f --git https://github.com/thecoshman/http
(https://github.com/thecoshman/http/pull/160#issuecomment-2143877822)
(e451dd30932f1d480cda52a2b9982700b1341807)
(269dc9bfaa762f9aec49824c2da0d0297e102d98)
Fixed:
* Blockdev size detexion on musl/*BSD/&c.
(9e6fcd11691d01fa2e304b7a7d0fe23b859306a1)
(be7de1362d2e887b0b3dde6f59446a09c5251d37)
(bc41cb4f2aab356d623e3c9f3298c2cb750bec0f)
(875baea88d7b2ae827e9b79e7a73319869a4d474)
(448f96f8d3548054fd414171dfe279e9d52a0c70)
(#155) (#157) (#158)
* Truncated-at-100-entries directory uploads on Chromium
(37bbea4a55a539d5dab05a8494cc63200b4decce)
* MacOS marking all files as WebDAV executable
(7e368b8ad86c95f8855475ad28128450f5ccde2f)
* Potentially hitting NAME_MAX when deciding on temporary directory
(d151f6e628decca9e1d713d3d39460150a7e4f05)
(62027be5ad5abc186027676969a9d700f09a2ae0)
* Potentially using path of removed file for cached-as-incompressible files
(a6514ef392c2e2dd1493a1d5e9a9ea582a70c719)
* Temporary file for uploads not being removed
(2d973a90dc5f41245e9b1d8608440163e06ec41d)
(cdee6b3758edbbada5a3a62d7d70fc10d78bcdde)
* All CPUs going 100% for a few seconds on Ctrl-C on Win32 sometimes
(c2972714b38b68874a657c2655b0f8319a35b874)
* /'s index with -wd first directory having full-width instead of square icons
(9586e2f1315eee28d52ce2a2ada1514f738377b5)
* Max (11) brotli encoding strength reduced to 9 (11 takes 50s to encode 11M!)
(ec93678654036d5bd798806f39eac9cc41e4dd20)
* PROPFIND of <Win32LastAccessTime> returning <Win32FileAttributes>
with <Win32LastAccessTime>'s data
(23cd2b65f8bf0d57f9dfea7dae7e1e9bed0f16d0)
* -m only taking UTF-8 data even though it's for paths
(5c36161cb6b93c02fc14500b51660ba7a0396b63)
i Closed range requests reading the whole response body into a buffer
(c72479e8e63fbc5f61bb4c59e6b0ae14206b2e34)
(3df48fe82a9da19324659559340992d43935b036)
* PROPFIND Depth: infinity panicking when encountering non-directories
(6dc1c8e8e20ae073dc867f108432701261490330)
* Don't require the current extension to be UTF-8 when encoding a file
(db03ce32dd9d56106fd9129bdd7817760a5c8279)
* Localising stamps in 1000-file directory on Android 14 Browser.apk (Chrome):
8+s -> ~200ms
(solution by @the-eater)
(https://cijber.social/@eater/112506297971225464)
(d1898e38a7d9af99738ca14ce3cd73c67baa57bb)
* Double-click-to-select text in web UI rename box
(f945289f5d8d29ad57fa08a9ad66403839287817)
* " unescaped in listing href=s, making them unnavigable
(044a31cd0ef745e7b09f316e05635658c4f24684)
* If encoded file was removed from temp dir, re-encode it instead of panicking
(0478dd7d6a96fd5a2ab75c537cbcae8222ef8ef3)
* Clicking on the Manage column of Create directory submitting an empty MKCOL
(26e36cc4827c6169e5f8ffcf533f7353f96b1999)
h hyper RUSTSEC-2021-0078: potential desync with Content-Length: +123
(d9fc08a1a59019873e35fbea6747488c427b05f9)
(#140)
h hyper RUSTSEC-2021-0079: potential desync with Transfer-Encoding: chunked
(a3ae6fc583df77049513cad89b8775094bae58b7)
(#140)
h traitobject RUSTSEC-2020-0027: reliance on fat pointer representation
(4b22b6a236843b828182204fbb541aa251b77143)
(#140)
* background-color in directory listing adapted to potential dark theme
(332d737c241c1033bbe392cb567d66833a301359)
* Files called file_upload and new_directory potentially interfering
with directory listing controls
(548cfe1c50b1b7bf8dc6c3d692757f9146283add)
(ea94cc80a35173439ee78da6feff5ef9a0ad2cf2)
* Add id=.. in mobile listing
(523f91ceb8191a52584212c7e3ba7732396e867b)
Changed:
* Double-iteration over directory uploads removed
(6662d10b4734fe3d5861bdaedebe630d6f145248)
* Don't-try-to-encode extension list updated
(d6ac96f0780f9515d96cd3fd4cc40de16a711f4e)
(466ca6664a565ae49e08310fdbf34ca33e69e82f)
* ETag generator is also used to cache file hashes (=> file not read twice)
(2e414a1399562f673433b5005e4894f1bec451ff)
i Always fully 1M-buffer file I/O (used to be 8k)
(e717b3136884b7222624501c214ee6b15641046d)
(0584eda731ca98a6e99c5979d3d4600a18541652)
(13e1b5ab272fb2517bf073e0c4a6180e25094b2b)
(7c6d76869e197249d2a8711be87cffa15632fe61)
* Also remove the top-level temporary directory (but ignore error)
(93ef182f7765910450201d7f9055c82cd5141706)
h Start threads on demand, up to the limit, then decay on inactivity
(wait 5*threadnum seconds before exit), but keep 1,
rather than always having nproc*8
(e2426c17d04eab7af00fd8dc06392cd29fcbc995)
(bbc1955b6323f668f5c7c40af9129ade1667d5fc)
(d7ae221f7f020c5510e5b22a17dfcd1fc587b854)
(0c63fc6916ad34211ddff5142c856eb8c5c8c06c)
(0af886b5024dfaa57963dd3a7e696efcaeb445db)
* Re-compressed favicon.png (1460B) now used as the favicon inlined in indices
instead of a 15k(!+base64) ICO
(5fbd4f1fd34e64055fdc4a301c808d082a974452)
(c81df165631642372d797d55fe13a41189bf91ce)
h Never-used bzip2 encoding removed (+ asking for zstd encoding is alloc-free)
(51064cc3d68b778799db7edbfbdd9d4ddac96be2)
(0876b9bfabb2d0a9958dca68166dba57a33962d2)
* PUT symlink isolation is the same as with GET's (returns 404, doesn't read)
(e25906f9f3de4f56539432e5cc438b5488d84c50)
* Useless HTML attributes in generated responses removed
(22d5924dfa3580d442ac3c8c55b7519e610a8de7)
* Rename UI suggested filename no longer includes trailing / for directories
(f945289f5d8d29ad57fa08a9ad66403839287817)
* Replaced <meta name="application-name" content="http">
& <meta name="author" content="http developers">
with <meta name="generator" content="http ${VERSION}">
(56b2e9316bbf5b9b315a25276970438d5793ae61)
* Mobile directory listings simplified and reduced by 17% in size
(73f3a9502678214f9ed61672b3444e0c7a5ce467)
(5a7304d10d0357f174dc58c4ddcd2dc856c7fb3a)
(46a21e2645804f99d7c0d053a7871a0df2ba22e4)
(487af0168e1256671f13a75fef4488776e504464)
(e76e92f85cf6f7b417a696f89d340805000e56be)
(99538ed3722cf70214761af496068dd91523dd61)
(325cb5176cd9241074f8c091873715a5546e207c)
(6eceb96e8f2696db1250900b40e71ed11a5b68f5)
(4a41b3d1e5ce9d3814627e840e52dd312f7806cf)
* Desktop directory listings only allow tabbing to /one/ link per row
(ce6c5f97f5b845346c71703dd6396fbf3a5e5ed3)
* Desktop directory listings have "Create directory" colspan=3
(9a79f6d8b9c75c620dbc6bcac8d7b34618cf04fa)
(93d2fe0ce01b8f45501a21d015c10fedd1f11d7e)
New:
* Return ETag and honour If-None-Match/If-Modified-Since for GETs
(75c6f0770286aa4a5b7b7f22425bab052a354d4d)
* Live read-out of outstanding requests when uploading from generated index
(4cac7c593997119a7edb672e8110acc9fc91ab8f)
* Invent X-Last-Modified: millis-since-epoch header to set mtime on PUT files
* Accept X-OC-MTime: seconds-since-epoch header (Android Totalcmd-WebDAV)
(a59b521296c778f3073176dd0330d1251789e6e9)
(e47669d96db3019a50b6e6b2a5f47437e99505ac)
(d3f4e8cf58600106d0fe6919d3a338303cfa0de0)
(bbed9e8440155a5a864b99903be80046094a71c2)
* Actually handle PROPPATCH at all, and allow changing:
+ Win32{Creation,Last{Access,Modified}}Time (Windows client)
+ executable (davfs2)
(248d43941b5a0184cfcaca53d79fcc447337fc15)
(6df27cc188e5831b2e89b75e053fa8c7cafd660b)
(2a4889fe0a3ac6bd2fb4a1068a1d8b5df8a87997)
(98d12fceab86de72ff7bca62c7f8ecdda6d6e461)
(aaa9ded8cb1651dea4a7cac981240e70c6b8424f)
i Limits on size of encoded files with --encoded-{filesystem,generated} 20M
i Limits on max age of encoded files with --encoded-prune 1d
(64f121fb5aff91128d27c5074c4a0a979f882450)
(7419e7a8174e53ce41b50108e18728572f498a0f)
(e1bb29bfb10eb4763b0380a2ef4b9e70a303ae16)
(f472c1f43d6c0df2927187d115afc1223b0c749f)
(a419540db3f6926fa651660106e874fd7fbd0fb3)
* -Q/--quiet-time to remove [%F %T] prefix in log
(58898a868090a3aa3e33a6721d463a76c1273958)
* If PUTted file doesn't already exist, copy it directly from the request body
(e95600f445017c9c8752c2f291649ca6b587dd0e)
(7558ad39c47cde6d8d54cfb1f6ecfce5a7a33849)
* Accept (ignore) renaming to current name in web UI
(f945289f5d8d29ad57fa08a9ad66403839287817)
(afe106a1d7277cc84d712c2946ed7416065ec3f6)
* Return 503 Service Unavailable with an intelligible error
instead of panicking on PUT errors
* Display these in the web UI
(41d6ff876d8edfb19f922afb307a7dff28f65f8a)
* "confirm" (green tick) icon
(45b68f2763a7aaa8deef39916f7013c3a16e846b)
* Linked-to files in directory listing (like #asdf) highlighted
(7338d066be7ec24903ea50aa0bc557696e1e0d11)
* Mention of Debian repository in README
(269dc9bfaa762f9aec49824c2da0d0297e102d98)
Internal:
* Needless Borrow::borrow() call removed
(1cf4b72e92bb312080ed00f17e80f761cf3c1f89)
(report: [email protected])
* Literalise mime types instead of parsing
(c594ca321f9048b6913916c38465249c8fa326dd)
(a81e456408f8f93039cb9b2bf94c0c9419d9a770)
(c8c5ffbecf67de9222595aa8d24850d3c90ee1bb)
(efdedcabf0e4e46d49dafd303d7bf96e5cd6d7c4)
(7e4f7f6b2d623dd0cff84561f376ee7823eed839)
* Don't check if temporary directory exists before trying to delete
(a6292ca5a372b0f5a965c79adb33a19c2690d523)
* Useless lazy_static and regex dependencies killed
(1927f70751f840f2ee50521592e6d50ab01a1f6f)
(76e9458927a2df70aa1b00e53eaf380038521ba0)
(9e3e1cffff8f7ba38b1a94d61332d7cf4e4790bf)
(07b1830f37e04189cfd3212b1bfef8d86b06a6c9)
(a65b2721fddd246e78a34b5d9788cdc5d73ee811)
(45b4a98bb35206f4ec186ae888d9760a145e0162)
* Run-time parsing of do-not-encode list replaced with a codegenned function
(also kills unicase)
(8b1d70ba820f34eca5d87b0e1ddadbecef9eca24)
(a4640612bad3571a122e1511ccc05296cabee76e)
* Assets and indices are pre-parsed in build.rs before embedding
(also kills base64 and lazysort) (+ initial whitespace trimmed from HTMLs)
(b98242922188b3e53f3a8b9f39bffa6f9fb7ec24)
(3ebfe11165d039097dd66ded17aa383327a509bd)
(4f8ab9613befedae6572c9f8cd0eaef096774ce7)
(a865809e5f19b3300289d177da1ea670abb4d140)
(de4f880340241521d672e9f9058fcbb56bb44ec2)
(5d1677dd8aad4dac7133fc0da992a43d777ff2f5)
(91f11f33b57a3a8d8bf0eb2a7fcd4ed2d6a42903)
(d944b46290d02e79729f09522bd4ae69d69d0908)
(ca1e2c8fc96ceeecd21539b179b20a26b21f3bfc)
(4d687dd3b97ce57e7b35870d75488414377c6f49)
(930abd97b9e7c5e1712344f142f74f340ab84c4f)
h Cache allowed methods instead of reallocating every time
(9e75edb3d6f93d993922d7b32441953da612df72)
(381597ab07b72638f546ca2499bc0212c8787c5c)
(b2439b4bbd89411796679eb9deab367fb8d1b2a5)
(d0318e7082f0456e48d703b85827bc06d29bf29c)
* Vendored: iron 0.6.1 (with typemap, plugin, and log deps deleted)
(e82274617b524c2576ee59188e628ad18433bf06)
(4cfb89560ddcde018218e6c4702e1b4381bcdc19)
(677c0079844ba07c2d0c09005eceab603b533afc)
i Removed automatic annoying Content-Type muddling in iron
(6b7cbd8367ef63b7bb081fd4d2ba577d2e8034a6)
(22d887299a73d61346dc6d99b5b004744ff54602)
* Static Ctrl-C handler Condvar
(3037879c21600f8fa0e089f1f35810d73978183a)
(501825be034ab982d19a13d0c60548c8fb798a3c)
* Don't allocate URL path if not necessary, and escape it at most once
(054d96c99ec02ec41c09fa9bb69a56b8dfb0ec40)
(c5c7b25198738bd9e5badf57f1ce33bbf95faf7a)
(cec73d91fd0b75d234d2a72777848ebdda0dd94d)
* Vendored: hyper 0.10.16
(with client component, some server body types,
and log and env_logger dependencies deleted)
(b7266380c12b18db84464f530b94897f0140c540)
(a9bca0a183d8852d07dc903a0715ea51b4a19141)
(5c99cea1ecad90d608ae297dc7909d33381332d9)
(ee3343e121218e71b738bc2750fe118cabd063a7)
(666a3ac4c8af1a6a48686fc64c000aa8c828c2b5)
(d10bfe10d5ccc6b6e418f6beef47086ed6cdd685)
(4dc92ee9f291a486fb3a0dd60c6b5544a4cda7ea)
(a35e05098679956965a34e2cd9c22164b013eeb9)
(0f7301e99a1520693924b8c0bc02e918d9cace31)
h Hash encoded-data caches by Encoding(Type) directly instead of String repr;
this also makes us stop distinguishing x-gzip from gzip
(2659e7bc91e17fd9942ac6389eb75107c39eede5)
(2d5023cc19108b8f5c3c9a99ea23681b154d0812)
h Don't require reallocating Server header contents
(248ea51ac0544a4dcab198823f2ffc52283341bb)
h Don't require allocating RangeUnits in Accept-Ranges header
(52d27962c0730ebbc741c2849e74239644826afd)
h Use SmallVec for most common case of 1 Content-Encoding
(49a56c4d748357d680d862bfd3a5f605be59dd0b)
h Don't reallocate custom --header names
(2aec32fc4a2dfafe616534934243f569e2b8c291)
(c5e3ee42cfece5dd416c352bc5849e6e37fe2361)
h Don't allocate for COPY/MKCOL/MOVE/PROPFIND/PROPPATCH/LOCK WebDAV requests
(689fe43c23f89de405147702fcbae611472e96df)
* Don't clone headers for TRACE
(c78d921efd2799c65ab2246ac7fd508ae2b50839)
h language-tags dependency removed
(25ba25087fb5773e1f4a28e1eb12261fabd3e644)
* .. + 1 => ..=
(e3b93c297c633443ff84f27e3c67dd939150ad79)
* os-str-generic dependency removed
(6cc5a25d3d19d6b9beb4ddb746ba2377f98144b8)
(754e8350586296529def90baac6b2f528cee2b1e)
* Recompress rename icon (206 -> 192 bytes)
(e677f0f6612ab3d176c0c3c6f70d6c67ea40ef8c)
* Vendored: rfsapi 0.2.0
(abc575abfc43c4e4fda2044c40e97fdeef7fde73)
(41ae0f98728c567cda3f0b5d7105a1adc23210ba)
ir Header parsing takes Cow<'static, [u8]> instead of Vec<u8>
(b266e110f2b98f645dc1149aac9b14f6e50c11be)
h Use VecMap as backing store for Header's PtrMap instead of HashMap
(dcd24edaf4ff80a761c1acfacd126873d329f41a)
* Free unused bits of Options
(c7c30c602cc7f877ab22414518bf75f42ccb5a6e)
* Don't allocate file length or 404 description as string
(f7c818986ceeec57d39a582b28c69b4a0d663d86)
(5f8517a59f46d651537667f86dfa591564ce40bc)
* Assess file size once, from opened file, for opened ranges
(f2477fbc7dc0ecef13daf4d20355fadaf12cf6a5)
* Don't reallocate Range header value
(39b22464b62aba7375a19a58eabc7951eeac238a)
* Use the same buffer for recursive PROPFINDs
(1643340a3dafebd0a8d0f89097c08552c395f0a8)
* Produce address indents with {:w$} instead of Spaces(w) writing ' ' w times
(dff8874afdfdc890adbec5e05239fd421aec71cb)
(d48d06c377efca01b7040e206911e28391e5066d)
* Don't allocate in AddressWriter
(a23ede041c2fa4035ec39a0f6ba017060bee8dc4)
* Don't allocate human-readable size
(06263914eac42873dea3e31c3021fc7250f0d84a)
* date.js replaced with standard JS Date manipulation
(f710d873016fe06f64a798151c9e444d9b0a4851)
(6cdc752f65afd04a7b9dc85b13d85bc438ce2c9b)
* All document onload => DOMContentLoaded
(6b69a1c59b2cf0186c3810d602a719c67e686479)
* In a similar vein, move the click event listeners to onclick (perf)
(f945289f5d8d29ad57fa08a9ad66403839287817)
(f534ea446a1fe8dbf18d9678c562f3135359d5b9)
* Don't reallocate each filename twice to replace & and < in index
(d52b5d0fb04b8fb613158ae0d15ddf65d55e52e6)
* Re-save embedded-in-EXE favicon.ico (15k -> 2k)
(cf902c175ba61fb1f189f9e8fc0ac51baf9e3734)
* Flatten Error to just be a String, instead of three with auto-ingification
* Detect EADDRINUSE explicitly when trying new ports,
rather than guessing from the I/O error stringification
(fa101ba43256ef39e18bcd0b3e9968e31e0e6485)
* Ignore RUSTSEC-2021-0145: we don't use a custom allocator
* Ignore cargo-audit's "unmaintained" warnings
* Ignore RUSTSEC-2020-0071: we do not setenv ever
* Ignore RUSTSEC-2022-0022: our version of hyper never uses uninitialized()
(25d01fd0661b340af245db79ec87f752c3b8a9e5)
(d7a3d2cbd1b1e0283e531a0cbb677d76d46f65f4)
(60f0726cef9e1c2f4ea4b9f8f91f0794b27736c7)
(c5b49661f0499ddae92b2c820b421bfbe88e41b4)
(#140)
* Desktop directory listing simplified (inlined style, useless <div>)
(daf471fdd37023467ba62270f1a96d2ce5e80c90)
i: affects vendored iron; h: affects vendored hyper; r: affects vendored rfsapi