[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Guile-commits] 03/06: web: Continue handshake upon TLS warning alerts.
From: |
Ludovic Courtès |
Subject: |
[Guile-commits] 03/06: web: Continue handshake upon TLS warning alerts. |
Date: |
Mon, 13 Jan 2020 05:54:36 -0500 (EST) |
civodul pushed a commit to branch master
in repository guile.
commit bcba2132849bc395f716910e27a9273d1a152a9b
Author: Ludovic Courtès <address@hidden>
AuthorDate: Fri Jan 10 12:11:45 2020 +0100
web: Continue handshake upon TLS warning alerts.
This is a backport of Guix commit 7b9ac883ea62a816afbfa747c1377dc273c15c20.
* module/web/client.scm (tls-wrap): Catch 'gnutls-error' around
'handshake'. Upon ERROR/WARNING-ALERT-RECEIVED, print a message and
call 'handshake'.
---
module/web/client.scm | 17 ++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)
diff --git a/module/web/client.scm b/module/web/client.scm
index 3761eb5..74fc855 100644
--- a/module/web/client.scm
+++ b/module/web/client.scm
@@ -125,7 +125,22 @@ host name without trailing dot."
;;(set-log-level! 10)
;;(set-log-procedure! log)
- (handshake session)
+ (catch 'gnutls-error
+ (lambda ()
+ (handshake session))
+ (lambda (key err proc . rest)
+ (cond ((eq? err error/warning-alert-received)
+ ;; Like Wget, do no stop upon non-fatal alerts such as
+ ;; 'alert-description/unrecognized-name'.
+ (format (current-error-port)
+ "warning: TLS warning alert received: ~a~%"
+ (alert-description->string (alert-get session)))
+ (handshake session))
+ (else
+ ;; XXX: We'd use 'gnutls_error_is_fatal' but (gnutls) doesn't
+ ;; provide a binding for this.
+ (apply throw key err proc rest)))))
+
;; FIXME: It appears that session-record-port is entirely
;; sufficient; it's already a port. The only value of this code is
;; to keep a reference on "port", to keep it alive! To fix this we
- [Guile-commits] branch master updated (287d513 -> 10fdd88), Ludovic Courtès, 2020/01/13
- [Guile-commits] 01/06: web: Adjust (gnutls) loading to new module autoload semantics., Ludovic Courtès, 2020/01/13
- [Guile-commits] 03/06: web: Continue handshake upon TLS warning alerts.,
Ludovic Courtès <=
- [Guile-commits] 02/06: web: Add 'current-https-proxy' and honor $https_proxy., Ludovic Courtès, 2020/01/13
- [Guile-commits] 06/06: Update NEWS., Ludovic Courtès, 2020/01/13
- [Guile-commits] 04/06: web: 'open-socket-for-uri' can verify the server's X.509 certificate., Ludovic Courtès, 2020/01/13
- [Guile-commits] 05/06: web: Update comment regarding the 'tls-wrap' port wrapper., Ludovic Courtès, 2020/01/13