summaryrefslogtreecommitdiffstats
path: root/src/include/libpq/ifaddr.h
blob: 4b615182c94a8f439b7d1b4b0103f94260d4683d (plain)
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
/*-------------------------------------------------------------------------
 *
 * ifaddr.h
 *	  IP netmask calculations, and enumerating network interfaces.
 *
 * Copyright (c) 2003-2020, PostgreSQL Global Development Group
 *
 * src/include/libpq/ifaddr.h
 *
 *-------------------------------------------------------------------------
 */
#ifndef IFADDR_H
#define IFADDR_H

#include "libpq/pqcomm.h"		/* pgrminclude ignore */

typedef void (*PgIfAddrCallback) (struct sockaddr *addr,
								  struct sockaddr *netmask,
								  void *cb_data);

extern int	pg_range_sockaddr(const struct sockaddr_storage *addr,
							  const struct sockaddr_storage *netaddr,
							  const struct sockaddr_storage *netmask);

extern int	pg_sockaddr_cidr_mask(struct sockaddr_storage *mask,
								  char *numbits, int family);

extern int	pg_foreach_ifaddr(PgIfAddrCallback callback, void *cb_data);

#endif							/* IFADDR_H */