aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--example/ndpiReader.c16
-rw-r--r--src/include/ndpi_define.h.in8
2 files changed, 20 insertions, 4 deletions
diff --git a/example/ndpiReader.c b/example/ndpiReader.c
index ef74a5a99..99b24874b 100644
--- a/example/ndpiReader.c
+++ b/example/ndpiReader.c
@@ -3724,7 +3724,9 @@ static void hllUnitTest() {
static void bitmapUnitTest() {
u_int32_t val, i, j;
+ u_int64_t val64;
+ /* With a 32 bit integer */
for(i=0; i<32; i++) {
NDPI_ZERO_BIT(val);
NDPI_SET_BIT(val, i);
@@ -3737,6 +3739,20 @@ static void bitmapUnitTest() {
}
}
}
+
+ /* With a 64 bit integer */
+ for(i=0; i<64; i++) {
+ NDPI_ZERO_BIT(val64);
+ NDPI_SET_BIT(val64, i);
+
+ assert(NDPI_ISSET_BIT(val64, i));
+
+ for(j=0; j<64; j++) {
+ if(j != i) {
+ assert(!NDPI_ISSET_BIT(val64, j));
+ }
+ }
+ }
}
/* *********************************************** */
diff --git a/src/include/ndpi_define.h.in b/src/include/ndpi_define.h.in
index 6f4a4ee38..dd4b6dea6 100644
--- a/src/include/ndpi_define.h.in
+++ b/src/include/ndpi_define.h.in
@@ -282,10 +282,10 @@
#define NDPI_BITMASK_SET_ALL(a) NDPI_ONE(&a)
#define NDPI_BITMASK_SET(a, b) { memcpy(&a, &b, sizeof(NDPI_PROTOCOL_BITMASK)); }
-#define NDPI_SET_BIT(num, n) num |= 1UL << ( n )
-#define NDPI_CLR_BIT(num, n) num &= ~(1UL << ( n ))
-#define NDPI_CLR_BIT(num, n) num &= ~(1UL << ( n ))
-#define NDPI_ISSET_BIT(num, n) (num & (1UL << ( n )))
+#define NDPI_SET_BIT(num, n) num |= 1ULL << ( n )
+#define NDPI_CLR_BIT(num, n) num &= ~(1ULL << ( n ))
+#define NDPI_CLR_BIT(num, n) num &= ~(1ULL << ( n ))
+#define NDPI_ISSET_BIT(num, n) (num & (1ULL << ( n )))
#define NDPI_ZERO_BIT(num) num = 0
/* this is a very very tricky macro *g*,