Commit 6f6da2fe authored by Matt Caswell's avatar Matt Caswell
Browse files

Fix s_client and s_server so that they correctly handle the DTLS timer

parent f20404fc
Loading
Loading
Loading
Loading
+2 −5
Original line number Diff line number Diff line
@@ -2703,8 +2703,7 @@ int s_client_main(int argc, char **argv)
        FD_ZERO(&readfds);
        FD_ZERO(&writefds);

        if ((SSL_version(con) == DTLS1_VERSION) &&
            DTLSv1_get_timeout(con, &timeout))
        if (SSL_is_dtls(con) && DTLSv1_get_timeout(con, &timeout))
            timeoutp = &timeout;
        else
            timeoutp = NULL;
@@ -2815,10 +2814,8 @@ int s_client_main(int argc, char **argv)
            }
        }

        if ((SSL_version(con) == DTLS1_VERSION)
            && DTLSv1_handle_timeout(con) > 0) {
        if (SSL_is_dtls(con) && DTLSv1_handle_timeout(con) > 0)
            BIO_printf(bio_err, "TIMEOUT occurred\n");
        }

        if (!ssl_pending && FD_ISSET(SSL_get_fd(con), &writefds)) {
            k = SSL_write(con, &(cbuf[cbuf_off]), (unsigned int)cbuf_len);
+2 −5
Original line number Diff line number Diff line
@@ -2398,18 +2398,15 @@ static int sv_body(int s, int stype, int prot, unsigned char *context)
            if ((i < 0) || (!i && !read_from_terminal))
                continue;
#else
            if ((SSL_version(con) == DTLS1_VERSION) &&
                DTLSv1_get_timeout(con, &timeout))
            if (SSL_is_dtls(con) && DTLSv1_get_timeout(con, &timeout))
                timeoutp = &timeout;
            else
                timeoutp = NULL;

            i = select(width, (void *)&readfds, NULL, NULL, timeoutp);

            if ((SSL_version(con) == DTLS1_VERSION)
                && DTLSv1_handle_timeout(con) > 0) {
            if ((SSL_is_dtls(con)) && DTLSv1_handle_timeout(con) > 0)
                BIO_printf(bio_err, "TIMEOUT occurred\n");
            }

            if (i <= 0)
                continue;