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);