elfeed icon indicating copy to clipboard operation
elfeed copied to clipboard

Set per-feed curl options

Open sanel opened this issue 3 months ago • 0 comments

Is there a way to have per-feed a specific curl args set? I've noticed that some sites, with --compressed argument and http2, will return curl: (23) Failed writing received data to disk/application, probably due to non-conforming web server. For example:

# works
$ curl --compressed https://news.ycombinator.com/rss >/dev/null
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 11404    0 11404    0     0  14087      0 --:--:-- --:--:-- --:--:-- 14079

# fails, but looks like all content is downloaded
$ curl --compressed https://www.klix.ba/rss >/dev/null
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  7193    0  7193    0     0  42774      0 --:--:-- --:--:-- --:--:-- 42815
curl: (23) Failed writing received data to disk/application

# but this works
$ curl --compressed --http1.1 https://www.klix.ba/rss >/dev/null
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  7193    0  7193    0     0  44618      0 --:--:-- --:--:-- --:--:-- 44401

curl version where this happens:

curl 8.7.1 (x86_64-pc-linux-gnu) libcurl/8.7.1 OpenSSL/1.1.1w zlib/1.2.13 brotli/1.0.9 zstd/1.5.5 c-ares/1.19.1 libidn2/2.3.2 libpsl/0.21.1 libssh2/1.10.0 nghttp2/1.57.0 OpenLDAP/2.4.59
Release-Date: 2024-03-27
Protocols: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns ldap ldaps mqtt pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp
Features: alt-svc AsynchDNS brotli GSS-API HSTS HTTP2 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM PSL SPNEGO SSL threadsafe TLS-SRP UnixSockets zstd
~/programs/projects/stylitics/ansible-playbooks $ 

but it works with older curl version, like:

curl 7.81.0 (x86_64-pc-linux-gnu) libcurl/7.81.0 OpenSSL/3.0.2 zlib/1.2.11 brotli/1.0.9 zstd/1.4.8 libidn2/2.3.2 libpsl/0.21.0 (+libidn2/2.3.2) libssh/0.9.6/openssl/zlib nghttp2/1.43.0 librtmp/2.3 OpenLDAP/2.5.16
Release-Date: 2022-01-05
Protocols: dict file ftp ftps gopher gophers http https imap imaps ldap ldaps mqtt pop3 pop3s rtmp rtsp scp sftp smb smbs smtp smtps telnet tftp 
Features: alt-svc AsynchDNS brotli GSS-API HSTS HTTP2 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM NTLM_WB PSL SPNEGO SSL TLS-SRP UnixSockets zstd

Funny thing is that Emacs 29.3 url package works without problems, with (setq elfeed-use-curl nil) set.

sanel avatar Mar 31 '24 22:03 sanel