summaryrefslogtreecommitdiffstats
path: root/contrib/ipfilter/lib/printip.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/ipfilter/lib/printip.c')
-rw-r--r--contrib/ipfilter/lib/printip.c43
1 files changed, 43 insertions, 0 deletions
diff --git a/contrib/ipfilter/lib/printip.c b/contrib/ipfilter/lib/printip.c
new file mode 100644
index 0000000..6d414fe
--- /dev/null
+++ b/contrib/ipfilter/lib/printip.c
@@ -0,0 +1,43 @@
+/* $FreeBSD$ */
+
+/*
+ * Copyright (C) 2012 by Darren Reed.
+ *
+ * See the IPFILTER.LICENCE file for details on licencing.
+ *
+ * $Id$
+ */
+
+#include "ipf.h"
+
+
+void
+printip(family, addr)
+ int family;
+ u_32_t *addr;
+{
+ struct in_addr ipa;
+
+ if (family == AF_INET) {
+ ipa.s_addr = *addr;
+ if (ntohl(ipa.s_addr) < 256)
+ PRINTF("%lu", (u_long)ntohl(ipa.s_addr));
+ else
+ PRINTF("%s", inet_ntoa(ipa));
+ }
+#ifdef AF_INET6
+ else if (family == AF_INET6) {
+ char buf[INET6_ADDRSTRLEN + 1];
+ const char *str;
+
+ buf[0] = '\0';
+ str = inet_ntop(AF_INET6, addr, buf, sizeof(buf) - 1);
+ if (str != NULL)
+ PRINTF("%s", str);
+ else
+ PRINTF("???");
+ }
+#endif
+ else
+ PRINTF("?(%d)?", family);
+}
OpenPOWER on IntegriCloud