From 0c5d98c6713852eead2fa5f7c0eeccb6ac44ac76 Mon Sep 17 00:00:00 2001 From: Jan Vidar Krey Date: Fri, 9 Oct 2009 21:11:11 +0200 Subject: [PATCH] TLS compile and crash fixes. --- src/core/probe.c | 15 +++++++++++---- src/network/connection.c | 4 ++-- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/core/probe.c b/src/core/probe.c index a3f2c69..37479ce 100644 --- a/src/core/probe.c +++ b/src/core/probe.c @@ -66,16 +66,23 @@ static void probe_net_event(struct net_connection* con, int events, void *arg) } #ifdef SSL_SUPPORT - if (bytes >= 11 + if (bytes >= 11 && probe_recvbuf[0] == 22 && probe_recvbuf[1] == 3 && /* protocol major version */ probe_recvbuf[5] == 1 && /* message type */ probe_recvbuf[9] == probe_recvbuf[1] && probe_recvbuf[10] == probe_recvbuf[2]) { - LOG_TRACE("Probed TLS %d.%d connection", (int) probe_recvbuf[1], (int) probe_recvbuf[2]); - - net_con_ssl_handshake(con, NET_CON_SSL_MODE_SERVER); + if (probe->hub->config->tls_enable) + { + LOG_TRACE("Probed TLS %d.%d connection", (int) probe_recvbuf[1], (int) probe_recvbuf[2]); + net_con_ssl_handshake(con, NET_CON_SSL_MODE_SERVER); + } + else + { + LOG_TRACE("Probed TLS %d.%d connection. TLS disabled in hub.", (int) probe_recvbuf[1], (int) probe_recvbuf[2]); + probe_destroy(probe); + } return; } #endif diff --git a/src/network/connection.c b/src/network/connection.c index 60f3514..6228131 100644 --- a/src/network/connection.c +++ b/src/network/connection.c @@ -142,7 +142,7 @@ static void net_con_event(int fd, short ev, void *arg) } else { - CALLBACK((con, events); + CALLBACK(con, events); } } else @@ -523,7 +523,7 @@ ssize_t net_con_ssl_connect(struct net_connection* con) return handle_openssl_error(con, ret); } return ret; -// } +} ssize_t net_con_ssl_handshake(struct net_connection* con, int ssl_mode) {