]> git.kaiwu.me - nginx.git/commitdiff
QUIC: eliminated connection handler argument in ngx_quic_run().
authorRoman Arutyunyan <arut@nginx.com>
Tue, 21 Jul 2020 20:08:23 +0000 (23:08 +0300)
committerRoman Arutyunyan <arut@nginx.com>
Tue, 21 Jul 2020 20:08:23 +0000 (23:08 +0300)
Now c->listening->handler() is called instead.

src/event/ngx_event_quic.c
src/event/ngx_event_quic.h
src/http/ngx_http_request.c
src/stream/ngx_stream_handler.c

index 16035bfb5faeac89f5594d9da8429697c0bb8d9f..202c0082aa0eb3ac0f7a5095e33f24e509dfc478 100644 (file)
@@ -36,7 +36,6 @@
 typedef struct {
     ngx_rbtree_t                      tree;
     ngx_rbtree_node_t                 sentinel;
-    ngx_connection_handler_pt         handler;
 
     ngx_uint_t                        id_counter;
 
@@ -162,8 +161,7 @@ static int ngx_quic_send_alert(ngx_ssl_conn_t *ssl_conn,
 
 
 static ngx_int_t ngx_quic_new_connection(ngx_connection_t *c, ngx_ssl_t *ssl,
-    ngx_quic_conf_t *conf, ngx_quic_header_t *pkt,
-    ngx_connection_handler_pt handler);
+    ngx_quic_conf_t *conf, ngx_quic_header_t *pkt);
 static ngx_int_t ngx_quic_new_dcid(ngx_connection_t *c, ngx_str_t *odcid);
 static ngx_int_t ngx_quic_retry(ngx_connection_t *c);
 static ngx_int_t ngx_quic_new_token(ngx_connection_t *c, ngx_str_t *token);
@@ -587,8 +585,7 @@ ngx_quic_send_alert(ngx_ssl_conn_t *ssl_conn, enum ssl_encryption_level_t level,
 
 
 void
-ngx_quic_run(ngx_connection_t *c, ngx_ssl_t *ssl, ngx_quic_conf_t *conf,
-    ngx_connection_handler_pt handler)
+ngx_quic_run(ngx_connection_t *c, ngx_ssl_t *ssl, ngx_quic_conf_t *conf)
 {
     ngx_buf_t          *b;
     ngx_quic_header_t   pkt;
@@ -606,7 +603,7 @@ ngx_quic_run(ngx_connection_t *c, ngx_ssl_t *ssl, ngx_quic_conf_t *conf,
     pkt.data = b->start;
     pkt.len = b->last - b->start;
 
-    if (ngx_quic_new_connection(c, ssl, conf, &pkt, handler) != NGX_OK) {
+    if (ngx_quic_new_connection(c, ssl, conf, &pkt) != NGX_OK) {
         ngx_quic_close_connection(c, NGX_ERROR);
         return;
     }
@@ -622,8 +619,7 @@ ngx_quic_run(ngx_connection_t *c, ngx_ssl_t *ssl, ngx_quic_conf_t *conf,
 
 static ngx_int_t
 ngx_quic_new_connection(ngx_connection_t *c, ngx_ssl_t *ssl,
-    ngx_quic_conf_t *conf, ngx_quic_header_t *pkt,
-    ngx_connection_handler_pt handler)
+    ngx_quic_conf_t *conf, ngx_quic_header_t *pkt)
 {
     ngx_int_t               rc;
     ngx_uint_t              i;
@@ -708,7 +704,6 @@ ngx_quic_new_connection(ngx_connection_t *c, ngx_ssl_t *ssl,
     qc->ssl = ssl;
     qc->conf = conf;
     qc->tp = conf->tp;
-    qc->streams.handler = handler;
 
     ctp = &qc->ctp;
     ctp->max_udp_payload_size = ngx_quic_max_udp_payload(c);
@@ -2949,7 +2944,7 @@ ngx_quic_handle_stream_frame(ngx_connection_t *c, ngx_quic_header_t *pkt,
             ngx_quic_handle_max_streams(c);
         }
 
-        qc->streams.handler(sn->c);
+        sn->c->listening->handler(sn->c);
 
         if (f->offset == 0) {
             return NGX_OK;
index 151e15cc588f845afd64d078549c022314319081..a56ead27261e117ae9728406c050e6add38ced22 100644 (file)
@@ -112,8 +112,7 @@ struct ngx_quic_stream_s {
 };
 
 
-void ngx_quic_run(ngx_connection_t *c, ngx_ssl_t *ssl, ngx_quic_conf_t *conf,
-    ngx_connection_handler_pt handler);
+void ngx_quic_run(ngx_connection_t *c, ngx_ssl_t *ssl, ngx_quic_conf_t *conf);
 ngx_connection_t *ngx_quic_create_uni_stream(ngx_connection_t *c);
 void ngx_quic_finalize_connection(ngx_connection_t *c, ngx_uint_t err,
     const char *reason);
index bfa8e11c5da173f96a2c5114b5d47de50c8e94d8..9b6d461e0653641732429624e765bdb1ad6d6126 100644 (file)
@@ -336,7 +336,7 @@ ngx_http_init_connection(ngx_connection_t *c)
             sscf = ngx_http_get_module_srv_conf(hc->conf_ctx,
                                                 ngx_http_ssl_module);
 
-            ngx_quic_run(c, &sscf->ssl, qcf, ngx_http_init_connection);
+            ngx_quic_run(c, &sscf->ssl, qcf);
             return;
         }
     }
index 672de85ac4659ffc37afd7dd02c1efac1e6f51a0..2b0848a67554c1bcab1c374fcdb386deabbc2c5c 100644 (file)
@@ -129,7 +129,7 @@ ngx_stream_init_connection(ngx_connection_t *c)
             scf = ngx_stream_get_module_srv_conf(addr_conf->ctx,
                                                  ngx_stream_ssl_module);
 
-            ngx_quic_run(c, &scf->ssl, qcf, ngx_stream_init_connection);
+            ngx_quic_run(c, &scf->ssl, qcf);
             return;
         }
     }