tcpdump mailing list archives
[PATCH 1/2] util.c: Add the `mask62plen' utility function.
From: Florian Forster <tcpdump () nospam verplant org>
Date: Sun, 17 May 2009 00:05:29 +0200
From: Florian Forster <octo () leeloo lan home verplant org>
The function does the same as `mask2plen' but for IPv6.
Signed-off-by: Florian Forster <octo () leeloo lan home verplant org>
---
interface.h | 1 +
util.c | 29 +++++++++++++++++++++++++++++
2 files changed, 30 insertions(+), 0 deletions(-)
diff --git a/interface.h b/interface.h
index 688a2ac..f6a4a19 100644
--- a/interface.h
+++ b/interface.h
@@ -336,6 +336,7 @@ extern void ripng_print(const u_char *, unsigned int);
extern int rt6_print(const u_char *, const u_char *);
extern void ospf6_print(const u_char *, u_int);
extern void dhcp6_print(const u_char *, u_int);
+extern int mask62plen(const u_char *);
#endif /*INET6*/
extern u_short in_cksum(const u_short *, register u_int, int);
extern u_int16_t in_cksum_shouldbe(u_int16_t, u_int16_t);
diff --git a/util.c b/util.c
index 784b09b..526a061 100644
--- a/util.c
+++ b/util.c
@@ -439,6 +439,35 @@ mask2plen (u_int32_t mask)
return (prefix_len);
}
+#ifdef INET6
+int mask62plen(const u_char *mask)
+{
+ u_char bitmasks[] =
+ {
+ 0x00, 0x80, 0xc0, 0xe0,
+ 0xf0, 0xf8, 0xfc, 0xfe, 0xff
+ };
+ int cidr_len = 0;
+ int byte;
+
+ for (byte = 0; byte < 16; byte++)
+ {
+ int bits;
+
+ for (bits = 0; bits < (sizeof (bitmasks) / sizeof (bitmasks[0])); bits++)
+ if (mask[byte] == bitmasks[bits])
+ {
+ cidr_len += bits;
+ break;
+ }
+
+ if (mask[byte] != 0xff)
+ break;
+ }
+ return (cidr_len);
+}
+#endif /* INET6 */
+
/* VARARGS */
void
error(const char *fmt, ...)
--
1.6.2.4
-
This is the tcpdump-workers list.
Visit https://cod.sandelman.ca/ to unsubscribe.
Current thread:
- [PATCH] print-olsr: Don't trust the package payload. Florian Forster (May 16)
- [PATCH 1/2] util.c: Add the `mask62plen' utility function. Florian Forster (May 16)
- [PATCH 2/2] print-olsr: Add basic IPv6 support. Florian Forster (May 16)
- Re: [PATCH 2/2] print-olsr: Add basic IPv6 support. Guy Harris (May 21)
- Re: [PATCH 1/2] util.c: Add the `mask62plen' utility function. Guy Harris (May 21)
- [PATCH 2/2] print-olsr: Add basic IPv6 support. Florian Forster (May 16)
- Re: [PATCH] print-olsr: Don't trust the package payload. Guy Harris (May 21)
- [PATCH 1/2] util.c: Add the `mask62plen' utility function. Florian Forster (May 16)
