diff options
author | Andreas Steffen <andreas.steffen@strongswan.org> | 2010-05-20 17:24:43 +0200 |
---|---|---|
committer | Andreas Steffen <andreas.steffen@strongswan.org> | 2010-05-20 17:24:43 +0200 |
commit | c2d10df6e7e0f371c07fb86bd1ed9760e92989b0 (patch) | |
tree | a6b13c7fefabdb8bfd0a1db39a6aab8f3ba02b8e /src | |
parent | 05f1096cd84daafa4f46ccfbf401dc262c7086cc (diff) | |
download | strongswan-c2d10df6e7e0f371c07fb86bd1ed9760e92989b0.tar.bz2 strongswan-c2d10df6e7e0f371c07fb86bd1ed9760e92989b0.tar.xz |
implement ipsec pool -showattr function
Diffstat (limited to 'src')
-rw-r--r-- | src/libhydra/plugins/attr_sql/pool.c | 8 | ||||
-rw-r--r-- | src/libhydra/plugins/attr_sql/pool_attributes.c | 39 | ||||
-rw-r--r-- | src/libhydra/plugins/attr_sql/pool_attributes.h | 10 |
3 files changed, 57 insertions, 0 deletions
diff --git a/src/libhydra/plugins/attr_sql/pool.c b/src/libhydra/plugins/attr_sql/pool.c index 771281467..ac11c4d03 100644 --- a/src/libhydra/plugins/attr_sql/pool.c +++ b/src/libhydra/plugins/attr_sql/pool.c @@ -957,6 +957,7 @@ static void do_args(int argc, char *argv[]) OP_ADD_ATTR, OP_DEL, OP_DEL_ATTR, + OP_SHOW_ATTR, OP_RESIZE, OP_LEASES, OP_PURGE, @@ -984,6 +985,7 @@ static void do_args(int argc, char *argv[]) { "statusattr", no_argument, NULL, '1' }, { "addattr", required_argument, NULL, '2' }, { "delattr", required_argument, NULL, '3' }, + { "showattr", no_argument, NULL, '4' }, { "batch", required_argument, NULL, 'b' }, { "start", required_argument, NULL, 's' }, @@ -1040,6 +1042,9 @@ static void do_args(int argc, char *argv[]) name = optarg; operation = OP_DEL_ATTR; continue; + case '4': + operation = OP_SHOW_ATTR; + continue; case 'r': name = optarg; operation = OP_RESIZE; @@ -1162,6 +1167,9 @@ static void do_args(int argc, char *argv[]) del_attr(name, value, value_type); break; + case OP_SHOW_ATTR: + show_attr(); + break; case OP_RESIZE: if (end == NULL) { diff --git a/src/libhydra/plugins/attr_sql/pool_attributes.c b/src/libhydra/plugins/attr_sql/pool_attributes.c index 5b1c670bc..52314aa89 100644 --- a/src/libhydra/plugins/attr_sql/pool_attributes.c +++ b/src/libhydra/plugins/attr_sql/pool_attributes.c @@ -29,6 +29,13 @@ extern database_t *db; #define UNITY_NETWORK_LEN 14 +ENUM(value_type_names, VALUE_HEX, VALUE_SUBNET, + "hex", + "string", + "server", + "subnet" +); + typedef struct attr_info_t attr_info_t; struct attr_info_t { @@ -448,3 +455,35 @@ void status_attr(void) enumerator->destroy(enumerator); } } + +/** + * ipsec pool --showattr - show all supported attribute keywords + */ +void show_attr(void) +{ + int i; + + for (i = 0; i < countof(attr_info); i++) + { + char value_name[10]; + + + snprintf(value_name, sizeof(value_name), "%N", + value_type_names, attr_info[i].value_type); + + printf("%-19s --%-6s (%N", + attr_info[i].keyword, value_name, + configuration_attribute_type_names, attr_info[i].type); + + if (attr_info[i].type_ip6) + { + printf(", %N)\n", + configuration_attribute_type_names, attr_info[i].type_ip6); + } + else + { + printf(")\n"); + } + } +} + diff --git a/src/libhydra/plugins/attr_sql/pool_attributes.h b/src/libhydra/plugins/attr_sql/pool_attributes.h index df7b57de4..fcbe70f49 100644 --- a/src/libhydra/plugins/attr_sql/pool_attributes.h +++ b/src/libhydra/plugins/attr_sql/pool_attributes.h @@ -29,6 +29,11 @@ enum value_type_t { }; /** + * enum names for value_type_t. + */ +extern enum_name_t *value_type_names; + +/** * ipsec pool --addattr <type> - add attribute entry */ void add_attr(char *name, char *value, value_type_t value_type); @@ -43,6 +48,11 @@ void del_attr(char *name, char *value, value_type_t value_type); */ void status_attr(void); +/** + * ipsec pool --showattr - show all supported attribute keywords + */ +void show_attr(void); + #endif /* POOL_ATTRIBUTES_H_ */ |