diff options
author | Ludovic Courtès <ludo@gnu.org> | 2021-04-24 17:59:14 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2021-04-24 19:08:13 +0200 |
commit | 02d62978f46fcc2793608bb57a2c20a30555dbba (patch) | |
tree | 40603c5ec83639d12b08c12055bff75a5fb1b0c1 /.gitignore | |
parent | 5dcc61a62f1052e123e092094714d5eed105e753 (diff) | |
download | guix-02d62978f46fcc2793608bb57a2c20a30555dbba.tar.gz guix-02d62978f46fcc2793608bb57a2c20a30555dbba.zip |
http-client, substitute: Gracefully handle GnuTLS EAGAIN/EINTR.
Partly fixes <https://bugs.gnu.org/47867>.
Reported by Florian Pelz <pelzflorian@pelzflorian.de>.
In GnuTLS up to 3.7.1 included, GNUTLS_E_AGAIN and GNUTLS_E_INTERRUPTED
are not handled by 'write_to_session_record_port' and could be thrown at
the caller. This patch works around that by dropping connections
altogether and restarting when this happens.
* guix/http-client.scm (false-if-networking-error): Swallow ERROR/AGAIN
and ERROR/INTERRUPTED.
* guix/scripts/substitute.scm (call-with-cached-connection): Likewise.
Diffstat (limited to '.gitignore')
0 files changed, 0 insertions, 0 deletions