Nico Golde:
[apps/madmutt.git] / mutt_ssl_gnutls.c
index 5bf6b5a..0c4ea8e 100644 (file)
 #include "mutt_curses.h"
 #include "mutt_menu.h"
 #include "mutt_ssl.h"
-#include "mutt_regex.h"
 
 #include "lib/mem.h"
+#include "lib/str.h"
 #include "lib/intl.h"
+#include "lib/rx.h"
 
 typedef struct _tlssockdata {
   gnutls_session state;
@@ -55,7 +56,7 @@ static int tls_init (void)
 
   err = gnutls_global_init ();
   if (err < 0) {
-    mutt_error ("gnutls_global_init: %s", gnutls_strerror (err));
+    mutt_error (_("gnutls_global_init: %s"), gnutls_strerror (err));
     mutt_sleep (2);
     return -1;
   }
@@ -83,14 +84,14 @@ static int tls_socket_read (CONNECTION * conn, char *buf, size_t len)
   int ret;
 
   if (!data) {
-    mutt_error ("Error: no TLS socket open");
+    mutt_error (_("Error: no TLS socket open"));
     mutt_sleep (2);
     return -1;
   }
 
   ret = gnutls_record_recv (data->state, buf, len);
   if (gnutls_error_is_fatal (ret) == 1) {
-    mutt_error ("tls_socket_read (%s)", gnutls_strerror (ret));
+    mutt_error (_("tls_socket_read (%s)"), gnutls_strerror (ret));
     mutt_sleep (4);
     return -1;
   }
@@ -103,14 +104,14 @@ static int tls_socket_write (CONNECTION * conn, const char *buf, size_t len)
   int ret;
 
   if (!data) {
-    mutt_error ("Error: no TLS socket open");
+    mutt_error (_("Error: no TLS socket open"));
     mutt_sleep (2);
     return -1;
   }
 
   ret = gnutls_record_send (data->state, buf, len);
   if (gnutls_error_is_fatal (ret) == 1) {
-    mutt_error ("tls_socket_write (%s)", gnutls_strerror (ret));
+    mutt_error (_("tls_socket_write (%s)"), gnutls_strerror (ret));
     mutt_sleep (4);
     return -1;
   }
@@ -159,7 +160,7 @@ static int tls_negotiate (CONNECTION * conn)
   err = gnutls_certificate_allocate_credentials (&data->xcred);
   if (err < 0) {
     FREE (&conn->sockdata);
-    mutt_error ("gnutls_certificate_allocate_credentials: %s",
+    mutt_error (_("gnutls_certificate_allocate_credentials: %s"),
                 gnutls_strerror (err));
     mutt_sleep (2);
     return -1;
@@ -224,11 +225,11 @@ static int tls_negotiate (CONNECTION * conn)
   }
   if (err < 0) {
     if (err == GNUTLS_E_FATAL_ALERT_RECEIVED) {
-      mutt_error ("gnutls_handshake: %s(%s)", gnutls_strerror (err),
+      mutt_error (_("gnutls_handshake: %s(%s)"), gnutls_strerror (err),
                   gnutls_alert_get_name (gnutls_alert_get (data->state)));
     }
     else {
-      mutt_error ("gnutls_handshake: %s", gnutls_strerror (err));
+      mutt_error (_("gnutls_handshake: %s"), gnutls_strerror (err));
     }
     mutt_sleep (2);
     goto fail;
@@ -268,7 +269,7 @@ static int tls_socket_close (CONNECTION * conn)
 
     gnutls_certificate_free_credentials (data->xcred);
     gnutls_deinit (data->state);
-    safe_free ((void **) &conn->sockdata);
+    FREE(&conn->sockdata);
   }
 
   return raw_socket_close (conn);
@@ -322,8 +323,8 @@ static int tls_compare_certificates (const gnutls_datum * peercert)
       return 0;
     }
 
-    ptr = (unsigned char *) strstr (b64_data.data, CERT_SEP) + 1;
-    ptr = (unsigned char *) strstr (ptr, CERT_SEP);
+    ptr = (unsigned char *) strstr ((char*) b64_data.data, CERT_SEP) + 1;
+    ptr = (unsigned char *) strstr ((char*) ptr, CERT_SEP);
 
     b64_data.size = b64_data.size - (ptr - b64_data.data);
     b64_data.data = ptr;
@@ -411,10 +412,10 @@ static int tls_check_stored_hostname (const gnutls_datum * cert,
         if (regexec (&preg, linestr, 3, pmatch, 0) == 0) {
           linestr[pmatch[1].rm_eo] = '\0';
           linestr[pmatch[2].rm_eo] = '\0';
-          if (strcmp (linestr + pmatch[1].rm_so, hostname) == 0 &&
-              strcmp (linestr + pmatch[2].rm_so, buf) == 0) {
+          if (mutt_strcmp (linestr + pmatch[1].rm_so, hostname) == 0 &&
+              mutt_strcmp (linestr + pmatch[2].rm_so, buf) == 0) {
             regfree (&preg);
-            safe_free ((void **) &linestr);
+            FREE(&linestr);
             fclose (fp);
             return 1;
           }
@@ -448,10 +449,9 @@ static int tls_check_certificate (CONNECTION * conn)
   MUTTMENU *menu;
   int done, row, i, ret;
   FILE *fp;
-  gnutls_x509_dn dn;
   time_t t;
   const gnutls_datum *cert_list;
-  int cert_list_size = 0;
+  unsigned int cert_list_size = 0;
   gnutls_certificate_status certstat;
   char datestr[30];
   gnutls_x509_crt cert;
@@ -485,7 +485,7 @@ static int tls_check_certificate (CONNECTION * conn)
 
   /* We only support X.509 certificates (not OpenPGP) at the moment */
   if (gnutls_certificate_type_get (state) != GNUTLS_CRT_X509) {
-    mutt_error (_("Error certificate is not X.509"));
+    mutt_error (_("Certificate is not X.509"));
     mutt_sleep (2);
     return 0;
   }