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 }
int pg_foreach_ifaddr(PgIfAddrCallback callback, void *cb_data)
Definition: ifaddr.c:425
#define fprintf
Definition: port.h:242
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().