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;
|
||||
sa->start = offset;
|
||||
sa->port_start = offset;
|
||||
|
||||
start = nxt_pointer_to(sa, offset);
|
||||
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]);
|
||||
|
||||
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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
sa->address_length = p - (start + 1);
|
||||
sa->port_start = sa->address_length + 2;
|
||||
sa->port_start += sa->address_length + 3;
|
||||
|
||||
*p++ = ']';
|
||||
|
||||
@@ -265,7 +266,7 @@ nxt_sockaddr_text(nxt_sockaddr_t *sa)
|
||||
#endif
|
||||
|
||||
sa->address_length = p - start;
|
||||
sa->port_start = sa->address_length;
|
||||
sa->port_start += sa->address_length;
|
||||
sa->length = p - start;
|
||||
|
||||
return;
|
||||
|
||||
@@ -38,7 +38,7 @@ struct nxt_sockaddr_s {
|
||||
uint8_t address_length;
|
||||
/*
|
||||
* Textual port representation, e.g. "8000".
|
||||
* Port length is length - port_start.
|
||||
* Port length is (start + length) - 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_address(sa) nxt_pointer_to(sa, (sa)->address_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_ */
|
||||
|
||||
Reference in New Issue
Block a user