emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master 0cc8da5 1/2: Make the https logic in url-http work


From: Lars Ingebrigtsen
Subject: [Emacs-diffs] master 0cc8da5 1/2: Make the https logic in url-http work on redirects
Date: Tue, 09 Dec 2014 03:22:03 +0000

branch: master
commit 0cc8da5cd8f3a4d7c19501a018cf2a38f86c509b
Author: Lars Magne Ingebrigtsen <address@hidden>
Commit: Lars Magne Ingebrigtsen <address@hidden>

    Make the https logic in url-http work on redirects
    
    (url-http-parse-headers): When being redirected, make sure we
    flush the previous certificate.
---
 lisp/url/ChangeLog   |    2 ++
 lisp/url/url-http.el |   12 +++++++-----
 2 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/lisp/url/ChangeLog b/lisp/url/ChangeLog
index d544cf0..690f699 100644
--- a/lisp/url/ChangeLog
+++ b/lisp/url/ChangeLog
@@ -2,6 +2,8 @@
 
        * url-http.el (url-http-parse-headers): Pass the GnuTLS status of
        the connection to the caller.
+       (url-http-parse-headers): When being redirected, make sure we
+       flush the previous certificate.
 
 2014-12-08  Stefan Monnier  <address@hidden>
 
diff --git a/lisp/url/url-http.el b/lisp/url/url-http.el
index f5a214a..34d325a 100644
--- a/lisp/url/url-http.el
+++ b/lisp/url/url-http.el
@@ -494,12 +494,14 @@ should be shown to the user."
   (url-http-mark-connection-as-free (url-host url-current-object)
                                    (url-port url-current-object)
                                    url-http-process)
-  ;; Pass the certificate on to the caller.
+  ;; Pass the https certificate on to the caller.
   (when (gnutls-available-p)
-    (when-let (status (gnutls-peer-status url-http-process))
-      (setcar url-callback-arguments
-             (plist-put (car url-callback-arguments)
-                        :peer status))))
+    (let ((status (gnutls-peer-status url-http-process)))
+      (when (or status
+               (plist-get (car url-callback-arguments) :peer))
+       (setcar url-callback-arguments
+               (plist-put (car url-callback-arguments)
+                          :peer status)))))
   (if (or (not (boundp 'url-http-end-of-headers))
          (not url-http-end-of-headers))
       (error "Trying to parse headers in odd buffer: %s" (buffer-name)))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]