Roman Arutyunyan
December 09, 2022 04:40AM
# HG changeset patch
# User Roman Arutyunyan <arut@nginx.com>
# Date 1670322119 0
# Tue Dec 06 10:21:59 2022 +0000
# Branch quic
# Node ID 1038d7300c29eea02b47eac3f205e293b1e55f5b
# Parent b87a0dbc1150f415def5bc1e1f00d02b33519026
QUIC: ignore server address while looking up a connection.

The server connection check was copied from the common UDP code in c2f5d79cde64.
In QUIC it does not make much sense though. Technically client is not allowed
to migrate to a different server address. However, migrating withing a single
wildcard listening does not seem to affect anything.

diff --git a/src/event/quic/ngx_event_quic_udp.c b/src/event/quic/ngx_event_quic_udp.c
--- a/src/event/quic/ngx_event_quic_udp.c
+++ b/src/event/quic/ngx_event_quic_udp.c
@@ -13,7 +13,7 @@

static void ngx_quic_close_accepted_connection(ngx_connection_t *c);
static ngx_connection_t *ngx_quic_lookup_connection(ngx_listening_t *ls,
- ngx_str_t *key, struct sockaddr *local_sockaddr, socklen_t local_socklen);
+ ngx_str_t *key);


void
@@ -156,7 +156,7 @@ ngx_quic_recvmsg(ngx_event_t *ev)
goto next;
}

- c = ngx_quic_lookup_connection(ls, &key, local_sockaddr, local_socklen);
+ c = ngx_quic_lookup_connection(ls, &key);

if (c) {

@@ -370,7 +370,6 @@ ngx_quic_rbtree_insert_value(ngx_rbtree_
ngx_rbtree_node_t *node, ngx_rbtree_node_t *sentinel)
{
ngx_int_t rc;
- ngx_connection_t *c, *ct;
ngx_rbtree_node_t **p;
ngx_quic_socket_t *qsock, *qsockt;

@@ -387,19 +386,11 @@ ngx_quic_rbtree_insert_value(ngx_rbtree_
} else { /* node->key == temp->key */

qsock = (ngx_quic_socket_t *) node;
- c = qsock->udp.connection;
-
qsockt = (ngx_quic_socket_t *) temp;
- ct = qsockt->udp.connection;

rc = ngx_memn2cmp(qsock->sid.id, qsockt->sid.id,
qsock->sid.len, qsockt->sid.len);

- if (rc == 0 && c->listening->wildcard) {
- rc = ngx_cmp_sockaddr(c->local_sockaddr, c->local_socklen,
- ct->local_sockaddr, ct->local_socklen, 1);
- }
-
p = (rc < 0) ? &temp->left : &temp->right;
}

@@ -419,8 +410,7 @@ ngx_quic_rbtree_insert_value(ngx_rbtree_


static ngx_connection_t *
-ngx_quic_lookup_connection(ngx_listening_t *ls, ngx_str_t *key,
- struct sockaddr *local_sockaddr, socklen_t local_socklen)
+ngx_quic_lookup_connection(ngx_listening_t *ls, ngx_str_t *key)
{
uint32_t hash;
ngx_int_t rc;
@@ -454,14 +444,8 @@ ngx_quic_lookup_connection(ngx_listening

rc = ngx_memn2cmp(key->data, qsock->sid.id, key->len, qsock->sid.len);

- c = qsock->udp.connection;
-
- if (rc == 0 && ls->wildcard) {
- rc = ngx_cmp_sockaddr(local_sockaddr, local_socklen,
- c->local_sockaddr, c->local_socklen, 1);
- }
-
if (rc == 0) {
+ c = qsock->udp.connection;
c->udp = &qsock->udp;
return c;
}

_______________________________________________
nginx-devel mailing list -- nginx-devel@nginx.org
To unsubscribe send an email to nginx-devel-leave@nginx.org
Subject Author Views Posted

[PATCH 1 of 6] QUIC: ignore server address while looking up a connection

Roman Arutyunyan 798 December 09, 2022 04:40AM

Re: [PATCH 1 of 6] QUIC: ignore server address while looking up a connection

Maxim Dounin 134 December 13, 2022 12:50PM

Re: [PATCH 1 of 6] QUIC: ignore server address while looking up a connection

Roman Arutyunyan 115 January 16, 2023 07:38AM

Re: [PATCH 1 of 6] QUIC: ignore server address while looking up a connection

Sergey Kandaurov 135 December 29, 2022 08:14AM

Re: [PATCH 1 of 6] QUIC: ignore server address while looking up a connection

Roman Arutyunyan 155 January 19, 2023 09:02AM



Sorry, you do not have permission to post/reply in this forum.

Online Users

Guests: 279
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready