| |
| #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]); |
| } |