From 3e468d2c23318616f86dc7c180102ebb2c34bd6c Mon Sep 17 00:00:00 2001 From: pk910 Date: Wed, 7 Dec 2011 00:08:40 +0100 Subject: [PATCH] fixed ssl handler --- configure.ac | 9 +++++++-- src/ClientSocket.c | 2 +- src/ssl.c | 2 ++ src/ssl.h | 1 + 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/configure.ac b/configure.ac index 95d0bdd..109c5d9 100644 --- a/configure.ac +++ b/configure.ac @@ -31,15 +31,20 @@ AC_ARG_WITH([winsock], [WINSOCK_LIBS='']) AC_SUBST([WINSOCK_LIBS]) +do_have_ssl="no"; AC_CHECK_LIB(ssl, SSL_read, [ AC_CHECK_LIB(crypto, X509_new, [ AC_CHECK_HEADERS(openssl/ssl.h openssl/err.h openssl/rand.h, [ - LIBS="$LIBS -lssl -lcrypto" - AC_DEFINE([HAVE_SSL], 1, [Define if you are using SSL]) + do_have_ssl="yes"; ]) ]) ]) +if test x"$do_have_ssl" = xyes; then + LIBS="$LIBS -lssl -lcrypto" + AC_DEFINE([HAVE_SSL], 1, [Define if you are using SSL]) +fi + # Checks for header files. AC_CHECK_HEADERS([arpa/inet.h netdb.h netinet/in.h stdlib.h string.h sys/socket.h unistd.h windows.h winsock2.h]) diff --git a/src/ClientSocket.c b/src/ClientSocket.c index 6b32b17..898b05f 100644 --- a/src/ClientSocket.c +++ b/src/ClientSocket.c @@ -278,7 +278,7 @@ void socket_loop(int timeout_seconds) { sock->bufferpos += i; } } else { - if(!(sock->flags & SOCKET_FLAG_SSL) || (bytes = ssl_read(sock, buffer, sizeof(buffer))) == -2) { + if(!(sock->flags & SOCKET_FLAG_SSL) || (bytes = ssl_read(sock, sock->buffer, sizeof(sock->buffer))) == -2) { #ifdef WIN32 bytes = recv(sock->sock, sock->buffer, sizeof(sock->buffer), 0); #else diff --git a/src/ssl.c b/src/ssl.c index 0c16548..a2c837b 100644 --- a/src/ssl.c +++ b/src/ssl.c @@ -21,6 +21,7 @@ void ssl_init() { #ifdef HAVE_SSL SSL_library_init(); + SSL_load_error_strings(); #endif } @@ -36,6 +37,7 @@ void ssl_connect(struct ClientSocket *client) { if(!SSL_set_fd(sslconn->sslHandle, client->sock)) goto ssl_connect_err; if(SSL_connect(sslconn->sslHandle) != 1) goto ssl_connect_err; client->sslconn = sslconn; + return; ssl_connect_err: free(sslconn); #endif diff --git a/src/ssl.h b/src/ssl.h index d28937b..6fd3144 100644 --- a/src/ssl.h +++ b/src/ssl.h @@ -24,6 +24,7 @@ struct ClientSocket; #ifdef HAVE_SSL #include #include +#include struct SSLConnection { SSL *sslHandle; -- 2.20.1