1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
#include <ngx_config.h>
#include <ngx_core.h>
/* AF_INET only */
size_t ngx_sock_ntop(int family, struct sockaddr *addr, char *text, size_t len)
{
char *p;
struct sockaddr_in *addr_in;
if (family != AF_INET) {
return 0;
}
addr_in = (struct sockaddr_in *) addr;
p = (char *) &addr_in->sin_addr;
return ngx_snprintf(text, len > INET_ADDRSTRLEN ? INET_ADDRSTRLEN : len,
"%u.%u.%u.%u",
(unsigned char) p[0],
(unsigned char) p[1],
(unsigned char) p[2],
(unsigned char) p[3]);
}
size_t ngx_inet_ntop(int family, char *addr, char *text, size_t len)
{
if (family != AF_INET) {
return 0;
}
return ngx_snprintf(text, len > INET_ADDRSTRLEN ? INET_ADDRSTRLEN : len,
"%u.%u.%u.%u",
(unsigned char) addr[0],
(unsigned char) addr[1],
(unsigned char) addr[2],
(unsigned char) addr[3]);
}
|