emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] /srv/bzr/emacs/trunk r104728: Use built-in TLS support if


From: Lars Magne Ingebrigtsen
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r104728: Use built-in TLS support if `gnutls-available-p' is true.
Date: Sun, 26 Jun 2011 10:13:07 +0200
User-agent: Bazaar (2.3.1)

------------------------------------------------------------
revno: 104728
committer: Lars Magne Ingebrigtsen <address@hidden>
branch nick: trunk
timestamp: Sun 2011-06-26 10:13:07 +0200
message:
  Use built-in TLS support if `gnutls-available-p' is true.
modified:
  lisp/ChangeLog
  lisp/net/network-stream.el
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2011-06-26 06:37:04 +0000
+++ b/lisp/ChangeLog    2011-06-26 08:13:07 +0000
@@ -1,3 +1,9 @@
+2011-06-26  Lars Magne Ingebrigtsen  <address@hidden>
+
+       * net/network-stream.el (network-stream-open-starttls): Use
+       built-in TLS support if `gnutls-available-p' is true.
+       (network-stream-open-tls): Ditto.
+
 2011-06-26  Leo Liu  <address@hidden>
 
        * register.el (registerv): New struct.

=== modified file 'lisp/net/network-stream.el'
--- a/lisp/net/network-stream.el        2011-06-21 22:55:52 +0000
+++ b/lisp/net/network-stream.el        2011-06-26 08:13:07 +0000
@@ -46,7 +46,8 @@
 (require 'starttls)
 (require 'auth-source)
 
-(declare-function gnutls-negotiate "gnutls" t t) ; defun*
+(autoload 'gnutls-negotiate "gnutls")
+(autoload 'open-gnutls-stream "gnutls")
 
 ;;;###autoload
 (defun open-network-stream (name buffer host service &rest parameters)
@@ -207,11 +208,13 @@
         (greeting (network-stream-get-response stream start eoc))
         (capabilities (network-stream-command stream capability-command eoc))
         (resulting-type 'plain)
+        (builtin-starttls (and (fboundp 'gnutls-available-p)
+                               (gnutls-available-p)))
         starttls-command)
 
     ;; If we have built-in STARTTLS support, try to upgrade the
     ;; connection.
-    (when (and (or (fboundp 'open-gnutls-stream)
+    (when (and (or builtin-starttls
                   (and (or require-tls
                            (plist-get parameters :use-starttls-if-possible))
                        (executable-find "gnutls-cli")))
@@ -221,7 +224,7 @@
               (not (eq (plist-get parameters :type) 'plain)))
       ;; If using external STARTTLS, drop this connection and start
       ;; anew with `starttls-open-stream'.
-      (unless (fboundp 'open-gnutls-stream)
+      (unless builtin-starttls
        (delete-process stream)
        (setq start (with-current-buffer buffer (point-max)))
        (let* ((starttls-use-gnutls t)
@@ -248,7 +251,7 @@
       (when (string-match success-string
                          (network-stream-command stream starttls-command eoc))
        ;; The server said it was OK to begin STARTTLS negotiations.
-       (if (fboundp 'open-gnutls-stream)
+       (if builtin-starttls
            (let ((cert (network-stream-certificate host service parameters)))
              (gnutls-negotiate :process stream :hostname host
                                :keylist (and cert (list cert))))
@@ -296,7 +299,8 @@
 (defun network-stream-open-tls (name buffer host service parameters)
   (with-current-buffer buffer
     (let* ((start (point-max))
-          (use-builtin-gnutls (fboundp 'open-gnutls-stream))
+          (use-builtin-gnutls (and (fboundp 'gnutls-available-p)
+                                   (gnutls-available-p)))
           (stream
            (funcall (if use-builtin-gnutls
                         'open-gnutls-stream
@@ -307,7 +311,8 @@
          (list nil nil nil 'plain)
        ;; If we're using tls.el, we have to delete the output from
        ;; openssl/gnutls-cli.
-       (when (and (null use-builtin-gnutls) eoc)
+       (when (and (null use-builtin-gnutls)
+                  eoc)
          (network-stream-get-response stream start eoc)
          (goto-char (point-min))
          (when (re-search-forward eoc nil t)


reply via email to

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