﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	uname	nginx_version
2515	Can't build QUIC binaries for windows	sonqor@…		"I have tried to build Nginx from sources for Windows using either [https://github.com/quictls/openssl.git 'quictls (openssl-OpenSSL_1_1_1u-quic1)'] or [https://github.com/openssl/openssl.git 'openssl (openssl-OpenSSL_1_1_1u)'] with '--with-http_v3_module' parameter. But the following fatal error will be occurred each time:

{{{
C:\Users\moham\Downloads\nginx\src\event\quic\ngx_event_quic_connection.h(109): error C2079: 'udp' uses undefined struct 'ngx_udp_connection_s'
src/event/quic/ngx_event_quic.c(436): error C2037: left of 'buffer' specifies undefined struct/union 'ngx_udp_connection_s'
NMAKE : fatal error U1077: 'cl -c -O2  -W3 -WX -nologo -MT -Zi -Fdobjs/nginx.pdb -DFD_SETSIZE=1024 -DNO_SYS_TYPES_H -Yungx_config.h -Fpobjs/ngx_config.pch -I src/core  -I src/event  -I src/event/modules  -I src/event/quic  -I src/os/win32  -I objs/lib/pcre  -I objs/lib/openssl/openssl/include  -I objs/lib/zlib  -I objs  -I src/http  -I src/http/modules  -I src/http/v2  -I src/http/v3  -I src/mail  -I src/stream  -Foobjs/src/event/quic/ngx_event_quic.obj  src/event/quic/ngx_event_quic.c' : return code '0x2'
Stop.
}}}

But if I want to build nginx without '--with-http_v3_module' parameter, the building process will be successful:


{{{
$> nginx -V

nginx version: nginx/1.25.1
built by cl 19.36
built with OpenSSL 1.1.1u+quic  30 May 2023
TLS SNI support enabled
configure arguments: --with-cc=cl --builddir=objs --with-debug --prefix= --conf-path=conf/nginx.conf --pid-path=logs/nginx.pid --http-log-path=logs/access.log --error-log-path=logs/error.log --sbin-path=nginx.exe --http-client-body-temp-path=temp/client_body_temp --http-proxy-temp-path=temp/proxy_temp --http-fastcgi-temp-path=temp/fastcgi_temp --http-scgi-temp-path=temp/scgi_temp --http-uwsgi-temp-path=temp/uwsgi_temp --with-cc-opt=-DFD_SETSIZE=1024 --with-pcre=objs/lib/pcre --with-zlib=objs/lib/zlib --with-http_v2_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_stub_status_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_auth_request_module --with-http_random_index_module --with-http_secure_link_module --with-http_slice_module --with-mail --with-stream --with-openssl=objs/lib/quictls --with-openssl-opt='no-asm no-tests -D_WIN32_WINNT=0x0501' --with-http_ssl_module --with-mail_ssl_module --with-stream_ssl_module
}}}

I want to know what's wrong with the HTTP/3 QUIC module in windows? Especially in below paths:

**src/event/quic/ngx_event_quic_connection.h(109)
src/event/quic/ngx_event_quic.c(436)**

In other words, when QUIC will be supported on the Windows operating system? Because the official documentations in [https://nginx.org/en/docs/quic.html Nginx.org] has noted that QUIC is only available in Linux builds:
''Support for QUIC and HTTP/3 protocols is available since 1.25.0. Also, since 1.25.0, the QUIC and HTTP/3 support is available in Linux binary packages.''"	defect	closed	major	nginx-1.26	http/3	1.23.x	invalid	QUIC HTTP/3	sonqor@…	CL v19.36	"nginx version: nginx/1.25.1
built by cl 19.36
built with OpenSSL 1.1.1u+quic  30 May 2023
TLS SNI support enabled
configure arguments: --with-cc=cl --builddir=objs --with-debug --prefix= --conf-path=conf/nginx.conf --pid-path=logs/nginx.pid --http-log-path=logs/access.log --error-log-path=logs/error.log --sbin-path=nginx.exe --http-client-body-temp-path=temp/client_body_temp --http-proxy-temp-path=temp/proxy_temp --http-fastcgi-temp-path=temp/fastcgi_temp --http-scgi-temp-path=temp/scgi_temp --http-uwsgi-temp-path=temp/uwsgi_temp --with-cc-opt=-DFD_SETSIZE=1024 --with-pcre=objs/lib/pcre --with-zlib=objs/lib/zlib --with-http_v2_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_stub_status_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_auth_request_module --with-http_random_index_module --with-http_secure_link_module --with-http_slice_module --with-mail --with-stream --with-openssl=objs/lib/quictls --with-openssl-opt='no-asm no-tests -D_WIN32_WINNT=0x0501' --with-http_ssl_module --with-mail_ssl_module --with-stream_ssl_module"
