A lightweight well-featured CLI downloader optimized for speed and early preview.
With minor changes, mostly in the build script. saldl now builds and runs without issue in the most popular BSD flavors.
A couple of fixes and some minor changes were also committed.
--enable-static
configure option (94017c507b6695583bc0c35c76d07c76cd57b2fe)./usr/pkg
if set by pkg-config
(4480e64a092a3a4f001c35bf1fe6f012ef5dad0f).RPATH
s if set by pkg-config
(4480e64a092a3a4f001c35bf1fe6f012ef5dad0f).pthread_join()
call returning EDEADLK
in the BSDs (1d73a7c90a249c3f96a8869428a6759c5e3c329f).--custom-headers
and --proxy-custom-headers
options:
You can add one or more headers at a time multiple times. Consult
the man page for details (b2236cdc5bf65c70643c08f87871c35365a58359).The highlight of this release is Mac OSX support. saldl should have always worked with OSX. But an erroneous compiler define broke the build.
With the help of Homebrew, installing the latest release of saldl in OSX should be trivial:
brew install https://github.com/saldl/saldl/raw/master/OSX/saldl.rb
Other changes in this release include:
-m
/ --memory-buffers
passed.--read-only
to test saldl's performance without writing to disk (1e1429361c7c2e2a6ac22aed2ecd9f612f16649e)PKGBUILD
is available (fde0e0bbaa9d04e2c3d8d79cb644e6bf1fc4bd67 & 2f3164142831b8d87b51b1ea85cdf2a2350e4f79)CURLOPT_LOW_SPEED_TIME
from 15 seconds to 10: (0e344c68b0c172869ca6ab5a8b0c80dcb5d0e334)fprintf()
instead of the slow ANSI implementation (ffe15028433db7e2b0a6f69f216b256675ac1baa)"google.com" => "https://google.com"
MinGW binaries statically linked with newly-released libcurl 7.45.
One of the two fixes in v24(e6a5c6ce77414ace27f3ce92015b486fde796f80)actually caused more breakage (crashes, weird errors).
This is fixed now.
A lot of checks were added to make sure standard library functions are not returning errors for some reason.
A strict check that was added in the last commit in v20(618f1ae) caused some unexpected false-positive failures. Especially with compressed content and dynamic sites.
This eventually proved to be very useful as we now explicitly cover many corner cases.
saldl now intentionally fails with:
saldl https://google.com --no-decompress
Google (at least with HTTP/2) seems to set Content-Length if we ask for compression. But the value of Content-length seems to be always slightly different from second to second.
This behavior instantly renders the remote info we acquire before downloading outdated. That's why saldl intentionally fails with --no-decompress in this case. And a suggestion to use --no-remote-info is offered.