CLEANUP: quic: fix headers

Clean up quic sources by adjusting headers list included depending
on the actual dependency of each source file.

On some occasion, xprt_quic.h was removed from included list. This is
useful to help reducing the dependency on this single file and cleaning
up QUIC haproxy architecture.

This should be backported up to 2.6.
diff --git a/include/haproxy/listener-t.h b/include/haproxy/listener-t.h
index c8e4b74..17f3251 100644
--- a/include/haproxy/listener-t.h
+++ b/include/haproxy/listener-t.h
@@ -29,12 +29,12 @@
 
 #include <haproxy/api-t.h>
 #include <haproxy/obj_type-t.h>
+#include <haproxy/quic_cc-t.h>
+#include <haproxy/quic_tp-t.h>
 #include <haproxy/receiver-t.h>
 #include <haproxy/stats-t.h>
 #include <haproxy/thread.h>
 
-#include <haproxy/xprt_quic-t.h>
-
 /* Some pointer types reference below */
 struct task;
 struct protocol;
diff --git a/include/haproxy/mux_quic.h b/include/haproxy/mux_quic.h
index 7d3e47e..14de1e0 100644
--- a/include/haproxy/mux_quic.h
+++ b/include/haproxy/mux_quic.h
@@ -6,13 +6,11 @@
 #error "Must define USE_OPENSSL"
 #endif
 
-#include <import/eb64tree.h>
-
 #include <haproxy/api.h>
 #include <haproxy/connection.h>
+#include <haproxy/list.h>
 #include <haproxy/mux_quic-t.h>
 #include <haproxy/stream.h>
-#include <haproxy/xprt_quic-t.h>
 
 struct qcs *qcc_init_stream_local(struct qcc *qcc, int bidi);
 struct buffer *qc_get_buf(struct qcs *qcs, struct buffer *bptr);
diff --git a/include/haproxy/quic_cc.h b/include/haproxy/quic_cc.h
index be92336..7bc0d6a 100644
--- a/include/haproxy/quic_cc.h
+++ b/include/haproxy/quic_cc.h
@@ -27,6 +27,7 @@
 #endif
 
 #include <haproxy/api.h>
+#include <haproxy/buf.h>
 #include <haproxy/chunk.h>
 #include <haproxy/quic_cc-t.h>
 #include <haproxy/xprt_quic-t.h>
diff --git a/include/haproxy/quic_tls.h b/include/haproxy/quic_tls.h
index 4045896..afe193d 100644
--- a/include/haproxy/quic_tls.h
+++ b/include/haproxy/quic_tls.h
@@ -20,9 +20,11 @@
 #define TRACE_SOURCE &trace_quic
 
 #include <stdlib.h>
+#include <string.h>
 #include <openssl/ssl.h>
 
 #include <haproxy/dynbuf.h>
+#include <haproxy/pool.h>
 #include <haproxy/quic_tls-t.h>
 #include <haproxy/trace.h>
 #include <haproxy/xprt_quic.h>
diff --git a/include/haproxy/server-t.h b/include/haproxy/server-t.h
index 88302ca..ac287df 100644
--- a/include/haproxy/server-t.h
+++ b/include/haproxy/server-t.h
@@ -35,11 +35,11 @@
 #include <haproxy/listener-t.h>
 #include <haproxy/obj_type-t.h>
 #include <haproxy/queue-t.h>
+#include <haproxy/quic_tp-t.h>
 #include <haproxy/resolvers-t.h>
 #include <haproxy/stats-t.h>
 #include <haproxy/task-t.h>
 #include <haproxy/thread-t.h>
-#include <haproxy/xprt_quic-t.h>
 
 
 /* server states. Only SRV_ST_STOPPED indicates a down server. */
diff --git a/src/cfgparse.c b/src/cfgparse.c
index 0c865c8..0cf0485 100644
--- a/src/cfgparse.c
+++ b/src/cfgparse.c
@@ -89,7 +89,6 @@
 #include <haproxy/thread.h>
 #include <haproxy/tools.h>
 #include <haproxy/uri_auth-t.h>
-#include <haproxy/xprt_quic.h>
 
 
 /* Used to chain configuration sections definitions. This list
diff --git a/src/h3.c b/src/h3.c
index b8a8f36..fe3d15e 100644
--- a/src/h3.c
+++ b/src/h3.c
@@ -16,12 +16,17 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
+#include <import/ist.h>
+
+#include <haproxy/api.h>
 #include <haproxy/buf.h>
+#include <haproxy/chunk.h>
 #include <haproxy/connection.h>
 #include <haproxy/dynbuf.h>
 #include <haproxy/h3.h>
 #include <haproxy/h3_stats.h>
 #include <haproxy/http.h>
+#include <haproxy/http-hdr-t.h>
 #include <haproxy/http_htx.h>
 #include <haproxy/htx.h>
 #include <haproxy/intops.h>
@@ -31,6 +36,7 @@
 #include <haproxy/qpack-dec.h>
 #include <haproxy/qpack-enc.h>
 #include <haproxy/quic_enc.h>
+#include <haproxy/stats-t.h>
 #include <haproxy/tools.h>
 #include <haproxy/trace.h>
 #include <haproxy/xprt_quic.h>
@@ -1175,6 +1181,7 @@
 	h3c->id_goaway = 0;
 
 	qcc->ctx = h3c;
+	/* TODO cleanup only ref to quic_conn */
 	h3c->prx_counters =
 		EXTRA_COUNTERS_GET(qc->li->bind_conf->frontend->extra_counters_fe,
 		                   &h3_stats_module);
diff --git a/src/proto_quic.c b/src/proto_quic.c
index 2032373..78a235a 100644
--- a/src/proto_quic.c
+++ b/src/proto_quic.c
@@ -24,6 +24,8 @@
 #include <netinet/udp.h>
 #include <netinet/in.h>
 
+#include <import/ebtree-t.h>
+
 #include <haproxy/api.h>
 #include <haproxy/arg.h>
 #include <haproxy/cbuf.h>
@@ -40,9 +42,10 @@
 #include <haproxy/proto_quic.h>
 #include <haproxy/proto_udp.h>
 #include <haproxy/proxy-t.h>
-#include <haproxy/sock.h>
 #include <haproxy/quic_sock.h>
+#include <haproxy/sock.h>
 #include <haproxy/sock_inet.h>
+#include <haproxy/task.h>
 #include <haproxy/tools.h>
 #include <haproxy/xprt_quic.h>
 
diff --git a/src/qmux_trace.c b/src/qmux_trace.c
index 72a8f1b..7899bff 100644
--- a/src/qmux_trace.c
+++ b/src/qmux_trace.c
@@ -5,6 +5,7 @@
 #include <haproxy/connection.h>
 #include <haproxy/chunk.h>
 #include <haproxy/mux_quic.h>
+#include <haproxy/quic_frame-t.h>
 
 /* trace source and events */
 static void qmux_trace(enum trace_level level, uint64_t mask,
diff --git a/src/quic_cc.c b/src/quic_cc.c
index 16555e0..8fd99d3 100644
--- a/src/quic_cc.c
+++ b/src/quic_cc.c
@@ -20,10 +20,7 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
-#include <haproxy/buf.h>
-#include <haproxy/quic_cc-t.h>
-#include <haproxy/xprt_quic-t.h>
-
+#include <haproxy/quic_cc.h>
 
 struct quic_cc_algo *default_quic_cc_algo = &quic_cc_algo_cubic;
 
diff --git a/src/quic_cc_newreno.c b/src/quic_cc_newreno.c
index 89a0524..1fd92a5 100644
--- a/src/quic_cc_newreno.c
+++ b/src/quic_cc_newreno.c
@@ -20,6 +20,9 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
+#include <haproxy/api-t.h>
+#include <haproxy/buf.h>
+#include <haproxy/chunk.h>
 #include <haproxy/quic_cc.h>
 #include <haproxy/trace.h>
 #include <haproxy/xprt_quic.h>
diff --git a/src/quic_frame.c b/src/quic_frame.c
index 58e9ebc..cc4039e 100644
--- a/src/quic_frame.c
+++ b/src/quic_frame.c
@@ -7,8 +7,12 @@
  * 2 of the License, or (at your option) any later version.
  */
 
+#include <string.h>
+
 #include <import/eb64tree.h>
+#include <haproxy/quic_enc.h>
 #include <haproxy/quic_frame.h>
+#include <haproxy/quic_tp-t.h>
 #include <haproxy/trace.h>
 #include <haproxy/xprt_quic.h>
 
diff --git a/src/quic_loss.c b/src/quic_loss.c
index 57a6021..6f454f4 100644
--- a/src/quic_loss.c
+++ b/src/quic_loss.c
@@ -4,6 +4,7 @@
 #include <haproxy/xprt_quic-t.h>
 
 #include <haproxy/atomic.h>
+#include <haproxy/list.h>
 #include <haproxy/ticks.h>
 #include <haproxy/trace.h>
 
diff --git a/src/quic_sock.c b/src/quic_sock.c
index 1fabc1b..26fb1e3 100644
--- a/src/quic_sock.c
+++ b/src/quic_sock.c
@@ -11,15 +11,28 @@
  */
 
 #include <errno.h>
+#include <stdlib.h>
+#include <string.h>
 
 #include <sys/socket.h>
 #include <sys/types.h>
 
+#include <haproxy/api.h>
+#include <haproxy/buf.h>
 #include <haproxy/connection.h>
+#include <haproxy/fd.h>
+#include <haproxy/freq_ctr.h>
+#include <haproxy/global-t.h>
+#include <haproxy/list.h>
 #include <haproxy/listener.h>
+#include <haproxy/pool.h>
 #include <haproxy/proto_quic.h>
+#include <haproxy/proxy-t.h>
 #include <haproxy/quic_sock.h>
+#include <haproxy/quic_tp-t.h>
 #include <haproxy/session.h>
+#include <haproxy/stats-t.h>
+#include <haproxy/task.h>
 #include <haproxy/tools.h>
 #include <haproxy/xprt_quic.h>
 
diff --git a/src/quic_stats.c b/src/quic_stats.c
index 529e245..c817129 100644
--- a/src/quic_stats.c
+++ b/src/quic_stats.c
@@ -1,3 +1,4 @@
+#include <haproxy/quic_frame-t.h>
 #include <haproxy/quic_stats-t.h>
 #include <haproxy/stats.h>
 
diff --git a/src/quic_stream.c b/src/quic_stream.c
index abd977c..255796b 100644
--- a/src/quic_stream.c
+++ b/src/quic_stream.c
@@ -4,9 +4,11 @@
 
 #include <haproxy/api.h>
 #include <haproxy/buf.h>
-#include <haproxy/list.h>
 #include <haproxy/dynbuf.h>
+#include <haproxy/list.h>
+#include <haproxy/mux_quic-t.h>
 #include <haproxy/pool.h>
+#include <haproxy/task.h>
 #include <haproxy/xprt_quic.h>
 
 DECLARE_STATIC_POOL(pool_head_quic_stream_desc, "qc_stream_desc",
diff --git a/src/quic_tls.c b/src/quic_tls.c
index 28c7d75..069aa41 100644
--- a/src/quic_tls.c
+++ b/src/quic_tls.c
@@ -2,13 +2,13 @@
 
 #include <string.h>
 
-#include <openssl/ssl.h>
-
 #include <openssl/evp.h>
 #include <openssl/kdf.h>
+#include <openssl/ssl.h>
 
 #include <haproxy/buf.h>
 #include <haproxy/chunk.h>
+#include <haproxy/pool.h>
 #include <haproxy/xprt_quic.h>
 
 
diff --git a/src/quic_tp.c b/src/quic_tp.c
index ca77289..b51ab3f 100644
--- a/src/quic_tp.c
+++ b/src/quic_tp.c
@@ -1,3 +1,6 @@
+#include <arpa/inet.h>
+#include <string.h>
+
 #include <haproxy/global.h>
 #include <haproxy/ncbuf-t.h>
 #include <haproxy/net_helper.h>