1 /*------------------------------------------------------------------------- 2 * 3 * ifaddr.h 4 * IP netmask calculations, and enumerating network interfaces. 5 * 6 * Copyright (c) 2003-2020, PostgreSQL Global Development Group 7 * 8 * src/include/libpq/ifaddr.h 9 * 10 *------------------------------------------------------------------------- 11 */ 12 #ifndef IFADDR_H 13 #define IFADDR_H 14 15 #include "libpq/pqcomm.h" /* pgrminclude ignore */ 16 17 typedef void (*PgIfAddrCallback) (struct sockaddr *addr, 18 struct sockaddr *netmask, 19 void *cb_data); 20 21 extern int pg_range_sockaddr(const struct sockaddr_storage *addr, 22 const struct sockaddr_storage *netaddr, 23 const struct sockaddr_storage *netmask); 24 25 extern int pg_sockaddr_cidr_mask(struct sockaddr_storage *mask, 26 char *numbits, int family); 27 28 extern int pg_foreach_ifaddr(PgIfAddrCallback callback, void *cb_data); 29 30 #endif /* IFADDR_H */ 31