|
|
|
@ -1,6 +1,6 @@ |
|
|
|
|
--- /dev/null
|
|
|
|
|
+++ b/extensions/libxt_id.c
|
|
|
|
|
@@ -0,0 +1,45 @@
|
|
|
|
|
@@ -0,0 +1,55 @@
|
|
|
|
|
+/* Shared library add-on to iptables to add id match support. */
|
|
|
|
|
+
|
|
|
|
|
+#include <stdio.h>
|
|
|
|
@ -22,13 +22,22 @@ |
|
|
|
|
+ XTOPT_TABLEEND,
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
|
|
+static void
|
|
|
|
|
+id_print(const void *ip, const struct xt_entry_match *match, int numeric)
|
|
|
|
|
+{
|
|
|
|
|
+ struct xt_id_info *idinfo = (void *)match->data;
|
|
|
|
|
+
|
|
|
|
|
+ printf(" ID:%08lx", idinfo->id);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+/* Saves the union ipt_matchinfo in parsable form to stdout. */
|
|
|
|
|
+static void
|
|
|
|
|
+id_save(const void *ip, const struct xt_entry_match *match)
|
|
|
|
|
+{
|
|
|
|
|
+ struct xt_id_info *idinfo = (void *)match->data;
|
|
|
|
|
+
|
|
|
|
|
+ printf(" --id %lu", idinfo->id);
|
|
|
|
|
+ printf(" --id 0x%lx", idinfo->id);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+static struct xtables_match id_match = {
|
|
|
|
@ -37,6 +46,7 @@ |
|
|
|
|
+ .version = XTABLES_VERSION,
|
|
|
|
|
+ .size = XT_ALIGN(sizeof(struct xt_id_info)),
|
|
|
|
|
+ .userspacesize = XT_ALIGN(sizeof(struct xt_id_info)),
|
|
|
|
|
+ .print = id_print,
|
|
|
|
|
+ .save = id_save,
|
|
|
|
|
+ .x6_parse = xtables_option_parse,
|
|
|
|
|
+ .x6_options = id_opts,
|
|
|
|
|