20#if defined(LIBC_SCCS) && !defined(lint)
21static const char rcsid[] =
"Id: inet_net_ntop.c,v 1.1.2.2 2004/03/09 09:17:27 marka Exp $";
35#define SPRINTF(x) strlen(sprintfx)
37#define SPRINTF(x) ((size_t)sprintf x)
41 char *
dst,
size_t size);
43 char *
dst,
size_t size);
100 if (size <
sizeof "0")
108 for (
b = bits / 8;
b > 0;
b--)
110 if (size <=
sizeof "255.")
126 if (size <=
sizeof ".255")
131 m = ((1 <<
b) - 1) << (8 -
b);
137 if (size <=
sizeof "/32")
176 unsigned char inbuf[16];
177 char outbuf[
sizeof(
"xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:255.255.255.255/128")];
205 m = ((
u_int) ~0) << (8 -
b);
212 words = (bits + 15) / 16;
218 for (
i = 0;
i < (words * 2);
i += 2)
220 if ((s[
i] | s[
i + 1]) == 0)
244 ((
zero_l == 5 && s[10] == 0xff && s[11] == 0xff) ||
245 ((
zero_l == 7 && s[14] != 0 && s[15] != 1)))))
249 for (p = 0; p < words; p++)
265 *
cp++ = (p == 6) ?
':' :
'.';
268 if (p != 7 || bits > 120)
285 if (
strlen(outbuf) + 1 > size)
char * pg_inet_cidr_ntop(int af, const void *src, int bits, char *dst, size_t size)
static char * inet_cidr_ntop_ipv6(const u_char *src, int bits, char *dst, size_t size)
static char * inet_cidr_ntop_ipv4(const u_char *src, int bits, char *dst, size_t size)