summaryrefslogtreecommitdiffstats
path: root/include/libipset/utils.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/libipset/utils.h')
-rw-r--r--include/libipset/utils.h45
1 files changed, 45 insertions, 0 deletions
diff --git a/include/libipset/utils.h b/include/libipset/utils.h
new file mode 100644
index 0000000..2d12e91
--- /dev/null
+++ b/include/libipset/utils.h
@@ -0,0 +1,45 @@
+/* Copyright 2007-2010 Jozsef Kadlecsik (kadlec@blackhole.kfki.hu)
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+#ifndef LIBIPSET_UTILS_H
+#define LIBIPSET_UTILS_H
+
+#include <stdbool.h> /* bool */
+#include <string.h> /* strcmp */
+#include <netinet/in.h> /* struct in[6]_addr */
+
+/* String equality tests */
+#define STREQ(a,b) (strcmp(a,b) == 0)
+#define STRNEQ(a,b,n) (strncmp(a,b,n) == 0)
+
+/* Stringify tokens */
+#define _STR(c) #c
+#define STR(c) _STR(c)
+
+/* Min/max */
+#define MIN(a, b) (a < b ? a : b)
+#define MAX(a, b) (a > b ? a : b)
+
+#define UNUSED __attribute__ ((unused))
+
+static inline void
+in4cpy(struct in_addr *dest, const struct in_addr *src)
+{
+ dest->s_addr = src->s_addr;
+}
+
+static inline void
+in6cpy(struct in6_addr *dest, const struct in6_addr *src)
+{
+ memcpy(dest, src, sizeof(struct in6_addr));
+}
+
+extern char * ipset_strchr(const char *str, const char *sep);
+extern bool ipset_name_match(const char *arg, const char * const name[]);
+extern void ipset_shift_argv(int *argc, char *argv[], int from);
+extern void ipset_strncpy(char *dst, const char *src, size_t len);
+
+#endif /* LIBIPSET_UTILS_H */