]> git.kaiwu.me - nginx.git/commitdiff
QUIC: moved ngx_quic_address_hash().
authorSergey Kandaurov <pluknet@nginx.com>
Fri, 20 Feb 2026 15:01:20 +0000 (19:01 +0400)
committerSergey Kandaurov <s.kandaurov@f5.com>
Thu, 26 Feb 2026 14:05:07 +0000 (18:05 +0400)
src/event/quic/ngx_event_quic.c
src/event/quic/ngx_event_quic_connection.h
src/event/quic/ngx_event_quic_tokens.c

index 6a59aaf93203abb7bcaba315918dcb80eea434fc..096e8327ffc2ab5a57dfd69b7d59a51c872b9f4f 100644 (file)
@@ -7,6 +7,7 @@
 #include <ngx_config.h>
 #include <ngx_core.h>
 #include <ngx_event.h>
+#include <ngx_sha1.h>
 #include <ngx_event_quic_connection.h>
 
 
@@ -1470,3 +1471,48 @@ ngx_quic_shutdown_quic(ngx_connection_t *c)
         ngx_quic_finalize_connection(c, qc->shutdown_code, qc->shutdown_reason);
     }
 }
+
+
+void
+ngx_quic_address_hash(struct sockaddr *sockaddr, socklen_t socklen,
+    ngx_uint_t no_port, u_char buf[20])
+{
+    size_t                len;
+    u_char               *data;
+    ngx_sha1_t            sha1;
+    struct sockaddr_in   *sin;
+#if (NGX_HAVE_INET6)
+    struct sockaddr_in6  *sin6;
+#endif
+
+    len = (size_t) socklen;
+    data = (u_char *) sockaddr;
+
+    if (no_port) {
+        switch (sockaddr->sa_family) {
+
+#if (NGX_HAVE_INET6)
+        case AF_INET6:
+            sin6 = (struct sockaddr_in6 *) sockaddr;
+
+            len = sizeof(struct in6_addr);
+            data = sin6->sin6_addr.s6_addr;
+
+            break;
+#endif
+
+        case AF_INET:
+            sin = (struct sockaddr_in *) sockaddr;
+
+            len = sizeof(in_addr_t);
+            data = (u_char *) &sin->sin_addr;
+
+            break;
+        }
+    }
+
+    ngx_sha1_init(&sha1);
+    ngx_sha1_update(&sha1, data, len);
+
+    ngx_sha1_final(buf, &sha1);
+}
index 33922cf801e6eed48619846d9a3d8f714d463937..e84e754d8035fc2b6b12eb9bd008eb21bb180e1b 100644 (file)
@@ -314,6 +314,8 @@ ngx_int_t ngx_quic_apply_transport_params(ngx_connection_t *c,
 void ngx_quic_discard_ctx(ngx_connection_t *c, ngx_uint_t level);
 void ngx_quic_close_connection(ngx_connection_t *c, ngx_int_t rc);
 void ngx_quic_shutdown_quic(ngx_connection_t *c);
+void ngx_quic_address_hash(struct sockaddr *sockaddr, socklen_t socklen,
+    ngx_uint_t no_port, u_char buf[20]);
 
 #if (NGX_DEBUG)
 void ngx_quic_connstate_dbg(ngx_connection_t *c);
index c1da0d4726083cf39c5c1091b5c1d57917cd4313..89d31815716fedc1bacf4e9a19ae78f682ef0cb8 100644 (file)
@@ -7,14 +7,9 @@
 #include <ngx_config.h>
 #include <ngx_core.h>
 #include <ngx_event.h>
-#include <ngx_sha1.h>
 #include <ngx_event_quic_connection.h>
 
 
-static void ngx_quic_address_hash(struct sockaddr *sockaddr, socklen_t socklen,
-    ngx_uint_t no_port, u_char buf[20]);
-
-
 ngx_int_t
 ngx_quic_new_sr_token(ngx_connection_t *c, ngx_str_t *cid, u_char *secret,
     u_char *token)
@@ -129,50 +124,6 @@ ngx_quic_new_token(ngx_log_t *log, struct sockaddr *sockaddr,
 }
 
 
-static void
-ngx_quic_address_hash(struct sockaddr *sockaddr, socklen_t socklen,
-    ngx_uint_t no_port, u_char buf[20])
-{
-    size_t                len;
-    u_char               *data;
-    ngx_sha1_t            sha1;
-    struct sockaddr_in   *sin;
-#if (NGX_HAVE_INET6)
-    struct sockaddr_in6  *sin6;
-#endif
-
-    len = (size_t) socklen;
-    data = (u_char *) sockaddr;
-
-    if (no_port) {
-        switch (sockaddr->sa_family) {
-
-#if (NGX_HAVE_INET6)
-        case AF_INET6:
-            sin6 = (struct sockaddr_in6 *) sockaddr;
-
-            len = sizeof(struct in6_addr);
-            data = sin6->sin6_addr.s6_addr;
-
-            break;
-#endif
-
-        case AF_INET:
-            sin = (struct sockaddr_in *) sockaddr;
-
-            len = sizeof(in_addr_t);
-            data = (u_char *) &sin->sin_addr;
-
-            break;
-        }
-    }
-
-    ngx_sha1_init(&sha1);
-    ngx_sha1_update(&sha1, data, len);
-    ngx_sha1_final(buf, &sha1);
-}
-
-
 ngx_int_t
 ngx_quic_validate_token(ngx_connection_t *c, u_char *key,
     ngx_quic_header_t *pkt)