  #if (NGX_HAVE_KQUEUE)
  
      if (ngx_event_flags & NGX_USE_KQUEUE_EVENT) {
-@@ -3563,7 +3679,15 @@ ngx_http_close_request(ngx_http_request_t *r, ngx_int_t rc)
+@@ -3563,7 +3680,15 @@ ngx_http_close_request(ngx_http_request_t *r, ngx_int_t rc)
      }
  #endif
  

 src/http/ngx_http.h                     |    4 +
 src/http/ngx_http_core_module.c         |    7 +
 src/http/ngx_http_core_module.h         |    3 +
 src/http/ngx_http_request.c             |  143 +-
 src/http/ngx_http_request.h             |    3 +
 src/http/ngx_http_request_body.c        |   29 +
 src/http/ngx_http_upstream.c            |   13 +

 
 static char *ngx_http_client_errors[] = {
 
@@ -349,6 +353,19 @@ ngx_http_init_connection(ngx_connection_t *c)
         c->log->action = "reading PROXY protocol";
     }
 
+#if (NGX_HTTP_V3)
+    if (hc->addr_conf->quic) {
+        hc->quic = 1;
+        c->log->action = "QUIC handshaking";
+
+        /* We already have a UDP packet in the connection buffer, so we don't
+         * need to wait for another read event to kick-off the handshake. */
