]> 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)
committerRoman Arutyunyan <arutyunyan.roman@gmail.com>
Tue, 24 Mar 2026 18:33:23 +0000 (22:33 +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 ef0c8758de3d963337495bf10f15e98fe755a677..4b27a8e22d516e47676a35ede91d4066ed453c86 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>
 
 
@@ -1465,3 +1466,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 04cda859ee08df2f56f7e73707e087091ee7e7b7..8561654e5e10f489d43e4243e15f22186e559184 100644 (file)
@@ -303,6 +303,8 @@ void ngx_quic_discard_ctx(ngx_connection_t *c,
     enum ssl_encryption_level_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)