Tags: thecoshman/http
Tags
Chewing up a tar-ball again
Fixed:
* If-Modified-Since: truncating away the sub-second part
(2781288)
(d24e13f)
(#170)
* -d/--webdav documentation not saying what it does well
(060943d)
New:
h -A/--archives that allows downloading whole directory trees directly
+ Use with curl -H 'Accept: application/tar' (or /x-tar)
-H 'Accept: application/zip' (or /x-zip-compressed)
+ or by clicking the tar/zip buttons on generated indices
* POST text/plain vendor=http as an extension point
+ archive=yes-i-really-want-one + (type=tar OR type=zip)
+ if these don't all match then this decays to a 501 like any other POST
(124976d)
(5874473)
(4406236)
(9d0c68f)
(972e1d8)
(c946ca7)
(0aeebaa)
(44b33ec)
Internal:
* Deduplicate MIME types in build.rs
(5748780)
ihr time dependency replaced with chrono
(f093c18)
(c38561c)
(ddaa61f)
(2781288)
(d24e13f)
(#170)
h Transfer-Encoding: chunked implementation restored
(124976d)
* ctrlc dependency 3.1 -> 3.5
(16d5596)
You don't cuddle me enough to do your litigating
Fixed:
* Temporary directories not being cleaned up on SIGTERM/SIGHUP
like they are on SIGINT
(af3dbb2)
(#176)
* Builds on current nightly
(3a35de1)
* Slew of warn(mismatched_lifetime_syntaxes) on current nightly
(7da7633)
* --encoded-prune not accepting s suffix
(592c611)
* ^C (&c.) being ignored if it happened /during/ pruning
(028f4b8)
Changed:
h base64 version from 0.10 to 0.22
+ embedded icons in generated responses no longer have base64 = padding
(this saves 8 bytes per and seems to not affect functionality at all)
* brotli version from 6.0 to 8.0
(f5da738)
(7be0e75)
Internal:
* Some non-awful clippy lints applied
(26c77f0)
* mem::replace() -> mem::take() where possible
(d3cf0f2)
* Only depend on libc on non-windows
(2427e14)
* Startup logging flattened out a bit
(96b9bd1)
Starting to remember when my essence wasn't smothered
Fixed:
* 401 Unauthorised responses being truncated
(81158ed)
* Arch package link in README
(577cb6b)
(@bjorn) (#166)
* Innocuous JS error in generated index with -w but not -d
(a1bf496)
* WebDAV PROPFIND filenames not being %-escaped
(81c89db)
New:
* Cargo.toml profile.release.lto = true
(ac286b7)
(#165)
* @bjorn & @ideless in authors list
(662b1dc)
(255fdcc)
* Upload progress for each file in generated indices with -w
(68ff7f7)
(38f4c9f)
(a1bf496)
(@ideless) (#168)
Internal:
* Vendored hyper warnings on new rustc fixed
(8e20c4d)
(ef17e5d)
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))
(0d30c31)
(2b6a90f)
* Display of filenames with initial/consecutive/final whitespace
* Generated-index renaming thereof
(d585419)
(Reported-by: @rozbrajaczpoziomow)
New:
* -D/--convenient-webdav that allows MKCOL/MOVE only,
allowing interactively making directories and renaming
(987cd1a)
(f5faae4)
(#163)
Internal:
* Single-trivial-use itertools dependency removed
(0c90235)
Feels like he plugged into a socket when you touch 'em
Fixed:
* Builds on i386 Linux
(99cb61a)
New:
* Documentation for installing (mainly) on Windows
to work around cargo bugs
(rust-lang/cargo#14001)
(5b589cf)
(40c7434)
Internal:
* Drop rand dependency
(c68a6de)
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=..
(54634cf)
(523f91c)
* No longer updateable from crates.io; update with
cargo install -f --git https://github.com/thecoshman/http
(#160 (comment))
(e451dd3)
(269dc9b)
Fixed:
* Blockdev size detexion on musl/*BSD/&c.
(9e6fcd1)
(be7de13)
(bc41cb4)
(875baea)
(448f96f)
(#155) (#157) (#158)
* Truncated-at-100-entries directory uploads on Chromium
(37bbea4)
* MacOS marking all files as WebDAV executable
(7e368b8)
* Potentially hitting NAME_MAX when deciding on temporary directory
(d151f6e)
(62027be)
* Potentially using path of removed file for cached-as-incompressible files
(a6514ef)
* Temporary file for uploads not being removed
(2d973a9)
(cdee6b3)
* All CPUs going 100% for a few seconds on Ctrl-C on Win32 sometimes
(c297271)
* /'s index with -wd first directory having full-width instead of square icons
(9586e2f)
* Max (11) brotli encoding strength reduced to 9 (11 takes 50s to encode 11M!)
(ec93678)
* PROPFIND of <Win32LastAccessTime> returning <Win32FileAttributes>
with <Win32LastAccessTime>'s data
(23cd2b6)
* -m only taking UTF-8 data even though it's for paths
(5c36161)
i Closed range requests reading the whole response body into a buffer
(c72479e)
(3df48fe)
* PROPFIND Depth: infinity panicking when encountering non-directories
(6dc1c8e)
* Don't require the current extension to be UTF-8 when encoding a file
(db03ce3)
* Localising stamps in 1000-file directory on Android 14 Browser.apk (Chrome):
8+s -> ~200ms
(solution by @the-eater)
(https://cijber.social/@eater/112506297971225464)
(d1898e3)
* Double-click-to-select text in web UI rename box
(f945289)
* " unescaped in listing href=s, making them unnavigable
(044a31c)
* If encoded file was removed from temp dir, re-encode it instead of panicking
(0478dd7)
* Clicking on the Manage column of Create directory submitting an empty MKCOL
(26e36cc)
h hyper RUSTSEC-2021-0078: potential desync with Content-Length: +123
(d9fc08a)
(#140)
h hyper RUSTSEC-2021-0079: potential desync with Transfer-Encoding: chunked
(a3ae6fc)
(#140)
h traitobject RUSTSEC-2020-0027: reliance on fat pointer representation
(4b22b6a)
(#140)
* background-color in directory listing adapted to potential dark theme
(332d737)
* Files called file_upload and new_directory potentially interfering
with directory listing controls
(548cfe1)
(ea94cc8)
* Add id=.. in mobile listing
(523f91c)
Changed:
* Double-iteration over directory uploads removed
(6662d10)
* Don't-try-to-encode extension list updated
(d6ac96f)
(466ca66)
* ETag generator is also used to cache file hashes (=> file not read twice)
(2e414a1)
i Always fully 1M-buffer file I/O (used to be 8k)
(e717b31)
(0584eda)
(13e1b5a)
(7c6d768)
* Also remove the top-level temporary directory (but ignore error)
(93ef182)
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
(e2426c1)
(bbc1955)
(d7ae221)
(0c63fc6)
(0af886b)
* Re-compressed favicon.png (1460B) now used as the favicon inlined in indices
instead of a 15k(!+base64) ICO
(5fbd4f1)
(c81df16)
h Never-used bzip2 encoding removed (+ asking for zstd encoding is alloc-free)
(51064cc)
(0876b9b)
* PUT symlink isolation is the same as with GET's (returns 404, doesn't read)
(e25906f)
* Useless HTML attributes in generated responses removed
(22d5924)
* Rename UI suggested filename no longer includes trailing / for directories
(f945289)
* Replaced <meta name="application-name" content="http">
& <meta name="author" content="http developers">
with <meta name="generator" content="http ${VERSION}">
(56b2e93)
* Mobile directory listings simplified and reduced by 17% in size
(73f3a95)
(5a7304d)
(46a21e2)
(487af01)
(e76e92f)
(99538ed)
(325cb51)
(6eceb96)
(4a41b3d)
* Desktop directory listings only allow tabbing to /one/ link per row
(ce6c5f9)
* Desktop directory listings have "Create directory" colspan=3
(9a79f6d)
(93d2fe0)
New:
* Return ETag and honour If-None-Match/If-Modified-Since for GETs
(75c6f07)
* Live read-out of outstanding requests when uploading from generated index
(4cac7c5)
* 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)
(a59b521)
(e47669d)
(d3f4e8c)
(bbed9e8)
* Actually handle PROPPATCH at all, and allow changing:
+ Win32{Creation,Last{Access,Modified}}Time (Windows client)
+ executable (davfs2)
(248d439)
(6df27cc)
(2a4889f)
(98d12fc)
(aaa9ded)
i Limits on size of encoded files with --encoded-{filesystem,generated} 20M
i Limits on max age of encoded files with --encoded-prune 1d
(64f121f)
(7419e7a)
(e1bb29b)
(f472c1f)
(a419540)
* -Q/--quiet-time to remove [%F %T] prefix in log
(58898a8)
* If PUTted file doesn't already exist, copy it directly from the request body
(e95600f)
(7558ad3)
* Accept (ignore) renaming to current name in web UI
(f945289)
(afe106a)
* Return 503 Service Unavailable with an intelligible error
instead of panicking on PUT errors
* Display these in the web UI
(41d6ff8)
* "confirm" (green tick) icon
(45b68f2)
* Linked-to files in directory listing (like #asdf) highlighted
(7338d06)
* Mention of Debian repository in README
(269dc9b)
Internal:
* Needless Borrow::borrow() call removed
(1cf4b72)
(report: [email protected])
* Literalise mime types instead of parsing
(c594ca3)
(a81e456)
(c8c5ffb)
(efdedca)
(7e4f7f6)
* Don't check if temporary directory exists before trying to delete
(a6292ca)
* Useless lazy_static and regex dependencies killed
(1927f70)
(76e9458)
(9e3e1cf)
(07b1830)
(a65b272)
(45b4a98)
* Run-time parsing of do-not-encode list replaced with a codegenned function
(also kills unicase)
(8b1d70b)
(a464061)
* Assets and indices are pre-parsed in build.rs before embedding
(also kills base64 and lazysort) (+ initial whitespace trimmed from HTMLs)
(b982429)
(3ebfe11)
(4f8ab96)
(a865809)
(de4f880)
(5d1677d)
(91f11f3)
(d944b46)
(ca1e2c8)
(4d687dd)
(930abd9)
h Cache allowed methods instead of reallocating every time
(9e75edb)
(381597a)
(b2439b4)
(d0318e7)
* Vendored: iron 0.6.1 (with typemap, plugin, and log deps deleted)
(e822746)
(4cfb895)
(677c007)
i Removed automatic annoying Content-Type muddling in iron
(6b7cbd8)
(22d8872)
* Static Ctrl-C handler Condvar
(3037879)
(501825b)
* Don't allocate URL path if not necessary, and escape it at most once
(054d96c)
(c5c7b25)
(cec73d9)
* Vendored: hyper 0.10.16
(with client component, some server body types,
and log and env_logger dependencies deleted)
(b726638)
(a9bca0a)
(5c99cea)
(ee3343e)
(666a3ac)
(d10bfe1)
(4dc92ee)
(a35e050)
(0f7301e)
h Hash encoded-data caches by Encoding(Type) directly instead of String repr;
this also makes us stop distinguishing x-gzip from gzip
(2659e7b)
(2d5023c)
h Don't require reallocating Server header contents
(248ea51)
h Don't require allocating RangeUnits in Accept-Ranges header
(52d2796)
h Use SmallVec for most common case of 1 Content-Encoding
(49a56c4)
h Don't reallocate custom --header names
(2aec32f)
(c5e3ee4)
h Don't allocate for COPY/MKCOL/MOVE/PROPFIND/PROPPATCH/LOCK WebDAV requests
(689fe43)
* Don't clone headers for TRACE
(c78d921)
h language-tags dependency removed
(25ba250)
* .. + 1 => ..=
(e3b93c2)
* os-str-generic dependency removed
(6cc5a25)
(754e835)
* Recompress rename icon (206 -> 192 bytes)
(e677f0f)
* Vendored: rfsapi 0.2.0
(abc575a)
(41ae0f9)
ir Header parsing takes Cow<'static, [u8]> instead of Vec<u8>
(b266e11)
h Use VecMap as backing store for Header's PtrMap instead of HashMap
(dcd24ed)
* Free unused bits of Options
(c7c30c6)
* Don't allocate file length or 404 description as string
(f7c8189)
(5f8517a)
* Assess file size once, from opened file, for opened ranges
(f2477fb)
* Don't reallocate Range header value
(39b2246)
* Use the same buffer for recursive PROPFINDs
(1643340)
* Produce address indents with {:w$} instead of Spaces(w) writing ' ' w times
(dff8874)
(d48d06c)
* Don't allocate in AddressWriter
(a23ede0)
* Don't allocate human-readable size
(0626391)
* date.js replaced with standard JS Date manipulation
(f710d87)
(6cdc752)
* All document onload => DOMContentLoaded
(6b69a1c)
* In a similar vein, move the click event listeners to onclick (perf)
(f945289)
(f534ea4)
* Don't reallocate each filename twice to replace & and < in index
(d52b5d0)
* Re-save embedded-in-EXE favicon.ico (15k -> 2k)
(cf902c1)
* 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
(fa101ba)
* 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()
(25d01fd)
(d7a3d2c)
(60f0726)
(c5b4966)
(#140)
* Desktop directory listing simplified (inlined style, useless <div>)
(daf471f)
i: affects vendored iron; h: affects vendored hyper; r: affects vendored rfsapi
PreviousNext