Mercurial > gftp.yaz
diff lib/sslcommon.c @ 215:3d6e024dbf31
2003-7-7 Brian Masney <masneyb@gftp.org>
* configure.in src/gtk/Makefile.am src/text/Makefile.am - if the
OpenSSL libraries are available on the system, link them in and
define USE_SSL. The generic SSL engine and the HTTPS protocol checks
for this
* lib/protocols.c (gftp_get_line) - small fix
* lib/rfc2068.c - fixed several bugs in the handling of chunked
messages that are spread across multiple packets (the HTTPS protocol
unconvered all of these)
* lib/sslcommon.c - several fixes and cleanups
author | masneyb |
---|---|
date | Tue, 08 Jul 2003 02:09:30 +0000 |
parents | 82ebd1b05345 |
children | 0fcc6468a0af |
line wrap: on
line diff
--- a/lib/sslcommon.c Mon Jul 07 15:15:15 2003 +0000 +++ b/lib/sslcommon.c Tue Jul 08 02:09:30 2003 +0000 @@ -169,7 +169,7 @@ break; } } - + if (!ok && (subj = X509_get_subject_name (cert)) && X509_NAME_get_text_by_NID (subj, NID_commonName, data, 256) > 0) { @@ -249,7 +249,7 @@ { int i; -#ifdef G_MAJOR_VERSION == 1 +#if G_MAJOR_VERSION == 1 /* Thread setup isn't supported in glib 1.2 yet */ return; #endif @@ -330,6 +330,7 @@ { request->logging_function (gftp_logging_error, request, _("Error: SSL engine was not initialized\n")); + gftp_disconnect (request); return (GFTP_EFATAL); } @@ -346,6 +347,7 @@ { request->logging_function (gftp_logging_error, request, _("Error setting up SSL connection (BIO object)\n")); + gftp_disconnect (request); return (GFTP_EFATAL); } @@ -355,6 +357,7 @@ { request->logging_function (gftp_logging_error, request, _("Error setting up SSL connection (SSL object)\n")); + gftp_disconnect (request); return (GFTP_EFATAL); } @@ -362,7 +365,10 @@ SSL_set_ex_data (request->ssl, gftp_ssl_get_index (), request); if (SSL_connect (request->ssl) <= 0) - return (GFTP_EFATAL); + { + gftp_disconnect (request); + return (GFTP_EFATAL); + } if ((ret = gftp_ssl_post_connection_check (request)) != X509_V_OK) { @@ -370,6 +376,7 @@ request->logging_function (gftp_logging_error, request, _("Error with peer certificate: %s\n"), X509_verify_cert_error_string (ret)); + gftp_disconnect (request); return (GFTP_EFATAL); } @@ -404,19 +411,17 @@ err = SSL_get_error (request->ssl, ret); if (errno == EINTR) { - if (request != NULL && request->cancel) + if (request->cancel) break; else continue; } - if (request != NULL) - { - request->logging_function (gftp_logging_error, request, + request->logging_function (gftp_logging_error, request, _("Error: Could not read from socket: %s\n"), g_strerror (errno)); - gftp_disconnect (request); - } + gftp_disconnect (request); + return (GFTP_ERETRYABLE); } } @@ -458,13 +463,11 @@ continue; } - if (request != NULL) - { - request->logging_function (gftp_logging_error, request, + request->logging_function (gftp_logging_error, request, _("Error: Could not write to socket: %s\n"), g_strerror (errno)); - gftp_disconnect (request); - } + gftp_disconnect (request); + return (GFTP_ERETRYABLE); } ptr += w_ret;