#include <ngx_config.h>
#include <ngx_core.h>
#include <ngx_event.h>
+#include <ngx_sha1.h>
#include <ngx_event_quic_connection.h>
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);
+}
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);
#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)
}
-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)