1 /*        $NetBSD: printip.c,v 1.2 2012/07/22 14:27:36 darrenr Exp $  */
2 
3 /*
4  * Copyright (C) 2012 by Darren Reed.
5  *
6  * See the IPFILTER.LICENCE file for details on licencing.
7  *
8  * Id: printip.c,v 1.1.1.2 2012/07/22 13:44:40 darrenr Exp $
9  */
10 
11 #include "ipf.h"
12 
13 
14 void
printip(family,addr)15 printip(family, addr)
16           int family;
17           u_32_t *addr;
18 {
19           struct in_addr ipa;
20 
21           if (family == AF_INET) {
22                     ipa.s_addr = *addr;
23                     if (ntohl(ipa.s_addr) < 256)
24                               PRINTF("%lu", (u_long)ntohl(ipa.s_addr));
25                     else
26                               PRINTF("%s", inet_ntoa(ipa));
27           }
28 #ifdef AF_INET6
29           else if (family == AF_INET6) {
30                     char buf[INET6_ADDRSTRLEN + 1];
31                     const char *str;
32 
33                     buf[0] = '\0';
34                     str = inet_ntop(AF_INET6, addr, buf, sizeof(buf) - 1);
35                     if (str != NULL)
36                               PRINTF("%s", str);
37                     else
38                               PRINTF("???");
39           }
40 #endif
41           else
42                     PRINTF("?(%d)?", family);
43 }
44