]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Limit the number of requests sent per connection in DoH tests
authorArtem Boldariev <artem@boldariev.com>
Wed, 28 Jul 2021 16:30:30 +0000 (19:30 +0300)
committerArtem Boldariev <artem@boldariev.com>
Thu, 12 Aug 2021 11:28:16 +0000 (14:28 +0300)
This commit ensures that only a limited number of requests is going to
be sent over a single HTTP/2 connection. Before that change was
introduced, it was possible to complete all of the planned sends via
only one transport connection, which undermines the purpose of the
tests using the quota facility.

lib/isc/tests/doh_test.c

index 198c7bfc230fdf6f3134e14c7251987713cdce2a..e4f59ce7fdf8f375ce343ec582c86c7c3caae885 100644 (file)
@@ -725,7 +725,7 @@ doh_receive_send_reply_cb(isc_nmhandle_t *handle, isc_result_t eresult,
                int_fast64_t sends = atomic_fetch_sub(&nsends, 1);
                atomic_fetch_add(&csends, 1);
                atomic_fetch_add(&creads, 1);
-               if (sends > 0) {
+               if (sends > 0 && cbarg == NULL) {
                        size_t i;
                        for (i = 0; i < NWRITES / 2; i++) {
                                eresult = isc__nm_http_request(
@@ -733,7 +733,7 @@ doh_receive_send_reply_cb(isc_nmhandle_t *handle, isc_result_t eresult,
                                        &(isc_region_t){
                                                .base = (uint8_t *)send_msg.base,
                                                .length = send_msg.len },
-                                       doh_receive_send_reply_cb, cbarg);
+                                       doh_receive_send_reply_cb, (void *)1);
                                if (eresult == ISC_R_CANCELED) {
                                        break;
                                }