Go to the source code of this file.
◆ PgIfAddrCallback
◆ pg_foreach_ifaddr()
Definition at line 425 of file ifaddr.c.
426{
430
431
432 memset(&addr, 0,
sizeof(addr));
434 addr.sin_addr.s_addr =
pg_ntoh32(0x7f000001);
435 memset(&mask, 0,
sizeof(mask));
440
441
444 addr6.sin6_addr.s6_addr[15] = 1;
445 memset(&mask, 0,
sizeof(mask));
450
451 return 0;
452}
int pg_sockaddr_cidr_mask(struct sockaddr_storage *mask, char *numbits, int family)
static void run_ifaddr_callback(PgIfAddrCallback callback, void *cb_data, struct sockaddr *addr, struct sockaddr *mask)
static void callback(struct sockaddr *addr, struct sockaddr *mask, void *unused)
References callback(), fb(), pg_ntoh32, pg_sockaddr_cidr_mask(), and run_ifaddr_callback().
Referenced by check_same_host_or_net(), and main().
◆ pg_range_sockaddr()
Definition at line 49 of file ifaddr.c.
52{
57 else if (addr->ss_family ==
AF_INET6)
61 else
62 return 0;
63}
static int range_sockaddr_AF_INET6(const struct sockaddr_in6 *addr, const struct sockaddr_in6 *netaddr, const struct sockaddr_in6 *netmask)
static int range_sockaddr_AF_INET(const struct sockaddr_in *addr, const struct sockaddr_in *netaddr, const struct sockaddr_in *netmask)
References fb(), range_sockaddr_AF_INET(), and range_sockaddr_AF_INET6().
Referenced by check_ip().
◆ pg_sockaddr_cidr_mask()
Definition at line 105 of file ifaddr.c.
106{
107 long bits;
108 char *endptr;
109
111 {
112 bits = (family ==
AF_INET) ? 32 : 128;
113 }
114 else
115 {
117 if (*
numbits ==
'\0' || *endptr !=
'\0')
118 return -1;
119 }
120
121 switch (family)
122 {
124 {
127
129 return -1;
131
132 if (bits > 0)
133 maskl = (0xffffffffUL << (32 - (
int) bits))
134 & 0xffffffffUL;
135 else
139 break;
140 }
141
143 {
146
148 return -1;
150 for (
i = 0;
i < 16;
i++)
151 {
152 if (bits <= 0)
153 mask6.sin6_addr.s6_addr[
i] = 0;
154 else if (bits >= 8)
155 mask6.sin6_addr.s6_addr[
i] = 0xff;
156 else
157 {
158 mask6.sin6_addr.s6_addr[
i] =
159 (0xff << (8 - (
int) bits)) & 0xff;
160 }
161 bits -= 8;
162 }
164 break;
165 }
166
167 default:
168 return -1;
169 }
170
171 mask->ss_family = family;
172 return 0;
173}
References fb(), i, and pg_hton32.
Referenced by check_network_callback(), parse_hba_line(), pg_foreach_ifaddr(), and run_ifaddr_callback().