diff options
author | Vladimir Homutov <vl@nginx.com> | 2022-02-01 14:35:31 +0300 |
---|---|---|
committer | Vladimir Homutov <vl@nginx.com> | 2022-02-01 14:35:31 +0300 |
commit | 3f94e45a3b27a80d60be75bbcd7ef5b2c5e11a91 (patch) | |
tree | 90e94d601f4d9d8f470a8614a150aebde91a744f /src | |
parent | 1491d6ec42382148ab2d3de6cf08453ef4b5623f (diff) | |
download | nginx-3f94e45a3b27a80d60be75bbcd7ef5b2c5e11a91.tar.gz nginx-3f94e45a3b27a80d60be75bbcd7ef5b2c5e11a91.zip |
QUIC: revised ngx_quic_handle_datagram() error codes.
The NGX_DECLINED is replaced with NGX_DONE to match closer to return code
of ngx_quic_handle_packet() and ngx_quic_close_connection() rc argument.
The ngx_quic_close_connection() rc code is used only when quic connection
exists, thus anything goes if qc == NULL.
The ngx_quic_handle_datagram() does not return NG_OK in cases when quic
connection is not yet created.
Diffstat (limited to 'src')
-rw-r--r-- | src/event/quic/ngx_event_quic.c | 21 | ||||
-rw-r--r-- | src/event/quic/ngx_event_quic_output.c | 2 |
2 files changed, 7 insertions, 16 deletions
diff --git a/src/event/quic/ngx_event_quic.c b/src/event/quic/ngx_event_quic.c index 9309faa6c..ed970bc4c 100644 --- a/src/event/quic/ngx_event_quic.c +++ b/src/event/quic/ngx_event_quic.c @@ -210,17 +210,13 @@ ngx_quic_run(ngx_connection_t *c, ngx_quic_conf_t *conf) rc = ngx_quic_handle_datagram(c, c->buffer, conf); if (rc != NGX_OK) { - ngx_quic_close_connection(c, rc == NGX_DECLINED ? NGX_DONE : NGX_ERROR); + ngx_quic_close_connection(c, rc); return; } + /* quic connection is now created */ qc = ngx_quic_get_connection(c); - if (qc == NULL) { - ngx_quic_close_connection(c, NGX_DONE); - return; - } - ngx_add_timer(c->read, qc->tp.max_idle_timeout); ngx_quic_connstate_dbg(c); @@ -443,7 +439,7 @@ ngx_quic_input_handler(ngx_event_t *rev) return; } - if (rc == NGX_DECLINED) { + if (rc == NGX_DONE) { return; } @@ -709,13 +705,8 @@ ngx_quic_handle_datagram(ngx_connection_t *c, ngx_buf_t *b, } #endif - if (rc == NGX_ERROR) { - return NGX_ERROR; - } - - if (rc == NGX_DONE) { - /* stop further processing */ - return NGX_DECLINED; + if (rc == NGX_ERROR || rc == NGX_DONE) { + return rc; } if (rc == NGX_OK) { @@ -750,7 +741,7 @@ ngx_quic_handle_datagram(ngx_connection_t *c, ngx_buf_t *b, } if (!good) { - return NGX_DECLINED; + return NGX_DONE; } qc = ngx_quic_get_connection(c); diff --git a/src/event/quic/ngx_event_quic_output.c b/src/event/quic/ngx_event_quic_output.c index 67e527462..b34ca7855 100644 --- a/src/event/quic/ngx_event_quic_output.c +++ b/src/event/quic/ngx_event_quic_output.c @@ -979,7 +979,7 @@ ngx_quic_send_early_cc(ngx_connection_t *c, ngx_quic_header_t *inpkt, return NGX_ERROR; } - return NGX_OK; + return NGX_DONE; } |