changeset 8855:9ae239d2547d quic

QUIC: separate event handling functions. The functions ngx_quic_handle_read_event() and ngx_quic_handle_write_event() are added. Previously this code was a part of ngx_handle_read_event() and ngx_handle_write_event(). The change simplifies ngx_handle_read_event() and ngx_handle_write_event() by moving QUIC-related code to a QUIC source file.
author Roman Arutyunyan <arut@nginx.com>
date Thu, 09 Sep 2021 16:55:00 +0300
parents 7416d3b2fac5
children 6a383020d61e
files src/event/ngx_event.c src/event/quic/ngx_event_quic.h src/event/quic/ngx_event_quic_streams.c
diffstat 3 files changed, 37 insertions(+), 25 deletions(-) [+]
line wrap: on
line diff
--- a/src/event/ngx_event.c
+++ b/src/event/ngx_event.c
@@ -273,15 +273,7 @@ ngx_handle_read_event(ngx_event_t *rev, 
     c = rev->data;
 
     if (c->quic) {
-
-        if (!rev->active && !rev->ready) {
-            rev->active = 1;
-
-        } else if (rev->active && (rev->ready || (flags & NGX_CLOSE_EVENT))) {
-            rev->active = 0;
-        }
-
-        return NGX_OK;
+        return ngx_quic_handle_read_event(rev, flags);
     }
 
 #endif
@@ -358,28 +350,18 @@ ngx_handle_write_event(ngx_event_t *wev,
 
     c = wev->data;
 
+#if (NGX_QUIC)
+    if (c->quic) {
+        return ngx_quic_handle_write_event(wev, lowat);
+    }
+#endif
+
     if (lowat) {
         if (ngx_send_lowat(c, lowat) == NGX_ERROR) {
             return NGX_ERROR;
         }
     }
 
-#if (NGX_QUIC)
-
-    if (c->quic) {
-
-        if (!wev->active && !wev->ready) {
-            wev->active = 1;
-
-        } else if (wev->active && wev->ready) {
-            wev->active = 0;
-        }
-
-        return NGX_OK;
-    }
-
-#endif
-
     if (ngx_event_flags & NGX_USE_CLEAR_EVENT) {
 
         /* kqueue, epoll */
--- a/src/event/quic/ngx_event_quic.h
+++ b/src/event/quic/ngx_event_quic.h
@@ -93,6 +93,8 @@ void ngx_quic_shutdown_connection(ngx_co
     const char *reason);
 ngx_int_t ngx_quic_reset_stream(ngx_connection_t *c, ngx_uint_t err);
 uint32_t ngx_quic_version(ngx_connection_t *c);
+ngx_int_t ngx_quic_handle_read_event(ngx_event_t *rev, ngx_uint_t flags);
+ngx_int_t ngx_quic_handle_write_event(ngx_event_t *wev, size_t lowat);
 ngx_int_t ngx_quic_get_packet_dcid(ngx_log_t *log, u_char *data, size_t len,
     ngx_str_t *dcid);
 ngx_int_t ngx_quic_derive_key(ngx_log_t *log, const char *label,
--- a/src/event/quic/ngx_event_quic_streams.c
+++ b/src/event/quic/ngx_event_quic_streams.c
@@ -1470,3 +1470,31 @@ ngx_quic_update_flow(ngx_connection_t *c
 
     return NGX_OK;
 }
+
+
+ngx_int_t
+ngx_quic_handle_read_event(ngx_event_t *rev, ngx_uint_t flags)
+{
+    if (!rev->active && !rev->ready) {
+        rev->active = 1;
+
+    } else if (rev->active && (rev->ready || (flags & NGX_CLOSE_EVENT))) {
+        rev->active = 0;
+    }
+
+    return NGX_OK;
+}
+
+
+ngx_int_t
+ngx_quic_handle_write_event(ngx_event_t *wev, size_t lowat)
+{
+    if (!wev->active && !wev->ready) {
+        wev->active = 1;
+
+    } else if (wev->active && wev->ready) {
+        wev->active = 0;
+    }
+
+    return NGX_OK;
+}