various fixes and simplifications wrt openssl.h
authorPierre Habouzit <madcoder@debian.org>
Sat, 26 May 2007 08:01:09 +0000 (10:01 +0200)
committerPierre Habouzit <madcoder@debian.org>
Sat, 26 May 2007 08:01:09 +0000 (10:01 +0200)
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
CMakeLists.txt
config.h.cmake
lib-sys/mutt_ssl.cpkg
sendlib.c

index 607f6bf..0067433 100644 (file)
@@ -192,6 +192,7 @@ ENDIF(WITH_GPGME)
 XCONFIG(libgnutls-config gnutls_INCDIR gnutls_LINKDIR gnutls_LDFLAGS gnutls_CFLAGS)
 INCLUDE_DIRECTORIES(${gnutls_INCDIR})
 ADD_DEFINITIONS(${gnutls_CFLAGS})
+CHECK_INCLUDE_FILE(gnutls/openssl.h  HAVE_GNUTLS_OPENSSL_H)
 SET(MUTTLIBS "${MUTTLIBS} ${gnutls_LDFLAGS}")
 
 CHECK_LIBRARY_EXISTS(sasl2 sasl_client_init "" WITH_SASL)
index e56e82a..e9af40c 100644 (file)
@@ -38,6 +38,7 @@
 #cmakedefine HAVE_UNIX_H             1
 #cmakedefine HAVE_WCHAR_H            1
 #cmakedefine HAVE_WCTYPE_H           1
+#cmakedefine HAVE_GNUTLS_OPENSSL_H   1
 
 /* type */
 #cmakedefine HAVE_DIRENT_D_INO       1
index 8ceeb60..4495153 100644 (file)
@@ -12,9 +12,6 @@
 
 #include <gnutls/gnutls.h>
 #include <gnutls/x509.h>
-#ifdef HAVE_GNUTLS_OPENSSL_H
-#include <gnutls/openssl.h>
-#endif
 
 #include <lib-ui/curses.h>
 #include <lib-ui/menu.h>
index 8891280..0f33616 100644 (file)
--- a/sendlib.c
+++ b/sendlib.c
 #include <signal.h>
 
 #ifdef USE_LIBESMTP
+#ifdef HAVE_GNUTLS_OPENSSL_H
+#define SSL_SESSION_ASN1_VERSION
+#include <gnutls/openssl.h>
+#endif
 #include <auth-client.h>
 #include <libesmtp.h>
 #endif
@@ -186,17 +190,6 @@ _send_smtp_messagefp_cb(void **buf, int *len, void *arg)
   return *buf;
 }
 
-static int handle_invalid_peer_certificate (long vfy_result) {
-#if defined (HAVE_GNUTLS_OPENSSL_H)
-  mutt_error (_("Error verifying certificate: %s"),
-              NONULL (X509_verify_cert_error_string (vfy_result)));
-#else
-  mutt_error (_("Error verifying certificate. Error Code: %lu"), vfy_result);
-#endif
-  sleep(2);
-  return 1; /* Accept the problem */
-}
-
 static void event_cb (smtp_session_t session __attribute__ ((unused)),
                       int event_no, void *arg,...)
 { 
@@ -225,8 +218,9 @@ static void event_cb (smtp_session_t session __attribute__ ((unused)),
   case SMTP_EV_INVALID_PEER_CERTIFICATE: {
     long vfy_result;
     vfy_result = va_arg(alist, long); ok = va_arg(alist, int*);
-    *ok = handle_invalid_peer_certificate(vfy_result);
-    sleep(1);
+    mutt_error (_("Error verifying certificate. Error Code: %lu"), vfy_result);
+    sleep(2);
+    *ok = 1;
     break;
   } 
   case SMTP_EV_NO_PEER_CERTIFICATE: {
@@ -317,8 +311,8 @@ int send_smtp_check_usetls (const char* option, unsigned long p,
 static int
 send_smtp_invoke(address_t *from, address_t *to, address_t *cc,
                  address_t *bcc, const char *msg, int eightbit)
-{                               /* message contains 8bit chars */
-  int ret = 0;                  /* return value, default = success */
+{
+  int ret = 0;
   smtp_session_t session;
   smtp_message_t message;
   char *hostportstr = NULL;
@@ -334,9 +328,9 @@ send_smtp_invoke(address_t *from, address_t *to, address_t *cc,
     SMTPFAIL ("smtp_create_session");
 
 #ifdef HAVE_GNUTLS_OPENSSL_H
-  if (SmtpUseTLS != NULL && ascii_strncasecmp("enabled", SmtpUseTLS, 7) == 0) {
+  if (!ascii_strncasecmp("enabled", SmtpUseTLS, 7)) {
     smtp_starttls_enable(session, Starttls_ENABLED);
-  } else if (SmtpUseTLS != NULL && ascii_strncasecmp("required", SmtpUseTLS, 8) == 0) {
+  } else if (!ascii_strncasecmp("required", SmtpUseTLS, 8)) {
     smtp_starttls_enable(session, Starttls_REQUIRED);
   }
 #endif