PostgreSQL Source Code git master
test_ifaddrs.c File Reference
#include "postgres.h"
#include <netinet/in.h>
#include <arpa/inet.h>
#include "libpq/ifaddr.h"
Include dependency graph for test_ifaddrs.c:

Go to the source code of this file.

Functions

static void print_addr (struct sockaddr *addr)
 
static void callback (struct sockaddr *addr, struct sockaddr *mask, void *unused)
 
int main (int argc, char *argv[])
 

Function Documentation

◆ callback()

◆ main()

int main ( int  argc,
char *  argv[] 
)

Definition at line 56 of file test_ifaddrs.c.

57{
58#ifdef WIN32
59 WSADATA wsaData;
60
61 if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0)
62 {
63 fprintf(stderr, "WSAStartup failed\n");
64 return 1;
65 }
66#endif
67
68 if (pg_foreach_ifaddr(callback, NULL) < 0)
69 fprintf(stderr, "pg_foreach_ifaddr failed: %m\n");
70 return 0;
71}
#define fprintf(file, fmt, msg)
Definition: cubescan.l:21
int pg_foreach_ifaddr(PgIfAddrCallback callback, void *cb_data)
Definition: ifaddr.c:425
static void callback(struct sockaddr *addr, struct sockaddr *mask, void *unused)
Definition: test_ifaddrs.c:46

References callback(), fprintf, and pg_foreach_ifaddr().

◆ print_addr()

static void print_addr ( struct sockaddr *  addr)
static

Definition at line 18 of file test_ifaddrs.c.

19{
20 char buffer[256];
21 int ret,
22 len;
23
24 switch (addr->sa_family)
25 {
26 case AF_INET:
27 len = sizeof(struct sockaddr_in);
28 break;
29 case AF_INET6:
30 len = sizeof(struct sockaddr_in6);
31 break;
32 default:
33 len = sizeof(struct sockaddr_storage);
34 break;
35 }
36
37 ret = getnameinfo(addr, len, buffer, sizeof(buffer), NULL, 0,
38 NI_NUMERICHOST);
39 if (ret != 0)
40 printf("[unknown: family %d]", addr->sa_family);
41 else
42 printf("%s", buffer);
43}
const void size_t len

References len, and printf.

Referenced by callback().