diff --git a/src/host-bit.c b/src/host-bit.c index 757654f7be..6710caebf1 100644 --- a/src/host-bit.c +++ b/src/host-bit.c @@ -181,6 +181,25 @@ int HostBitIsnotset(Host *h, uint32_t idx, uint32_t ts) return 0; } +int HostBitList(Host *h, XBit **iter) +{ + GenericVar *gv = (GenericVar *)*iter; + if (gv == NULL) { + gv = HostGetStorageById(h, host_bit_id); + } else { + gv = gv->next; + } + + for ( ; gv != NULL; gv = gv->next) { + if (gv->type == DETECT_XBITS) { + *iter = (XBit *)gv; + return 1; + } + } + *iter = NULL; + return 0; +} + /* TESTS */ #ifdef UNITTESTS static int HostBitTest01 (void) diff --git a/src/host-bit.h b/src/host-bit.h index f125ed09cb..388147dad5 100644 --- a/src/host-bit.h +++ b/src/host-bit.h @@ -38,4 +38,6 @@ void HostBitUnset(Host *, uint32_t); void HostBitToggle(Host *, uint32_t, uint32_t); int HostBitIsset(Host *, uint32_t, uint32_t); int HostBitIsnotset(Host *, uint32_t, uint32_t); +int HostBitList(Host *, XBit **); + #endif /* __HOST_BIT_H__ */