From 0998f37b78fd86d8473d35074b245b01d1505e9e Mon Sep 17 00:00:00 2001 From: Eric Leblond Date: Tue, 26 Dec 2017 22:47:44 +0100 Subject: [PATCH] util-device: add an iteration function --- src/util-device.c | 18 ++++++++++++++++++ src/util-device.h | 2 ++ 2 files changed, 20 insertions(+) diff --git a/src/util-device.c b/src/util-device.c index d21a14b27b..1a7aacf020 100644 --- a/src/util-device.c +++ b/src/util-device.c @@ -370,4 +370,22 @@ TmEcode LiveDeviceIfaceList(json_t *cmd, json_t *answer, void *data) json_object_set_new(answer, "message", jdata); SCReturnInt(TM_ECODE_OK); } + #endif /* BUILD_UNIX_SOCKET */ + +LiveDevice *LiveDeviceForEach(LiveDevice **ldev, LiveDevice **ndev) +{ + if (*ldev == NULL) { + *ldev = TAILQ_FIRST(&live_devices); + *ndev = TAILQ_NEXT(*ldev, next); + return *ldev; + } else { + *ldev = *ndev; + if (*ldev) { + *ndev = TAILQ_NEXT(*ldev, next); + } + return *ldev; + } + return NULL; +} + diff --git a/src/util-device.h b/src/util-device.h index 3dd6345671..80b372ac99 100644 --- a/src/util-device.h +++ b/src/util-device.h @@ -60,6 +60,8 @@ void LiveDeviceHasNoStats(void); int LiveDeviceListClean(void); int LiveBuildDeviceListCustom(const char *base, const char *itemname); +LiveDevice *LiveDeviceForEach(LiveDevice **ldev, LiveDevice **ndev); + #ifdef BUILD_UNIX_SOCKET TmEcode LiveDeviceIfaceStat(json_t *cmd, json_t *server_msg, void *data); TmEcode LiveDeviceIfaceList(json_t *cmd, json_t *server_msg, void *data);