Silence byte compiler.
[gnus] / lisp / starttls.el
index bf1982f..db6a0f8 100644 (file)
@@ -1,12 +1,11 @@
 ;;; starttls.el --- STARTTLS functions
 
-;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004,
-;;   2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2013 Free Software Foundation, Inc.
 
 ;; Author: Daiki Ueno <ueno@unixuser.org>
 ;; Author: Simon Josefsson <simon@josefsson.org>
 ;; Created: 1999/11/20
-;; Keywords: TLS, SSL, OpenSSL, GNUTLS, mail, news
+;; Keywords: TLS, SSL, OpenSSL, GnuTLS, mail, news
 
 ;; This file is part of GNU Emacs.
 
 ;; implementations both called "starttls.el".  The first one is Daiki
 ;; Ueno's starttls.el which uses his own "starttls" command line tool,
 ;; and the second one is Simon Josefsson's starttls.el which uses
-;; "gnutls-cli" from GNUTLS.
+;; "gnutls-cli" from GnuTLS.
 ;;
-;; If "starttls" is available, it is prefered by the code over
+;; If "starttls" is available, it is preferred by the code over
 ;; "gnutls-cli", for backwards compatibility.  Use
 ;; `starttls-use-gnutls' to toggle between implementations if you have
-;; both tools installed.  It is recommended to use GNUTLS, though, as
+;; both tools installed.  It is recommended to use GnuTLS, though, as
 ;; it performs more verification of the certificates.
 
-;; The GNUTLS support requires GNUTLS 0.9.90 (released 2003-10-08) or
+;; The GnuTLS support requires GnuTLS 0.9.90 (released 2003-10-08) or
 ;; later, from <http://www.gnu.org/software/gnutls/>, or "starttls"
 ;; from <ftp://ftp.opaopa.org/pub/elisp/>.
 
   :group 'mail)
 
 (defcustom starttls-gnutls-program "gnutls-cli"
-  "Name of GNUTLS command line tool.
-This program is used when GNUTLS is used, i.e. when
+  "Name of GnuTLS command line tool.
+This program is used when GnuTLS is used, i.e. when
 `starttls-use-gnutls' is non-nil."
   :version "22.1"
   :type 'string
@@ -137,7 +136,7 @@ i.e. when `starttls-use-gnutls' is nil."
   :group 'starttls)
 
 (defcustom starttls-use-gnutls (not (executable-find starttls-program))
-  "*Whether to use GNUTLS instead of the `starttls' command."
+  "*Whether to use GnuTLS instead of the `starttls' command."
   :version "22.1"
   :type 'boolean
   :group 'starttls)
@@ -150,8 +149,8 @@ These apply when the `starttls' command is used, i.e. when
   :group 'starttls)
 
 (defcustom starttls-extra-arguments nil
-  "Extra arguments to `starttls-program'.
-These apply when GNUTLS is used, i.e. when `starttls-use-gnutls' is non-nil.
+  "Extra arguments to `starttls-gnutls-program'.
+These apply when GnuTLS is used, i.e. when `starttls-use-gnutls' is non-nil.
 
 For example, non-TLS compliant servers may require
 '(\"--protocols\" \"ssl3\").  Invoke \"gnutls-cli --help\" to
@@ -168,8 +167,8 @@ find out which parameters are available."
 
 (defcustom starttls-connect "- Simple Client Mode:\n\n"
   "*Regular expression indicating successful connection.
-The default is what GNUTLS's \"gnutls-cli\" outputs."
-  ;; GNUTLS cli.c:main() prints this string when it is starting to run
+The default is what GnuTLS's \"gnutls-cli\" outputs."
+  ;; GnuTLS cli.c:main() prints this string when it is starting to run
   ;; in the application read/write phase.  If the logic, or the string
   ;; itself, is modified, this must be updated.
   :version "22.1"
@@ -178,8 +177,8 @@ The default is what GNUTLS's \"gnutls-cli\" outputs."
 
 (defcustom starttls-failure "\\*\\*\\* Handshake has failed"
   "*Regular expression indicating failed TLS handshake.
-The default is what GNUTLS's \"gnutls-cli\" outputs."
-  ;; GNUTLS cli.c:do_handshake() prints this string on failure.  If the
+The default is what GnuTLS's \"gnutls-cli\" outputs."
+  ;; GnuTLS cli.c:do_handshake() prints this string on failure.  If the
   ;; logic, or the string itself, is modified, this must be updated.
   :version "22.1"
   :type 'regexp
@@ -187,8 +186,8 @@ The default is what GNUTLS's \"gnutls-cli\" outputs."
 
 (defcustom starttls-success "- Compression: "
   "*Regular expression indicating completed TLS handshakes.
-The default is what GNUTLS's \"gnutls-cli\" outputs."
-  ;; GNUTLS cli.c:do_handshake() calls, on success,
+The default is what GnuTLS's \"gnutls-cli\" outputs."
+  ;; GnuTLS cli.c:do_handshake() calls, on success,
   ;; common.c:print_info(), that unconditionally print this string
   ;; last.  If that logic, or the string itself, is modified, this
   ;; must be updated.
@@ -269,6 +268,7 @@ handshake, or nil on failure."
             host port (if done "done" "failed"))
     process))
 
+;;;###autoload
 (defun starttls-open-stream (name buffer host port)
   "Open a TLS connection for a port to a host.
 Returns a subprocess object to represent the connection.
@@ -283,7 +283,7 @@ BUFFER is the buffer (or `buffer-name') to associate with the process.
 Third arg is name of the host to connect to, or its IP address.
 Fourth arg PORT is an integer specifying a port to connect to.
 If `starttls-use-gnutls' is nil, this may also be a service name, but
-GNUTLS requires a port number."
+GnuTLS requires a port number."
   (if starttls-use-gnutls
       (starttls-open-stream-gnutls name buffer host port)
     (message "Opening STARTTLS connection to `%s:%s'" host (format "%s" port))
@@ -295,18 +295,16 @@ GNUTLS requires a port number."
       (starttls-set-process-query-on-exit-flag process nil)
       process)))
 
-(defun starttls-any-program-available ()
-  (let ((program (if starttls-use-gnutls
-                    starttls-gnutls-program
-                  starttls-program)))
-    (condition-case ()
-       (progn
-         (call-process program)
-         program)
-      (error (progn
-              (message "No STARTTLS program was available (tried '%s')"
-                       program)
-              nil)))))
+(defun starttls-available-p ()
+  "Say whether the STARTTLS programs are available."
+  (and (not (memq system-type '(windows-nt ms-dos)))
+       (executable-find (if starttls-use-gnutls
+                           starttls-gnutls-program
+                         starttls-program))))
+
+(defalias 'starttls-any-program-available 'starttls-available-p)
+(make-obsolete 'starttls-any-program-available 'starttls-available-p
+              "2011-08-02")
 
 (provide 'starttls)