From 2a28c7389c4512824b8105b11419f68e4b8cd148 Mon Sep 17 00:00:00 2001
From: "W.C.A. Wijngaards" <wouter@nlnetlabs.nl>
Date: Mon, 14 Oct 2024 13:53:55 +0200
Subject: [PATCH] - Fix dnsoverquic to extend the number of streams when one is
 closed.

---
 doc/Changelog             | 1 +
 services/listen_dnsport.c | 3 +++
 2 files changed, 4 insertions(+)

diff --git a/doc/Changelog b/doc/Changelog
index 620f06b07..e759188ae 100644
--- a/doc/Changelog
+++ b/doc/Changelog
@@ -1,6 +1,7 @@
 14 October 2024: Wouter
 	- Fix to display warning if quic-port is set but dnsoverquic is not
 	  enabled when compiled.
+	- Fix dnsoverquic to extend the number of streams when one is closed.
 
 11 October 2024: Wouter
 	- Fix to disable detection of quic configured ports when quic is
diff --git a/services/listen_dnsport.c b/services/listen_dnsport.c
index 078a344d3..5dbac3650 100644
--- a/services/listen_dnsport.c
+++ b/services/listen_dnsport.c
@@ -3929,6 +3929,9 @@ doq_stream_close(struct doq_conn* conn, struct doq_stream* stream,
 		}
 		doq_conn_write_enable(conn);
 	}
+	verbose(VERB_ALGO, "doq: conn extend max streams bidi by 1");
+	ngtcp2_conn_extend_max_streams_bidi(conn->conn, 1);
+	doq_conn_write_enable(conn);
 	doq_stream_remove_in_buffer(stream, conn->doq_socket->table);
 	doq_stream_remove_out_buffer(stream, conn->doq_socket->table);
 	doq_table_quic_size_subtract(conn->doq_socket->table, sizeof(*stream));