if (STATE == STATE0) {
/* first call */
gettime(&session->internals.dtls.handshake_start_time);
+ if (session->internals.handshake_timeout_ms &&
+ session->internals.handshake_endtime == 0)
+ session->internals.handshake_endtime = session->internals.dtls.handshake_start_time.tv_sec +
+ session->internals.handshake_timeout_ms / 1000;
}
- if (session->internals.handshake_timeout_ms &&
- session->internals.handshake_endtime == 0)
- session->internals.handshake_endtime = gnutls_time(0) +
- session->internals.handshake_timeout_ms / 1000;
ret =
_gnutls_epoch_get(session,
inline static int handshake_remaining_time(gnutls_session_t session)
{
if (session->internals.handshake_endtime) {
- time_t now = gnutls_time(0);
- if (now < session->internals.handshake_endtime)
+ struct timespec now;
+ gettime(&now);
+
+ if (now.tv_sec < session->internals.handshake_endtime)
return (session->internals.handshake_endtime -
- now) * 1000;
+ now.tv_sec) * 1000;
else
return gnutls_assert_val(GNUTLS_E_TIMEDOUT);
}