]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
dnsdist: Handle early data in DoQ/DoH3
authorRemi Gacogne <remi.gacogne@powerdns.com>
Fri, 22 Dec 2023 16:30:16 +0000 (17:30 +0100)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Fri, 22 Dec 2023 16:30:16 +0000 (17:30 +0100)
pdns/dnsdistdist/doh3.cc
pdns/dnsdistdist/doq.cc

index 2f588e97e6100045e70f6c830cf094c631019f22..b6a24d77ced29543d527230d8a726f82e4ef577d 100644 (file)
@@ -885,7 +885,7 @@ static void handleSocketReadable(DOH3Frontend& frontend, ClientState& clientStat
       continue;
     }
 
-    if (quiche_conn_is_established(conn->get().d_conn.get())) {
+    if (quiche_conn_is_established(conn->get().d_conn.get()) || quiche_conn_is_in_early_data(conn->get().d_conn.get())) {
       DEBUGLOG("Connection is established");
 
       if (!conn->get().d_http3) {
index 1eb94520d8b62da8c33efe0baa6713ca0ff85c67..3fed6bb0ad03092c158c895bfebf17aa59c750bc 100644 (file)
@@ -706,7 +706,7 @@ static void handleSocketReadable(DOQFrontend& frontend, ClientState& clientState
       continue;
     }
 
-    if (quiche_conn_is_established(conn->get().d_conn.get())) {
+    if (quiche_conn_is_established(conn->get().d_conn.get()) || quiche_conn_is_in_early_data(conn->get().d_conn.get())) {
       auto readable = std::unique_ptr<quiche_stream_iter, decltype(&quiche_stream_iter_free)>(quiche_conn_readable(conn->get().d_conn.get()), quiche_stream_iter_free);
 
       uint64_t streamID = 0;