diff options
author | Vadim Kochan <vadim4j@gmail.com> | 2015-07-19 14:41:18 +0300 |
---|---|---|
committer | Daniel Borkmann <daniel@iogearbox.net> | 2015-07-20 10:03:54 +0200 |
commit | a1e7c1dc527ca3c37349cebc6fbeaa12a594fcf3 (patch) | |
tree | 6f9eefe9f5b3dfaf9ecfd4c1964e0ec0c6bf2c5d /flowtop.c | |
parent | bcc10fdc239d2fe7073637df4febfe60463b4b46 (diff) |
sysctl: Add sysctl module with /proc/sys helpers
Moved sysctl get/set funcs from flowtop to separated sysctl module.
Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Diffstat (limited to 'flowtop.c')
-rw-r--r-- | flowtop.c | 55 |
1 files changed, 1 insertions, 54 deletions
@@ -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; @@ -222,60 +223,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) { |