From 86d1d08fa96080149b210d7cf2e744e1e62a7919 Mon Sep 17 00:00:00 2001 From: "7u83@mail.ru" <7u83@mail.ru@noemail.net> Date: Sun, 8 Feb 2015 13:00:29 +0000 Subject: [PATCH] Improved connect procedure + debugging. FossilOrigin-Name: f49750b6c69bcd8034fe4da04bc2fb65e1f2ac9ecda34b45e69a7bb3d33103fc --- src/capwap/dtls_openssl_connect.c | 45 ++++++------------------------- 1 file changed, 8 insertions(+), 37 deletions(-) diff --git a/src/capwap/dtls_openssl_connect.c b/src/capwap/dtls_openssl_connect.c index 75cdb69b..52966add 100644 --- a/src/capwap/dtls_openssl_connect.c +++ b/src/capwap/dtls_openssl_connect.c @@ -2,6 +2,7 @@ #include "dtls_openssl.h" #include "cw_log.h" +#include "cw_util.h" /* static BIO_METHOD bio_methods = { @@ -53,55 +54,25 @@ int dtls_openssl_connect(struct conn *conn) // if (conn->dtls_psk) // SSL_set_psk_client_callback(d->ssl, psk_client_cb); - -// dtls_openssl_set_certs(conn,d); - - if (conn->dtls_cert_file && conn->dtls_key_file) { - } -// char errstr[256]; int rc; -// do{ -printf("Calling SSL connect\n"); - rc = SSL_connect(d->ssl); -printf("Back from SSL connect\n"); -exit(0); -/* - - if (rc <= 0){ - int e; - e = SSL_get_error(d->ssl,rc); - printf("Get Err %i\n",e); - - - printf("SSL Connect rc = %i\n",rc); - e = ERR_get_error(); - ERR_error_string(e,errstr); - cw_log(LOG_ERR,"SSL_connect %s",errstr); - - - - - } - -*/ + errno =0; + time_t timer = cw_timer_start(10); + do { + rc = SSL_connect(d->ssl); + }while(rc!=1 && errno==EAGAIN && !cw_timer_timeout(timer)); + if (rc == 1) { + cw_dbg(DBG_DTLS,"SSL connect successfull!"); conn->read = dtls_openssl_read; conn->write = dtls_openssl_write; return 1; } -// rc = dtls_openssl_log_error(d->ssl,rc,"DTLS connect"); rc = dtls_openssl_log_error(0, rc, "DTLS connect"); -// } while (rc == 0 ); -// printf("DTLS connect RC: %i\n",rc); - -// int e = ERR_get_error(); -// ERR_error_string(e,errstr); -// cw_log(LOG_ERR,"SSL_accept %s",errstr); return 0;