From: Sebastian B. <sb...@us...> - 2014-02-21 06:37:09
|
Update of /cvsroot/simplemail/simplemail In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv25666 Modified Files: tcp.c Log Message: Log SSL_connect() error via logging API and user messages. Index: tcp.c =================================================================== RCS file: /cvsroot/simplemail/simplemail/tcp.c,v retrieving revision 1.50 retrieving revision 1.51 diff -u -d -r1.50 -r1.51 --- tcp.c 21 Feb 2014 06:33:54 -0000 1.50 +++ tcp.c 21 Feb 2014 06:37:07 -0000 1.51 @@ -53,6 +53,8 @@ #include "smintl.h" #include "tcp.h" +#include "support.h" + #define MIN(a,b) (((a)<(b))?(a):(b)) /*#define DEBUG_OUTPUT*/ @@ -236,6 +238,7 @@ int tcp_make_secure(struct connection *conn) { #ifndef NO_SSL + int rc; if (!open_ssl_lib()) return 0; if (!(conn->ssl = SSL_new(ssl_context()))) @@ -250,7 +253,7 @@ SSL_set_fd(conn->ssl, conn->socket); SM_DEBUGF(10,("Establishing SSL connection\n")); - if (SSL_connect(conn->ssl) >= 0) + if ((rc = SSL_connect(conn->ssl)) >= 0) { X509 *server_cert; if ((server_cert = SSL_get_peer_certificate(conn->ssl))) @@ -261,6 +264,14 @@ SM_DEBUGF(5,("Connection is secure\n")); return 1; } + } else + { + int err = SSL_get_error(conn->ssl, rc); + char buf[64]; + sm_snprintf(buf, sizeof(buf), "SSL_connect() failed with error %d", err); + SM_DEBUGF(5,("%s\n", buf)); + /* TODO: Implement and use proper error API */ + tell_from_subtask(buf); } SSL_shutdown(conn->ssl); |