substitute: Remove now redundant connection caching helpers.
Failures now should be handled where they occur, and if there's a problem that's symptomatic of an issue with the connection, the port should be closed. * guix/scripts/substitute.scm (call-with-cached-connection): Remove procedure. (with-cached-connection): Remove syntax rule.
This commit is contained in:
parent
f50f5751ff
commit
7c85877fdf
@ -690,32 +690,6 @@ server certificates."
|
|||||||
(drain-input socket)
|
(drain-input socket)
|
||||||
socket))))))))
|
socket))))))))
|
||||||
|
|
||||||
(define* (call-with-cached-connection uri proc
|
|
||||||
#:optional
|
|
||||||
(open-connection
|
|
||||||
open-connection-for-uri/cached))
|
|
||||||
(let ((port (open-connection uri)))
|
|
||||||
(catch #t
|
|
||||||
(lambda ()
|
|
||||||
(proc port))
|
|
||||||
(lambda (key . args)
|
|
||||||
;; If PORT was cached and the server closed the connection in the
|
|
||||||
;; meantime, we get EPIPE. In that case, open a fresh connection and
|
|
||||||
;; retry. We might also get 'bad-response or a similar exception from
|
|
||||||
;; (web response) later on, once we've sent the request, or a
|
|
||||||
;; ERROR/INVALID-SESSION from GnuTLS.
|
|
||||||
(if (or (and (eq? key 'system-error)
|
|
||||||
(= EPIPE (system-error-errno `(,key ,@args))))
|
|
||||||
(and (eq? key 'gnutls-error)
|
|
||||||
(eq? (first args) error/invalid-session))
|
|
||||||
(memq key '(bad-response bad-header bad-header-component)))
|
|
||||||
(proc (open-connection uri #:fresh? #t))
|
|
||||||
(apply throw key args))))))
|
|
||||||
|
|
||||||
(define-syntax-rule (with-cached-connection uri port exp ...)
|
|
||||||
"Bind PORT with EXP... to a socket connected to URI."
|
|
||||||
(call-with-cached-connection uri (lambda (port) exp ...)))
|
|
||||||
|
|
||||||
(define* (process-substitution store-item destination
|
(define* (process-substitution store-item destination
|
||||||
#:key cache-urls acl
|
#:key cache-urls acl
|
||||||
deduplicate? print-build-trace?)
|
deduplicate? print-build-trace?)
|
||||||
@ -1011,8 +985,6 @@ default value."
|
|||||||
|
|
||||||
;;; Local Variables:
|
;;; Local Variables:
|
||||||
;;; eval: (put 'with-timeout 'scheme-indent-function 1)
|
;;; eval: (put 'with-timeout 'scheme-indent-function 1)
|
||||||
;;; eval: (put 'with-cached-connection 'scheme-indent-function 2)
|
|
||||||
;;; eval: (put 'call-with-cached-connection 'scheme-indent-function 1)
|
|
||||||
;;; End:
|
;;; End:
|
||||||
|
|
||||||
;;; substitute.scm ends here
|
;;; substitute.scm ends here
|
||||||
|
Loading…
Reference in New Issue
Block a user