}
#endif
#ifdef HAVE_NGTCP2
- if(!(daemon->listen_quic_sslctx = quic_sslctx_create(
- cfg->ssl_service_key, cfg->ssl_service_pem, NULL))) {
- fatal_exit("could not set up quic SSL_CTX");
+ if(cfg_has_quic(cfg)) {
+ if(!(daemon->listen_quic_sslctx = quic_sslctx_create(
+ cfg->ssl_service_key, cfg->ssl_service_pem, NULL))) {
+ fatal_exit("could not set up quic SSL_CTX");
+ }
}
#endif /* HAVE_NGTCP2 */
}
20 January 2025: Yorgos
- Merge #1222: Unique DoT and DoH SSL contexts to allow for different
ALPN.
+ - Create the quic SSL listening context only when needed.
15 January 2025: Yorgos
- Merge #1221: Consider auth zones when checking for forwarders.
return 0;
#endif
}
+
+/** see if config contains quic turned on */
+int
+cfg_has_quic(struct config_file* cfg)
+{
+#ifndef HAVE_NGTCP2
+ (void)cfg;
+ return 0;
+#else
+ int i;
+ char portbuf[32];
+ snprintf(portbuf, sizeof(portbuf), "%d", cfg->port);
+ for(i = 0; i<cfg->num_ifs; i++) {
+ if(if_is_quic(cfg->ifs[i], portbuf, cfg->quic_port))
+ return 1;
+ }
+ return 0;
+#endif
+}
/** see if interface is quic, its port number == the quic port number */
int if_is_quic(const char* ifname, const char* port, int quic_port);
+/**
+ * Return true if the config contains settings that enable quic.
+ * @param cfg: config information.
+ * @return true if quic ports are used for server.
+ */
+int cfg_has_quic(struct config_file* cfg);
+
#ifdef USE_LINUX_IP_LOCAL_PORT_RANGE
#define LINUX_IP_LOCAL_PORT_RANGE_PATH "/proc/sys/net/ipv4/ip_local_port_range"
#endif