diff options
| author | Sergey Kandaurov <pluknet@nginx.com> | 2026-02-20 19:01:20 +0400 |
|---|---|---|
| committer | Sergey Kandaurov <s.kandaurov@f5.com> | 2026-02-26 18:05:07 +0400 |
| commit | 578c91818f1d68797323d6029e17a441a7438506 (patch) | |
| tree | 504d71584d394a7b8d72c1a4c7cc4706fc64767d /src | |
| parent | 4037746c8058cc8b02295e1a4f6f1c1db38b772e (diff) | |
| download | nginx-578c91818f1d68797323d6029e17a441a7438506.tar.gz nginx-578c91818f1d68797323d6029e17a441a7438506.tar.bz2 | |
QUIC: moved ngx_quic_address_hash().
Diffstat (limited to 'src')
| -rw-r--r-- | src/event/quic/ngx_event_quic.c | 46 | ||||
| -rw-r--r-- | src/event/quic/ngx_event_quic_connection.h | 2 | ||||
| -rw-r--r-- | src/event/quic/ngx_event_quic_tokens.c | 49 |
3 files changed, 48 insertions, 49 deletions
diff --git a/src/event/quic/ngx_event_quic.c b/src/event/quic/ngx_event_quic.c index 6a59aaf93..096e8327f 100644 --- a/src/event/quic/ngx_event_quic.c +++ b/src/event/quic/ngx_event_quic.c @@ -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); +} diff --git a/src/event/quic/ngx_event_quic_connection.h b/src/event/quic/ngx_event_quic_connection.h index 33922cf80..e84e754d8 100644 --- a/src/event/quic/ngx_event_quic_connection.h +++ b/src/event/quic/ngx_event_quic_connection.h @@ -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); diff --git a/src/event/quic/ngx_event_quic_tokens.c b/src/event/quic/ngx_event_quic_tokens.c index c1da0d472..89d318157 100644 --- a/src/event/quic/ngx_event_quic_tokens.c +++ b/src/event/quic/ngx_event_quic_tokens.c @@ -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) |
