Mercurial > hg > nginx-quic
comparison src/core/ngx_proxy_protocol.c @ 8999:91ad1abfb285 quic
Merged with the default branch.
author | Sergey Kandaurov <pluknet@nginx.com> |
---|---|
date | Thu, 15 Dec 2022 19:40:44 +0400 |
parents | 42bc158a47ec |
children |
comparison
equal
deleted
inserted
replaced
8991:b87a0dbc1150 | 8999:91ad1abfb285 |
---|---|
107 | 107 |
108 p = buf; | 108 p = buf; |
109 len = last - buf; | 109 len = last - buf; |
110 | 110 |
111 if (len >= sizeof(ngx_proxy_protocol_header_t) | 111 if (len >= sizeof(ngx_proxy_protocol_header_t) |
112 && memcmp(p, signature, sizeof(signature) - 1) == 0) | 112 && ngx_memcmp(p, signature, sizeof(signature) - 1) == 0) |
113 { | 113 { |
114 return ngx_proxy_protocol_v2_read(c, buf, last); | 114 return ngx_proxy_protocol_v2_read(c, buf, last); |
115 } | 115 } |
116 | 116 |
117 if (len < 8 || ngx_strncmp(p, "PROXY ", 6) != 0) { | 117 if (len < 8 || ngx_strncmp(p, "PROXY ", 6) != 0) { |
279 u_char * | 279 u_char * |
280 ngx_proxy_protocol_write(ngx_connection_t *c, u_char *buf, u_char *last) | 280 ngx_proxy_protocol_write(ngx_connection_t *c, u_char *buf, u_char *last) |
281 { | 281 { |
282 ngx_uint_t port, lport; | 282 ngx_uint_t port, lport; |
283 | 283 |
284 if (last - buf < NGX_PROXY_PROTOCOL_MAX_HEADER) { | 284 if (last - buf < NGX_PROXY_PROTOCOL_V1_MAX_HEADER) { |
285 ngx_log_error(NGX_LOG_ALERT, c->log, 0, | |
286 "too small buffer for PROXY protocol"); | |
285 return NULL; | 287 return NULL; |
286 } | 288 } |
287 | 289 |
288 if (ngx_connection_local_sockaddr(c, NULL, 0) != NGX_OK) { | 290 if (ngx_connection_local_sockaddr(c, NULL, 0) != NGX_OK) { |
289 return NULL; | 291 return NULL; |
392 | 394 |
393 in = (ngx_proxy_protocol_inet_addrs_t *) buf; | 395 in = (ngx_proxy_protocol_inet_addrs_t *) buf; |
394 | 396 |
395 src_sockaddr.sockaddr_in.sin_family = AF_INET; | 397 src_sockaddr.sockaddr_in.sin_family = AF_INET; |
396 src_sockaddr.sockaddr_in.sin_port = 0; | 398 src_sockaddr.sockaddr_in.sin_port = 0; |
397 memcpy(&src_sockaddr.sockaddr_in.sin_addr, in->src_addr, 4); | 399 ngx_memcpy(&src_sockaddr.sockaddr_in.sin_addr, in->src_addr, 4); |
398 | 400 |
399 dst_sockaddr.sockaddr_in.sin_family = AF_INET; | 401 dst_sockaddr.sockaddr_in.sin_family = AF_INET; |
400 dst_sockaddr.sockaddr_in.sin_port = 0; | 402 dst_sockaddr.sockaddr_in.sin_port = 0; |
401 memcpy(&dst_sockaddr.sockaddr_in.sin_addr, in->dst_addr, 4); | 403 ngx_memcpy(&dst_sockaddr.sockaddr_in.sin_addr, in->dst_addr, 4); |
402 | 404 |
403 pp->src_port = ngx_proxy_protocol_parse_uint16(in->src_port); | 405 pp->src_port = ngx_proxy_protocol_parse_uint16(in->src_port); |
404 pp->dst_port = ngx_proxy_protocol_parse_uint16(in->dst_port); | 406 pp->dst_port = ngx_proxy_protocol_parse_uint16(in->dst_port); |
405 | 407 |
406 socklen = sizeof(struct sockaddr_in); | 408 socklen = sizeof(struct sockaddr_in); |
419 | 421 |
420 in6 = (ngx_proxy_protocol_inet6_addrs_t *) buf; | 422 in6 = (ngx_proxy_protocol_inet6_addrs_t *) buf; |
421 | 423 |
422 src_sockaddr.sockaddr_in6.sin6_family = AF_INET6; | 424 src_sockaddr.sockaddr_in6.sin6_family = AF_INET6; |
423 src_sockaddr.sockaddr_in6.sin6_port = 0; | 425 src_sockaddr.sockaddr_in6.sin6_port = 0; |
424 memcpy(&src_sockaddr.sockaddr_in6.sin6_addr, in6->src_addr, 16); | 426 ngx_memcpy(&src_sockaddr.sockaddr_in6.sin6_addr, in6->src_addr, 16); |
425 | 427 |
426 dst_sockaddr.sockaddr_in6.sin6_family = AF_INET6; | 428 dst_sockaddr.sockaddr_in6.sin6_family = AF_INET6; |
427 dst_sockaddr.sockaddr_in6.sin6_port = 0; | 429 dst_sockaddr.sockaddr_in6.sin6_port = 0; |
428 memcpy(&dst_sockaddr.sockaddr_in6.sin6_addr, in6->dst_addr, 16); | 430 ngx_memcpy(&dst_sockaddr.sockaddr_in6.sin6_addr, in6->dst_addr, 16); |
429 | 431 |
430 pp->src_port = ngx_proxy_protocol_parse_uint16(in6->src_port); | 432 pp->src_port = ngx_proxy_protocol_parse_uint16(in6->src_port); |
431 pp->dst_port = ngx_proxy_protocol_parse_uint16(in6->dst_port); | 433 pp->dst_port = ngx_proxy_protocol_parse_uint16(in6->dst_port); |
432 | 434 |
433 socklen = sizeof(struct sockaddr_in6); | 435 socklen = sizeof(struct sockaddr_in6); |