Mercurial > hg > nginx
comparison src/core/ngx_proxy_protocol.c @ 8101:42bc158a47ec
Fixed PROXY protocol to use ngx_memcpy()/ngx_memcmp().
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Tue, 08 Nov 2022 12:48:21 +0300 |
parents | 251daa98cc87 |
children |
comparison
equal
deleted
inserted
replaced
8100:251daa98cc87 | 8101:42bc158a47ec |
---|---|
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) { |
394 | 394 |
395 in = (ngx_proxy_protocol_inet_addrs_t *) buf; | 395 in = (ngx_proxy_protocol_inet_addrs_t *) buf; |
396 | 396 |
397 src_sockaddr.sockaddr_in.sin_family = AF_INET; | 397 src_sockaddr.sockaddr_in.sin_family = AF_INET; |
398 src_sockaddr.sockaddr_in.sin_port = 0; | 398 src_sockaddr.sockaddr_in.sin_port = 0; |
399 memcpy(&src_sockaddr.sockaddr_in.sin_addr, in->src_addr, 4); | 399 ngx_memcpy(&src_sockaddr.sockaddr_in.sin_addr, in->src_addr, 4); |
400 | 400 |
401 dst_sockaddr.sockaddr_in.sin_family = AF_INET; | 401 dst_sockaddr.sockaddr_in.sin_family = AF_INET; |
402 dst_sockaddr.sockaddr_in.sin_port = 0; | 402 dst_sockaddr.sockaddr_in.sin_port = 0; |
403 memcpy(&dst_sockaddr.sockaddr_in.sin_addr, in->dst_addr, 4); | 403 ngx_memcpy(&dst_sockaddr.sockaddr_in.sin_addr, in->dst_addr, 4); |
404 | 404 |
405 pp->src_port = ngx_proxy_protocol_parse_uint16(in->src_port); | 405 pp->src_port = ngx_proxy_protocol_parse_uint16(in->src_port); |
406 pp->dst_port = ngx_proxy_protocol_parse_uint16(in->dst_port); | 406 pp->dst_port = ngx_proxy_protocol_parse_uint16(in->dst_port); |
407 | 407 |
408 socklen = sizeof(struct sockaddr_in); | 408 socklen = sizeof(struct sockaddr_in); |
421 | 421 |
422 in6 = (ngx_proxy_protocol_inet6_addrs_t *) buf; | 422 in6 = (ngx_proxy_protocol_inet6_addrs_t *) buf; |
423 | 423 |
424 src_sockaddr.sockaddr_in6.sin6_family = AF_INET6; | 424 src_sockaddr.sockaddr_in6.sin6_family = AF_INET6; |
425 src_sockaddr.sockaddr_in6.sin6_port = 0; | 425 src_sockaddr.sockaddr_in6.sin6_port = 0; |
426 memcpy(&src_sockaddr.sockaddr_in6.sin6_addr, in6->src_addr, 16); | 426 ngx_memcpy(&src_sockaddr.sockaddr_in6.sin6_addr, in6->src_addr, 16); |
427 | 427 |
428 dst_sockaddr.sockaddr_in6.sin6_family = AF_INET6; | 428 dst_sockaddr.sockaddr_in6.sin6_family = AF_INET6; |
429 dst_sockaddr.sockaddr_in6.sin6_port = 0; | 429 dst_sockaddr.sockaddr_in6.sin6_port = 0; |
430 memcpy(&dst_sockaddr.sockaddr_in6.sin6_addr, in6->dst_addr, 16); | 430 ngx_memcpy(&dst_sockaddr.sockaddr_in6.sin6_addr, in6->dst_addr, 16); |
431 | 431 |
432 pp->src_port = ngx_proxy_protocol_parse_uint16(in6->src_port); | 432 pp->src_port = ngx_proxy_protocol_parse_uint16(in6->src_port); |
433 pp->dst_port = ngx_proxy_protocol_parse_uint16(in6->dst_port); | 433 pp->dst_port = ngx_proxy_protocol_parse_uint16(in6->dst_port); |
434 | 434 |
435 socklen = sizeof(struct sockaddr_in6); | 435 socklen = sizeof(struct sockaddr_in6); |