mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-11-07 07:26:13 -05:00
substitute: Gracefully handle TLS termination while fetching narinfos.
Fixes <https://issues.guix.gnu.org/62476>. * guix/substitutes.scm (call-with-connection-error-handling): Add 'gnutls-error case.
This commit is contained in:
parent
3b9738aeac
commit
af91c2d540
1 changed files with 9 additions and 1 deletions
|
@ -1,5 +1,5 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2013-2021, 2023 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2014 Nikita Karetnikov <nikita@karetnikov.org>
|
||||
;;; Copyright © 2018 Kyle Meyer <kyle@kyleam.com>
|
||||
;;; Copyright © 2020 Christopher Baines <mail@cbaines.net>
|
||||
|
@ -35,6 +35,7 @@ (define-module (guix substitutes)
|
|||
#:select ((open-connection-for-uri
|
||||
. guix:open-connection-for-uri)
|
||||
resolve-uri-reference))
|
||||
#:autoload (gnutls) (error->string error/premature-termination)
|
||||
#:use-module (guix progress)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (ice-9 format)
|
||||
|
@ -152,6 +153,13 @@ (define host
|
|||
(strerror
|
||||
(system-error-errno `(system-error ,@args)))))
|
||||
#f)
|
||||
(('gnutls-error error proc . rest)
|
||||
(if (eq? error error/premature-termination)
|
||||
(begin
|
||||
(warning (G_ "~a: TLS connection failed: in ~a: ~a~%") host
|
||||
proc (error->string error))
|
||||
#f)
|
||||
(apply throw 'gnutls-error error proc rest)))
|
||||
(args
|
||||
(apply throw args)))))
|
||||
|
||||
|
|
Loading…
Reference in a new issue