Releases: thecoshman/http
Releases · thecoshman/http
v2.1.0
Death couldn't stiffen you Fixed: * Is-file-text evaluation reading infinite amounts of data into RAM to find the first new-line (now up to 2k (LINE_MAX)) (0d30c3110872ba8f75be9948dea77128d24f466f) (2b6a90f07e98533fb5796413049c48c1e0a46031) * Display of filenames with initial/consecutive/final whitespace * Generated-index renaming thereof (d585419cb394e8673b4fa6660796e0fa2645cad3) (Reported-by: @rozbrajaczpoziomow) New: * -D/--convenient-webdav that allows MKCOL/MOVE only, allowing interactively making directories and renaming (987cd1a2b7bd49d37f8f35eabf21c5cb1d040340) (f5faae4710f99fa42b23992e773ab172a74e17d5) (#163) Internal: * Single-trivial-use itertools dependency removed (0c90235b46c6728fe724e24ca4cf884096e7c5f9)
v2.0.1
Ain't a thang for me, pain then glory Fixed: * Installations via cargo install --git (https://github.com/rust-lang/cargo/issues/14001) (152f4d70aba1db08fd047943f598e6d7bedb9a92)
v2.0.0
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
v1.13.2
God save the quing Fixed: * Specifiable-multiple-times flags-with-arguments (--gen-path-auth, &c.) completely breaking argument parsing, now compliant with XCU USG (b3a007b20aa917e4e021cdb7abc02b12a851deb8) * See Other misdocumented as 302 (it's 303) in manual (b112acc46fa5a81cb7c19c2dcba5bee33c43c5b0)
v1.13.1
This release sponsored by Chlew Poprzedni sp. z o.o. New: * Indices and error have <meta name="color-scheme" content="light dark"> (9d95eec8c3ffd28e69babe48df9b426c1e563c1a) * Error has mobile-adaptive scaling like the mobile-listing (40e2a07773a215921396d4cdb713df87e96c78d0)
v1.13.0
http regency arc Fixed: * When redirecting for index, requests for /zupa?whatever being redirected to /zupa?whatever/ ad infinitum instead of /zupa/?whatever (9313cf86ba777e7e85101946d317aba2f817708e) New: * --proxy-redir HEADER-NAME:CIDR, à la --proxy, but used for trusting X-Original-URL:-style headers when picking the URL to redirect to for index files when behind a reverse proxy (9313cf86ba777e7e85101946d317aba2f817708e)
v1.12.6
http interregnum arc Changed: * Arch install instruxions (7c1fa0e7bb5277f201c898fc3f918265c848a0e7) (#148) (@orhun) * bzip2 dependency to 0.4 (54312040a66b7792c00ef5e870a333f173afb346) Fixed: * Code and documentation typos (ae5415da5e9946b6912c95aba8adca1e9a50932d) (#150) (@kianmeng) * Warnings on rustc 1.65/hard errors on 1.68 for unchanged correct code (6e4c8e97cce09d0d18d4936f90aa643659d813fc) (c7d21bae44747c59ad76113203119cf1de21162c) (#151) (@tjni) New: * @orhun, @kianmeng, and @tjni in authors list (6a08e883ea653b372bbac456b81a410157d2566d) Internal: * AppVeyor builds fixed (9d8a86f59b342317e0f81445ae43d018c0cc781a) (313287f4b375f56a5348cd8d5cc0049c1322c8e0) (b8659785a418a3a6d47e6a14f48f39ab18966a05)
v1.12.5
The tv_nsec member shall be of an implementation-defined signed integ…
v1.12.4
Не вбивала, щоб творила New: * Symlink depth limited to 40 (46e7b802a97d687ee5bd4ee3161dcf7177d822d2)
v1.12.3
He even came with his chains! And his crown! King of the ring! I can'…