X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=mutt_ssl_gnutls.c;h=f6d8b2d6c6f0142099a3dddbf871543e67cddce6;hp=a7181bdf1cdfe7a5b901c88495ab4f0aab42cb23;hb=1dc7032b59cc5b91d70076ed228bda8caf65a7f3;hpb=f5b0e714a215eddd4d9f8084b434b713f0a580b4 diff --git a/mutt_ssl_gnutls.c b/mutt_ssl_gnutls.c index a7181bd..f6d8b2d 100644 --- a/mutt_ssl_gnutls.c +++ b/mutt_ssl_gnutls.c @@ -12,21 +12,24 @@ # include "config.h" #endif +#ifdef USE_GNUTLS + #include #include #ifdef HAVE_GNUTLS_OPENSSL_H #include #endif +#include +#include + #include "mutt.h" #include "mutt_socket.h" #include "mutt_curses.h" #include "mutt_menu.h" #include "mutt_ssl.h" -#include "lib/mem.h" #include "lib/str.h" -#include "lib/intl.h" #include "lib/rx.h" typedef struct _tlssockdata { @@ -65,7 +68,7 @@ static int tls_init (void) return 0; } -int mutt_gnutls_socket_setup (CONNECTION * conn) +int mutt_ssl_socket_setup (CONNECTION * conn) { if (tls_init () < 0) return -1; @@ -131,7 +134,7 @@ static int tls_socket_open (CONNECTION * conn) return 0; } -int mutt_gnutls_starttls (CONNECTION * conn) +int mutt_ssl_starttls (CONNECTION * conn) { if (tls_init () < 0) return -1; @@ -155,11 +158,11 @@ static int tls_negotiate (CONNECTION * conn) tlssockdata *data; int err; - data = (tlssockdata *) mem_calloc (1, sizeof (tlssockdata)); + data = p_new(tlssockdata, 1); conn->sockdata = data; err = gnutls_certificate_allocate_credentials (&data->xcred); if (err < 0) { - mem_free (&conn->sockdata); + p_delete(&conn->sockdata); mutt_error (_("gnutls_certificate_allocate_credentials: %s"), gnutls_strerror (err)); mutt_sleep (2); @@ -256,7 +259,7 @@ static int tls_negotiate (CONNECTION * conn) fail: gnutls_certificate_free_credentials (data->xcred); gnutls_deinit (data->state); - mem_free (&conn->sockdata); + p_delete(&conn->sockdata); return -1; } @@ -269,7 +272,7 @@ static int tls_socket_close (CONNECTION * conn) gnutls_certificate_free_credentials (data->xcred); gnutls_deinit (data->state); - mem_free(&conn->sockdata); + p_delete(&conn->sockdata); } return raw_socket_close (conn); @@ -304,7 +307,7 @@ static int tls_compare_certificates (const gnutls_datum * peercert) return 0; b64_data.size = filestat.st_size + 1; - b64_data_data = (unsigned char *) mem_calloc (1, b64_data.size); + b64_data_data = p_new(unsigned char, b64_data.size); b64_data_data[b64_data.size - 1] = '\0'; b64_data.data = b64_data_data; @@ -319,7 +322,7 @@ static int tls_compare_certificates (const gnutls_datum * peercert) do { ret = gnutls_pem_base64_decode_alloc (NULL, &b64_data, &cert); if (ret != 0) { - mem_free (&b64_data_data); + p_delete(&b64_data_data); return 0; } @@ -333,7 +336,7 @@ static int tls_compare_certificates (const gnutls_datum * peercert) if (memcmp (cert.data, peercert->data, cert.size) == 0) { /* match found */ gnutls_free (cert.data); - mem_free (&b64_data_data); + p_delete(&b64_data_data); return 1; } } @@ -342,7 +345,7 @@ static int tls_compare_certificates (const gnutls_datum * peercert) } while (ptr != NULL); /* no match found */ - mem_free (&b64_data_data); + p_delete(&b64_data_data); return 0; } @@ -415,7 +418,7 @@ static int tls_check_stored_hostname (const gnutls_datum * cert, if (str_cmp (linestr + pmatch[1].rm_so, hostname) == 0 && str_cmp (linestr + pmatch[2].rm_so, buf) == 0) { regfree (&preg); - mem_free(&linestr); + p_delete(&linestr); fclose (fp); return 1; } @@ -583,9 +586,9 @@ static int tls_check_certificate (CONNECTION * conn) /* interactive check from user */ menu = mutt_new_menu (); menu->max = 25; - menu->dialog = (char **) mem_calloc (1, menu->max * sizeof (char *)); + menu->dialog = p_new(char*, menu->max); for (i = 0; i < menu->max; i++) - menu->dialog[i] = (char *) mem_calloc (1, SHORT_STRING * sizeof (char)); + menu->dialog[i] = p_new(char, SHORT_STRING); row = 0; strfcpy (menu->dialog[row], _("This certificate belongs to:"), @@ -795,3 +798,5 @@ static int tls_check_certificate (CONNECTION * conn) gnutls_x509_crt_deinit (cert); return (done == 2); } + +#endif /* USE_GNUTLS */