QUIC: eliminated connection handler argument in ngx_quic_run().

Now c->listening->handler() is called instead.
This commit is contained in:
Roman Arutyunyan 2020-07-21 23:08:23 +03:00
parent 36f2873f6b
commit 3073ad1381
4 changed files with 8 additions and 14 deletions

View File

@ -36,7 +36,6 @@
typedef struct { typedef struct {
ngx_rbtree_t tree; ngx_rbtree_t tree;
ngx_rbtree_node_t sentinel; ngx_rbtree_node_t sentinel;
ngx_connection_handler_pt handler;
ngx_uint_t id_counter; 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, 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_quic_conf_t *conf, ngx_quic_header_t *pkt);
ngx_connection_handler_pt handler);
static ngx_int_t ngx_quic_new_dcid(ngx_connection_t *c, ngx_str_t *odcid); 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_retry(ngx_connection_t *c);
static ngx_int_t ngx_quic_new_token(ngx_connection_t *c, ngx_str_t *token); 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 void
ngx_quic_run(ngx_connection_t *c, ngx_ssl_t *ssl, ngx_quic_conf_t *conf, ngx_quic_run(ngx_connection_t *c, ngx_ssl_t *ssl, ngx_quic_conf_t *conf)
ngx_connection_handler_pt handler)
{ {
ngx_buf_t *b; ngx_buf_t *b;
ngx_quic_header_t pkt; 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.data = b->start;
pkt.len = b->last - 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); ngx_quic_close_connection(c, NGX_ERROR);
return; 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 static ngx_int_t
ngx_quic_new_connection(ngx_connection_t *c, ngx_ssl_t *ssl, ngx_quic_new_connection(ngx_connection_t *c, ngx_ssl_t *ssl,
ngx_quic_conf_t *conf, ngx_quic_header_t *pkt, ngx_quic_conf_t *conf, ngx_quic_header_t *pkt)
ngx_connection_handler_pt handler)
{ {
ngx_int_t rc; ngx_int_t rc;
ngx_uint_t i; ngx_uint_t i;
@ -708,7 +704,6 @@ ngx_quic_new_connection(ngx_connection_t *c, ngx_ssl_t *ssl,
qc->ssl = ssl; qc->ssl = ssl;
qc->conf = conf; qc->conf = conf;
qc->tp = conf->tp; qc->tp = conf->tp;
qc->streams.handler = handler;
ctp = &qc->ctp; ctp = &qc->ctp;
ctp->max_udp_payload_size = ngx_quic_max_udp_payload(c); 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); ngx_quic_handle_max_streams(c);
} }
qc->streams.handler(sn->c); sn->c->listening->handler(sn->c);
if (f->offset == 0) { if (f->offset == 0) {
return NGX_OK; return NGX_OK;

View 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, void ngx_quic_run(ngx_connection_t *c, ngx_ssl_t *ssl, ngx_quic_conf_t *conf);
ngx_connection_handler_pt handler);
ngx_connection_t *ngx_quic_create_uni_stream(ngx_connection_t *c); 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, void ngx_quic_finalize_connection(ngx_connection_t *c, ngx_uint_t err,
const char *reason); const char *reason);

View File

@ -336,7 +336,7 @@ ngx_http_init_connection(ngx_connection_t *c)
sscf = ngx_http_get_module_srv_conf(hc->conf_ctx, sscf = ngx_http_get_module_srv_conf(hc->conf_ctx,
ngx_http_ssl_module); ngx_http_ssl_module);
ngx_quic_run(c, &sscf->ssl, qcf, ngx_http_init_connection); ngx_quic_run(c, &sscf->ssl, qcf);
return; return;
} }
} }

View File

@ -129,7 +129,7 @@ ngx_stream_init_connection(ngx_connection_t *c)
scf = ngx_stream_get_module_srv_conf(addr_conf->ctx, scf = ngx_stream_get_module_srv_conf(addr_conf->ctx,
ngx_stream_ssl_module); ngx_stream_ssl_module);
ngx_quic_run(c, &scf->ssl, qcf, ngx_stream_init_connection); ngx_quic_run(c, &scf->ssl, qcf);
return; return;
} }
} }