From 5ef168f30582cfd441def20089c1d503128ec159 Mon Sep 17 00:00:00 2001 From: Nanang Izzuddin Date: Sat, 6 Mar 2010 02:04:52 +0000 Subject: Ticket #1043: - Fixed bug of unused timeout setting in Symbian SSL socket, ssl_sock_symbian.cpp. - Added an SSL test scenario of SSL connect timeout, SSL socket client tries to connect to non-SSL socket server. - Fixed OpenSSL-based SSL socket to start SSL timer before TCP connect (was started after TCP connected and before SSL handshake). git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@3117 74dad513-b988-da41-8d7b-12977e46ad98 --- pjlib/src/pj/ssl_sock_ossl.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) (limited to 'pjlib/src/pj/ssl_sock_ossl.c') diff --git a/pjlib/src/pj/ssl_sock_ossl.c b/pjlib/src/pj/ssl_sock_ossl.c index 7fe0c435..3528fe72 100644 --- a/pjlib/src/pj/ssl_sock_ossl.c +++ b/pjlib/src/pj/ssl_sock_ossl.c @@ -1165,7 +1165,7 @@ static void on_timer(pj_timer_heap_t *th, struct pj_timer_entry *te) switch (timer_id) { case TIMER_HANDSHAKE_TIMEOUT: - PJ_LOG(1,(ssock->pool->obj_name, "SSL handshake timeout after %d.%ds", + PJ_LOG(1,(ssock->pool->obj_name, "SSL timeout after %d.%ds", ssock->param.timeout.sec, ssock->param.timeout.msec)); on_handshake_complete(ssock, PJ_ETIMEDOUT); @@ -1607,19 +1607,6 @@ static pj_bool_t asock_on_connect_complete (pj_activesock_t *asock, ssock->write_state.start = ssock->write_state.buf; ssock->write_state.len = 0; - /* Start handshake timer */ - if (ssock->param.timer_heap && (ssock->param.timeout.sec != 0 || - ssock->param.timeout.msec != 0)) - { - pj_assert(ssock->timer.id == TIMER_NONE); - ssock->timer.id = TIMER_HANDSHAKE_TIMEOUT; - status = pj_timer_heap_schedule(ssock->param.timer_heap, - &ssock->timer, - &ssock->param.timeout); - if (status != PJ_SUCCESS) - ssock->timer.id = TIMER_NONE; - } - #ifdef SSL_set_tlsext_host_name /* Set server name to connect */ if (ssock->param.server_name.slen) { @@ -2290,6 +2277,19 @@ PJ_DECL(pj_status_t) pj_ssl_sock_start_connect(pj_ssl_sock_t *ssock, /* Save remote address */ pj_sockaddr_cp(&ssock->rem_addr, remaddr); + /* Start timer */ + if (ssock->param.timer_heap && (ssock->param.timeout.sec != 0 || + ssock->param.timeout.msec != 0)) + { + pj_assert(ssock->timer.id == TIMER_NONE); + ssock->timer.id = TIMER_HANDSHAKE_TIMEOUT; + status = pj_timer_heap_schedule(ssock->param.timer_heap, + &ssock->timer, + &ssock->param.timeout); + if (status != PJ_SUCCESS) + ssock->timer.id = TIMER_NONE; + } + status = pj_activesock_start_connect(ssock->asock, pool, remaddr, addr_len); -- cgit v1.2.3