diff options
author | Dr. Stephen Henson <steve@openssl.org> | 2009-06-05 14:59:26 +0000 |
---|---|---|
committer | Dr. Stephen Henson <steve@openssl.org> | 2009-06-05 14:59:26 +0000 |
commit | 58f41a926a73bd5c49beb91991b486d4e0b544f5 (patch) | |
tree | 8d2cd903536ebd79dfb8c315727c6583fef3157d /crypto/bio | |
parent | 81d06ef2fd64512e3833a13bedc004802003fbfa (diff) |
Updates from 1.0.0-stable
Diffstat (limited to 'crypto/bio')
-rw-r--r-- | crypto/bio/bss_dgram.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/crypto/bio/bss_dgram.c b/crypto/bio/bss_dgram.c index 2e1a6fac33..027cdf943b 100644 --- a/crypto/bio/bss_dgram.c +++ b/crypto/bio/bss_dgram.c @@ -217,12 +217,19 @@ static void dgram_adjust_rcv_timeout(BIO *b) timeleft.tv_usec += 1000000; } + if (timeleft.tv_sec < 0) + { + timeleft.tv_sec = 0; + timeleft.tv_usec = 1; + } + /* Adjust socket timeout if next handhake message timer * will expire earlier. */ - if (data->socket_timeout.tv_sec < timeleft.tv_sec || + if ((data->socket_timeout.tv_sec == 0 && data->socket_timeout.tv_usec == 0) || + (data->socket_timeout.tv_sec > timeleft.tv_sec) || (data->socket_timeout.tv_sec == timeleft.tv_sec && - data->socket_timeout.tv_usec <= timeleft.tv_usec)) + data->socket_timeout.tv_usec >= timeleft.tv_usec)) { #ifdef OPENSSL_SYS_WINDOWS timeout = timeleft.tv_sec * 1000 + timeleft.tv_usec / 1000; |