Mercurial > hg > nginx
comparison 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 |
comparison
equal
deleted
inserted
replaced
8730:90ae21799f67 | 8731:d62a16fff3a4 |
---|---|
22 | 22 |
23 | 23 |
24 void | 24 void |
25 ngx_event_recvmsg(ngx_event_t *ev) | 25 ngx_event_recvmsg(ngx_event_t *ev) |
26 { | 26 { |
27 size_t len; | |
27 ssize_t n; | 28 ssize_t n; |
28 ngx_str_t key; | 29 ngx_str_t key; |
29 ngx_buf_t buf; | 30 ngx_buf_t buf; |
30 ngx_log_t *log; | 31 ngx_log_t *log; |
31 ngx_err_t err; | 32 ngx_err_t err; |
300 if (c->pool == NULL) { | 301 if (c->pool == NULL) { |
301 ngx_close_accepted_udp_connection(c); | 302 ngx_close_accepted_udp_connection(c); |
302 return; | 303 return; |
303 } | 304 } |
304 | 305 |
305 c->sockaddr = ngx_palloc(c->pool, socklen); | 306 len = socklen; |
307 | |
308 #if (NGX_QUIC) | |
309 if (ls->quic) { | |
310 len = NGX_SOCKADDRLEN; | |
311 } | |
312 #endif | |
313 | |
314 c->sockaddr = ngx_palloc(c->pool, len); | |
306 if (c->sockaddr == NULL) { | 315 if (c->sockaddr == NULL) { |
307 ngx_close_accepted_udp_connection(c); | 316 ngx_close_accepted_udp_connection(c); |
308 return; | 317 return; |
309 } | 318 } |
310 | 319 |
702 ngx_log_debug1(NGX_LOG_DEBUG_EVENT, c->log, 0, | 711 ngx_log_debug1(NGX_LOG_DEBUG_EVENT, c->log, 0, |
703 "client migrated to %V", &addr); | 712 "client migrated to %V", &addr); |
704 } | 713 } |
705 #endif | 714 #endif |
706 | 715 |
707 if (c->socklen < socklen) { | |
708 c->sockaddr = ngx_palloc(c->pool, socklen); | |
709 if (c->sockaddr == NULL) { | |
710 return c; | |
711 } | |
712 } | |
713 | |
714 ngx_memcpy(c->sockaddr, sockaddr, socklen); | 716 ngx_memcpy(c->sockaddr, sockaddr, socklen); |
715 c->socklen = socklen; | 717 c->socklen = socklen; |
716 } | 718 } |
717 } | 719 } |
718 | 720 |