From: Eric Leblond Date: Tue, 26 Dec 2017 21:47:44 +0000 (+0100) Subject: util-device: add an iteration function X-Git-Tag: suricata-4.1.0-beta1~206 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0998f37b78fd86d8473d35074b245b01d1505e9e;p=thirdparty%2Fsuricata.git util-device: add an iteration function --- 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);