#include "postgres.h"#include <arpa/inet.h>#include <netinet/in.h>#include <sys/socket.h>#include "libpq/ip.h"
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[]) |
| static void callback | ( | struct sockaddr * | addr, | |
| struct sockaddr * | mask, | |||
| void * | unused | |||
| ) | [static] |
Definition at line 49 of file test_ifaddrs.c.
References print_addr().
Referenced by btbulkdelete(), btvacuumpage(), generate_implied_equalities_for_column(), ginbulkdelete(), gistbulkdelete(), hashbulkdelete(), IndexBuildHeapScan(), main(), RangeVarGetRelidExtended(), SlruScanDirectory(), and spgbulkdelete().
{
printf("addr: ");
print_addr(addr);
printf(" mask: ");
print_addr(mask);
printf("\n");
}
| int main | ( | int | argc, | |
| char * | argv[] | |||
| ) |
Definition at line 59 of file test_ifaddrs.c.
References callback(), NULL, pg_foreach_ifaddr(), and strerror().
{
#ifdef WIN32
WSADATA wsaData;
if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0)
{
fprintf(stderr, "WSAStartup failed\n");
return 1;
}
#endif
if (pg_foreach_ifaddr(callback, NULL) < 0)
fprintf(stderr, "pg_foreach_ifaddr failed: %s\n", strerror(errno));
return 0;
}
| static void print_addr | ( | struct sockaddr * | addr | ) | [static] |
Definition at line 19 of file test_ifaddrs.c.
References getnameinfo, NI_NUMERICHOST, and NULL.
Referenced by callback().
{
char buffer[256];
int ret,
len;
switch (addr->sa_family)
{
case AF_INET:
len = sizeof(struct sockaddr_in);
break;
#ifdef HAVE_IPV6
case AF_INET6:
len = sizeof(struct sockaddr_in6);
break;
#endif
default:
len = sizeof(struct sockaddr_storage);
break;
}
ret = getnameinfo(addr, len, buffer, sizeof(buffer), NULL, 0,
NI_NUMERICHOST);
if (ret != 0)
printf("[unknown: family %d]", addr->sa_family);
else
printf("%s", buffer);
}
1.7.1