]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
util-device: add an iteration function
authorEric Leblond <eric@regit.org>
Tue, 26 Dec 2017 21:47:44 +0000 (22:47 +0100)
committerEric Leblond <eric@regit.org>
Tue, 6 Feb 2018 15:58:19 +0000 (16:58 +0100)
src/util-device.c
src/util-device.h

index d21a14b27b1b8977285b35c76aee23b30d680139..1a7aacf0206003c8bf84510dc5f2ffac23665212 100644 (file)
@@ -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;
+}
+
index 3dd634567102bf94d56227903459f4407e4b9584..80b372ac99c6a1969bc6d6ae3b440c79933bdf86 100644 (file)
@@ -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);