From: Vadim Kochan <[email protected]>

Moved sysctl get/set funcs from flowtop to separated sysctl module.

Signed-off-by: Vadim Kochan <[email protected]>
---
 flowtop.c        | 55 +---------------------------------------------
 flowtop/Makefile |  1 +
 sysctl.c         | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 sysctl.h         |  7 ++++++
 4 files changed, 76 insertions(+), 54 deletions(-)
 create mode 100644 sysctl.c
 create mode 100644 sysctl.h

diff --git a/flowtop.c b/flowtop.c
index bfd43a9..6f57897 100644
--- a/flowtop.c
+++ b/flowtop.c
@@ -39,6 +39,7 @@
 #include "pkt_buff.h"
 #include "screen.h"
 #include "proc.h"
+#include "sysctl.h"
 
 struct flow_entry {
        uint32_t flow_id, use, status;
@@ -223,60 +224,6 @@ static const struct nfct_filter_ipv6 filter_ipv6 = {
        .mask = { 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff },
 };
 
-#define SYS_PATH "/proc/sys/"
-
-static int sysctl_set_int(char *file, int value)
-{
-       char path[PATH_MAX];
-       char str[64];
-       ssize_t ret;
-       int fd;
-
-       strncpy(path, SYS_PATH, PATH_MAX);
-       strncat(path, file, PATH_MAX - sizeof(SYS_PATH) - 1);
-
-       fd = open(path, O_WRONLY);
-       if (unlikely(fd < 0))
-               return -1;
-
-       ret = snprintf(str, 63, "%d", value);
-       if (ret < 0) {
-               close(fd);
-               return -1;
-       }
-
-       ret = write(fd, str, strlen(str));
-
-       close(fd);
-       return ret <= 0 ? -1 : 0;
-}
-
-static int sysctl_get_int(char *file, int *value)
-{
-       char path[PATH_MAX];
-       char str[64];
-       ssize_t ret;
-       int fd;
-
-       strncpy(path, SYS_PATH, PATH_MAX);
-       strncat(path, file, PATH_MAX - sizeof(SYS_PATH) - 1);
-
-       fd = open(path, O_RDONLY);
-       if (fd < 0)
-               return -1;
-
-       ret = read(fd, str, sizeof(str));
-       if (ret > 0) {
-               *value = atoi(str);
-               ret = 0;
-       } else {
-               ret = -1;
-       }
-
-       close(fd);
-       return ret;
-}
-
 static void signal_handler(int number)
 {
        switch (number) {
diff --git a/flowtop/Makefile b/flowtop/Makefile
index 85cb0b6..edb5829 100644
--- a/flowtop/Makefile
+++ b/flowtop/Makefile
@@ -23,6 +23,7 @@ flowtop-objs =        xmalloc.o \
                tprintf.o \
                screen.o \
                die.o \
+               sysctl.o \
                flowtop.o
 
 ifeq ($(CONFIG_GEOIP), 1)
diff --git a/sysctl.c b/sysctl.c
new file mode 100644
index 0000000..283d403
--- /dev/null
+++ b/sysctl.c
@@ -0,0 +1,67 @@
+/*
+ * sysctl - sysctl set/get helpers
+ * Subject to the GPL, version 2.
+ */
+
+#include <stdio.h>
+#include <fcntl.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <linux/limits.h>
+
+#include "built_in.h"
+
+#define SYS_PATH "/proc/sys/"
+
+int sysctl_set_int(const char *file, int value)
+{
+       char path[PATH_MAX];
+       char str[64];
+       ssize_t ret;
+       int fd;
+
+       strncpy(path, SYS_PATH, PATH_MAX);
+       strncat(path, file, PATH_MAX - sizeof(SYS_PATH) - 1);
+
+       fd = open(path, O_WRONLY);
+       if (unlikely(fd < 0))
+               return -1;
+
+       ret = snprintf(str, 63, "%d", value);
+       if (ret < 0) {
+               close(fd);
+               return -1;
+       }
+
+       ret = write(fd, str, strlen(str));
+
+       close(fd);
+       return ret <= 0 ? -1 : 0;
+}
+
+int sysctl_get_int(const char *file, int *value)
+{
+       char path[PATH_MAX];
+       char str[64];
+       ssize_t ret;
+       int fd;
+
+       strncpy(path, SYS_PATH, PATH_MAX);
+       strncat(path, file, PATH_MAX - sizeof(SYS_PATH) - 1);
+
+       fd = open(path, O_RDONLY);
+       if (fd < 0)
+               return -1;
+
+       ret = read(fd, str, sizeof(str));
+       if (ret > 0) {
+               *value = atoi(str);
+               ret = 0;
+       } else {
+               ret = -1;
+       }
+
+       close(fd);
+       return ret;
+}
diff --git a/sysctl.h b/sysctl.h
new file mode 100644
index 0000000..2f88f0a
--- /dev/null
+++ b/sysctl.h
@@ -0,0 +1,7 @@
+#ifndef SYSCTL_H
+#define SYSCTL_H
+
+int sysctl_set_int(const char *file, int value);
+int sysctl_get_int(const char *file, int *value);
+
+#endif
-- 
2.4.2

-- 
You received this message because you are subscribed to the Google Groups 
"netsniff-ng" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to