Fixed port processing in nxt_sockaddr_text().
This commit is contained in:
@@ -195,6 +195,7 @@ nxt_sockaddr_text(nxt_sockaddr_t *sa)
|
|||||||
|
|
||||||
offset = offsetof(nxt_sockaddr_t, u) + sa->socklen;
|
offset = offsetof(nxt_sockaddr_t, u) + sa->socklen;
|
||||||
sa->start = offset;
|
sa->start = offset;
|
||||||
|
sa->port_start = offset;
|
||||||
|
|
||||||
start = nxt_pointer_to(sa, offset);
|
start = nxt_pointer_to(sa, offset);
|
||||||
end = nxt_pointer_to(sa, sa->sockaddr_size);
|
end = nxt_pointer_to(sa, sa->sockaddr_size);
|
||||||
@@ -210,7 +211,7 @@ nxt_sockaddr_text(nxt_sockaddr_t *sa)
|
|||||||
octet[0], octet[1], octet[2], octet[3]);
|
octet[0], octet[1], octet[2], octet[3]);
|
||||||
|
|
||||||
sa->address_length = p - start;
|
sa->address_length = p - start;
|
||||||
sa->port_start = sa->address_length + 1;
|
sa->port_start += sa->address_length + 1;
|
||||||
|
|
||||||
port = sa->u.sockaddr_in.sin_port;
|
port = sa->u.sockaddr_in.sin_port;
|
||||||
|
|
||||||
@@ -227,7 +228,7 @@ nxt_sockaddr_text(nxt_sockaddr_t *sa)
|
|||||||
p = nxt_inet6_ntop(sa->u.sockaddr_in6.sin6_addr.s6_addr, p, end);
|
p = nxt_inet6_ntop(sa->u.sockaddr_in6.sin6_addr.s6_addr, p, end);
|
||||||
|
|
||||||
sa->address_length = p - (start + 1);
|
sa->address_length = p - (start + 1);
|
||||||
sa->port_start = sa->address_length + 2;
|
sa->port_start += sa->address_length + 3;
|
||||||
|
|
||||||
*p++ = ']';
|
*p++ = ']';
|
||||||
|
|
||||||
@@ -265,7 +266,7 @@ nxt_sockaddr_text(nxt_sockaddr_t *sa)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
sa->address_length = p - start;
|
sa->address_length = p - start;
|
||||||
sa->port_start = sa->address_length;
|
sa->port_start += sa->address_length;
|
||||||
sa->length = p - start;
|
sa->length = p - start;
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ struct nxt_sockaddr_s {
|
|||||||
uint8_t address_length;
|
uint8_t address_length;
|
||||||
/*
|
/*
|
||||||
* Textual port representation, e.g. "8000".
|
* Textual port representation, e.g. "8000".
|
||||||
* Port length is length - port_start.
|
* Port length is (start + length) - port_start.
|
||||||
*/
|
*/
|
||||||
uint8_t port_start;
|
uint8_t port_start;
|
||||||
/*
|
/*
|
||||||
@@ -106,7 +106,8 @@ NXT_EXPORT nxt_int_t nxt_inet6_addr(struct in6_addr *in6_addr, u_char *buf,
|
|||||||
#define nxt_sockaddr_start(sa) nxt_pointer_to(sa, (sa)->start)
|
#define nxt_sockaddr_start(sa) nxt_pointer_to(sa, (sa)->start)
|
||||||
#define nxt_sockaddr_address(sa) nxt_pointer_to(sa, (sa)->address_start)
|
#define nxt_sockaddr_address(sa) nxt_pointer_to(sa, (sa)->address_start)
|
||||||
#define nxt_sockaddr_port(sa) nxt_pointer_to(sa, (sa)->port_start)
|
#define nxt_sockaddr_port(sa) nxt_pointer_to(sa, (sa)->port_start)
|
||||||
#define nxt_sockaddr_length(sa) ((sa)->length - (sa)->port_start)
|
#define nxt_sockaddr_port_length(sa) \
|
||||||
|
(((sa)->start + (sa)->length) - (sa)->port_start)
|
||||||
|
|
||||||
|
|
||||||
#endif /* _NXT_SOCKADDR_H_INCLUDED_ */
|
#endif /* _NXT_SOCKADDR_H_INCLUDED_ */
|
||||||
|
|||||||
Reference in New Issue
Block a user