summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJozsef Kadlecsik <kadlec@blackhole.kfki.hu>2010-11-05 17:02:21 +0100
committerJozsef Kadlecsik <kadlec@blackhole.kfki.hu>2010-11-05 17:02:21 +0100
commit6e42ee58c2710f9cbe36655e3c3093af5b7c87c5 (patch)
treedfdade3649771d2469f7dfa2188c12d42cdf3be2
parent48d8a10a545e4ef4092550b45f6cba38e0a8c94f (diff)
downloadipset-6e42ee58c2710f9cbe36655e3c3093af5b7c87c5.tar.gz
The protocol extended with the command MODIFY.
The command is not used yet, but better to reserve it already.
-rw-r--r--include/libipset/linux_ip_set.h37
-rw-r--r--kernel/include/linux/netfilter/ip_set.h37
-rw-r--r--lib/PROTOCOL4
3 files changed, 41 insertions, 37 deletions
diff --git a/include/libipset/linux_ip_set.h b/include/libipset/linux_ip_set.h
index c3296df..a122ee7 100644
--- a/include/libipset/linux_ip_set.h
+++ b/include/libipset/linux_ip_set.h
@@ -20,30 +20,31 @@
/* Message types and commands */
enum ipset_cmd {
IPSET_CMD_NONE,
- IPSET_CMD_CREATE, /* 1: Create a new (empty) set */
- IPSET_CMD_DESTROY, /* 2: Remove a (empty) set */
- IPSET_CMD_FLUSH, /* 3: Remove all elements from a set */
- IPSET_CMD_RENAME, /* 4: Rename a set */
- IPSET_CMD_SWAP, /* 5: Swap two sets */
- IPSET_CMD_LIST, /* 6: List sets */
- IPSET_CMD_SAVE, /* 7: Save sets */
- IPSET_CMD_ADD, /* 8: Add an element to a set */
- IPSET_CMD_DEL, /* 9: Delete an element from a set */
- IPSET_CMD_TEST, /* 10: Test an element in a set */
- IPSET_CMD_HEADER, /* 11: Get set header data only */
- IPSET_CMD_TYPE, /* 12: Get set type */
- IPSET_CMD_PROTOCOL, /* 13: Return protocol version */
+ IPSET_CMD_PROTOCOL, /* 1: Return protocol version */
+ IPSET_CMD_CREATE, /* 2: Create a new (empty) set */
+ IPSET_CMD_MODIFY, /* 3: Modify an existing set */
+ IPSET_CMD_DESTROY, /* 4: Destroy a (empty) set */
+ IPSET_CMD_FLUSH, /* 5: Remove all elements from a set */
+ IPSET_CMD_RENAME, /* 6: Rename a set */
+ IPSET_CMD_SWAP, /* 7: Swap two sets */
+ IPSET_CMD_LIST, /* 8: List sets */
+ IPSET_CMD_SAVE, /* 9: Save sets */
+ IPSET_CMD_ADD, /* 10: Add an element to a set */
+ IPSET_CMD_DEL, /* 11: Delete an element from a set */
+ IPSET_CMD_TEST, /* 12: Test an element in a set */
+ IPSET_CMD_HEADER, /* 13: Get set header data only */
+ IPSET_CMD_TYPE, /* 14: Get set type */
IPSET_MSG_MAX, /* Netlink message commands */
/* Commands in userspace: */
- IPSET_CMD_RESTORE = IPSET_MSG_MAX, /* 14: Enter restore mode */
- IPSET_CMD_HELP, /* 15: Get help */
- IPSET_CMD_VERSION, /* 16: Get program version */
- IPSET_CMD_QUIT, /* 17: Quit from interactive mode */
+ IPSET_CMD_RESTORE = IPSET_MSG_MAX, /* 15: Enter restore mode */
+ IPSET_CMD_HELP, /* 16: Get help */
+ IPSET_CMD_VERSION, /* 17: Get program version */
+ IPSET_CMD_QUIT, /* 18: Quit from interactive mode */
IPSET_CMD_MAX,
- IPSET_CMD_COMMIT = IPSET_CMD_MAX, /* 18: Commit buffered commands */
+ IPSET_CMD_COMMIT = IPSET_CMD_MAX, /* 19: Commit buffered commands */
};
/* Attributes at command level */
diff --git a/kernel/include/linux/netfilter/ip_set.h b/kernel/include/linux/netfilter/ip_set.h
index 8abf8f8..5377cdc 100644
--- a/kernel/include/linux/netfilter/ip_set.h
+++ b/kernel/include/linux/netfilter/ip_set.h
@@ -20,30 +20,31 @@
/* Message types and commands */
enum ipset_cmd {
IPSET_CMD_NONE,
- IPSET_CMD_CREATE, /* 1: Create a new (empty) set */
- IPSET_CMD_DESTROY, /* 2: Remove a (empty) set */
- IPSET_CMD_FLUSH, /* 3: Remove all elements from a set */
- IPSET_CMD_RENAME, /* 4: Rename a set */
- IPSET_CMD_SWAP, /* 5: Swap two sets */
- IPSET_CMD_LIST, /* 6: List sets */
- IPSET_CMD_SAVE, /* 7: Save sets */
- IPSET_CMD_ADD, /* 8: Add an element to a set */
- IPSET_CMD_DEL, /* 9: Delete an element from a set */
- IPSET_CMD_TEST, /* 10: Test an element in a set */
- IPSET_CMD_HEADER, /* 11: Get set header data only */
- IPSET_CMD_TYPE, /* 12: Get set type */
- IPSET_CMD_PROTOCOL, /* 13: Return protocol version */
+ IPSET_CMD_PROTOCOL, /* 1: Return protocol version */
+ IPSET_CMD_CREATE, /* 2: Create a new (empty) set */
+ IPSET_CMD_MODIFY, /* 3: Modify an existing set */
+ IPSET_CMD_DESTROY, /* 4: Destroy a (empty) set */
+ IPSET_CMD_FLUSH, /* 5: Remove all elements from a set */
+ IPSET_CMD_RENAME, /* 6: Rename a set */
+ IPSET_CMD_SWAP, /* 7: Swap two sets */
+ IPSET_CMD_LIST, /* 8: List sets */
+ IPSET_CMD_SAVE, /* 9: Save sets */
+ IPSET_CMD_ADD, /* 10: Add an element to a set */
+ IPSET_CMD_DEL, /* 11: Delete an element from a set */
+ IPSET_CMD_TEST, /* 12: Test an element in a set */
+ IPSET_CMD_HEADER, /* 13: Get set header data only */
+ IPSET_CMD_TYPE, /* 14: Get set type */
IPSET_MSG_MAX, /* Netlink message commands */
/* Commands in userspace: */
- IPSET_CMD_RESTORE = IPSET_MSG_MAX, /* 14: Enter restore mode */
- IPSET_CMD_HELP, /* 15: Get help */
- IPSET_CMD_VERSION, /* 16: Get program version */
- IPSET_CMD_QUIT, /* 17: Quit from interactive mode */
+ IPSET_CMD_RESTORE = IPSET_MSG_MAX, /* 15: Enter restore mode */
+ IPSET_CMD_HELP, /* 16: Get help */
+ IPSET_CMD_VERSION, /* 17: Get program version */
+ IPSET_CMD_QUIT, /* 18: Quit from interactive mode */
IPSET_CMD_MAX,
- IPSET_CMD_COMMIT = IPSET_CMD_MAX, /* 18: Commit buffered commands */
+ IPSET_CMD_COMMIT = IPSET_CMD_MAX, /* 19: Commit buffered commands */
};
/* Attributes at command level */
diff --git a/lib/PROTOCOL b/lib/PROTOCOL
index 6f07445..f48e87d 100644
--- a/lib/PROTOCOL
+++ b/lib/PROTOCOL
@@ -4,7 +4,7 @@ req: msg: IPSET_CMD_PROTOCOL
resp: attr: IPSET_ATTR_PROTOCOL (protocol max)
IPSET_ATTR_PROTOCOL_MIN (protocol min, optional)
-req: msg: IPSET_CMD_CREATE
+req: msg: IPSET_CMD_CREATE|MODIFY
attr: IPSET_ATTR_PROTOCOL
IPSET_ATTR_SETNAME
IPSET_ATTR_TYPENAME
@@ -59,6 +59,8 @@ req: msg: IPSET_CMD_ADD|DEL
adt-specific-data
...
+resp: success/error
+
req: msg: IPSET_CMD_TEST
attr: IPSET_ATTR_PROTOCOL
IPSET_ATTR_SETNAME