then
AC_MSG_ERROR([SSL support is only useful with POP or IMAP support])
fi
+ if test x"$need_ssl" = x"yes"
+ then
+ AC_MSG_ERROR([Only either OpenSSL or GNUTLS may be used])
+ fi
MUTT_AM_PATH_GNUTLS([$gnutls_prefix],
[dnl GNUTLS found
CPPFLAGS="$CPPFLAGS $LIBGNUTLS_CFLAGS"
if ((rc = imap_exec (idata, "STARTTLS", IMAP_CMD_FAIL_OK)) == -1)
goto bail;
if (rc != -2) {
-#ifdef USE_SSL
+#if defined (USE_SSL) || defined (USE_GNUTLS)
if (mutt_ssl_starttls (idata->conn))
-#elif USE_GNUTLS
- if (mutt_gnutls_starttls (idata->conn))
#endif
{
mutt_error (_("Could not negotiate TLS connection"));
if (Tunnel && *Tunnel)
mutt_tunnel_socket_setup (conn);
else if (account->flags & M_ACCT_SSL) {
-#ifdef USE_SSL
- ssl_socket_setup (conn);
-#elif USE_GNUTLS
- if (mutt_gnutls_socket_setup (conn) < 0) {
+#if defined (USE_SSL) || defined (USE_GNUTLS)
+ if (mutt_ssl_socket_setup (conn) < 0) {
mutt_socket_free (conn);
return NULL;
}
# include "config.h"
#endif
+#ifdef USE_SSL
+
#include <openssl/ssl.h>
#include <openssl/x509.h>
#include <openssl/err.h>
* versions also. (That's the reason for the ugly #ifdefs and macros,
* otherwise I could have simply #ifdef'd the whole ssl_init funcion)
*/
-int ssl_init (void)
+static int ssl_init (void)
{
char path[_POSIX_PATH_MAX];
static unsigned char init_complete = 0;
}
-int ssl_socket_setup (CONNECTION * conn)
+int mutt_ssl_socket_setup (CONNECTION * conn)
{
if (ssl_init () < 0) {
conn->conn_open = ssl_socket_open_err;
return snprintf (buf, size, "%s", account->pass);
}
+
+#endif /* USE_SSL */
#include "mutt_socket.h"
-#ifdef USE_SSL
+#if defined (USE_SSL) || defined (USE_GNUTLS)
+
int mutt_ssl_starttls (CONNECTION * conn);
+int mutt_ssl_socket_setup (CONNECTION * conn);
-extern int ssl_socket_setup (CONNECTION * conn);
#endif
-#ifdef USE_GNUTLS
-int mutt_gnutls_starttls (CONNECTION * conn);
-extern int mutt_gnutls_socket_setup (CONNECTION * conn);
-#endif
#endif /* _MUTT_SSL_H_ */
# include "config.h"
#endif
+#ifdef USE_GNUTLS
+
#include <gnutls/gnutls.h>
#include <gnutls/x509.h>
#ifdef HAVE_GNUTLS_OPENSSL_H
return 0;
}
-int mutt_gnutls_socket_setup (CONNECTION * conn)
+int mutt_ssl_socket_setup (CONNECTION * conn)
{
if (tls_init () < 0)
return -1;
return 0;
}
-int mutt_gnutls_starttls (CONNECTION * conn)
+int mutt_ssl_starttls (CONNECTION * conn)
{
if (tls_init () < 0)
return -1;
gnutls_x509_crt_deinit (cert);
return (done == 2);
}
+
+#endif /* USE_GNUTLS */
mutt_error ("%s", pop_data->err_msg);
mutt_sleep (2);
}
-#ifdef USE_SSL
+#if defined (USE_SSL) || defined (USE_GNUTLS)
else if (mutt_ssl_starttls (pop_data->conn))
-#elif USE_GNUTLS
- else if (mutt_gnutls_starttls (pop_data->conn))
#endif
{
mutt_error (_("Could not negotiate TLS connection"));