]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
qtest: Run both client and server during connect
authorTomas Mraz <tomas@openssl.org>
Tue, 15 Aug 2023 18:53:32 +0000 (20:53 +0200)
committerTomas Mraz <tomas@openssl.org>
Tue, 22 Aug 2023 10:31:46 +0000 (12:31 +0200)
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Hugo Landau <hlandau@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/21713)

test/helpers/quictestlib.c

index c95629633008d3a4c9c404c7448513f8832fc1f9..be98e205ffc1d31ef74f6f2dd248957da6f11857 100644 (file)
@@ -251,7 +251,7 @@ static void run_server_thread(void)
 
 int qtest_create_quic_connection(QUIC_TSERVER *qtserv, SSL *clientssl)
 {
-    int retc = -1, rets = 0, err, abortctr = 0, ret = 0;
+    int retc = -1, rets = 0, abortctr = 0, ret = 0;
     int clienterr = 0, servererr = 0;
 #if defined(OPENSSL_THREADS) && !defined(CRYPTO_TDEBUG)
     /*
@@ -284,17 +284,19 @@ int qtest_create_quic_connection(QUIC_TSERVER *qtserv, SSL *clientssl)
     }
 
     do {
-        err = SSL_ERROR_WANT_WRITE;
-        while (!clienterr && retc <= 0 && err == SSL_ERROR_WANT_WRITE) {
+        if (!clienterr && retc <= 0) {
+            int err;
+
             retc = SSL_connect(clientssl);
-            if (retc <= 0)
+            if (retc <= 0) {
                 err = SSL_get_error(clientssl, retc);
-        }
 
-        if (!clienterr && retc <= 0 && err != SSL_ERROR_WANT_READ) {
-            TEST_info("SSL_connect() failed %d, %d", retc, err);
-            TEST_openssl_errors();
-            clienterr = 1;
+                if (err != SSL_ERROR_WANT_READ && err != SSL_ERROR_WANT_WRITE) {
+                    TEST_info("SSL_connect() failed %d, %d", retc, err);
+                    TEST_openssl_errors();
+                    clienterr = 1;
+                }
+            }
         }
 
         /*