Mercurial > hg > nginx
diff src/event/ngx_event_udp.c @ 8731:d62a16fff3a4 quic
QUIC: do not reallocate c->sockaddr.
When a connection is created, enough memory is allocated to accomodate
any future address change.
author | Roman Arutyunyan <arut@nginx.com> |
---|---|
date | Thu, 11 Mar 2021 15:22:18 +0300 |
parents | 45db1b5c1706 |
children | db58c7ef1d7c |
line wrap: on
line diff
--- a/src/event/ngx_event_udp.c Thu Mar 11 15:25:11 2021 +0300 +++ b/src/event/ngx_event_udp.c Thu Mar 11 15:22:18 2021 +0300 @@ -24,6 +24,7 @@ void ngx_event_recvmsg(ngx_event_t *ev) { + size_t len; ssize_t n; ngx_str_t key; ngx_buf_t buf; @@ -302,7 +303,15 @@ return; } - c->sockaddr = ngx_palloc(c->pool, socklen); + len = socklen; + +#if (NGX_QUIC) + if (ls->quic) { + len = NGX_SOCKADDRLEN; + } +#endif + + c->sockaddr = ngx_palloc(c->pool, len); if (c->sockaddr == NULL) { ngx_close_accepted_udp_connection(c); return; @@ -704,13 +713,6 @@ } #endif - if (c->socklen < socklen) { - c->sockaddr = ngx_palloc(c->pool, socklen); - if (c->sockaddr == NULL) { - return c; - } - } - ngx_memcpy(c->sockaddr, sockaddr, socklen); c->socklen = socklen; }