diff options
author | Andreas Steffen <andreas.steffen@strongswan.org> | 2010-04-11 11:46:47 +0200 |
---|---|---|
committer | Andreas Steffen <andreas.steffen@strongswan.org> | 2010-04-11 11:46:47 +0200 |
commit | ec96692c38b1aea05d4e6affe1c4b32b60c6655a (patch) | |
tree | 51e0dadf38ce1687c6067eb7b233c67ef0152f96 /src | |
parent | b1701d097cf77882413b35e91f1bbd3bb0000130 (diff) | |
download | strongswan-ec96692c38b1aea05d4e6affe1c4b32b60c6655a.tar.bz2 strongswan-ec96692c38b1aea05d4e6affe1c4b32b60c6655a.tar.xz |
show in-memory pools in ipsec statusall
Diffstat (limited to 'src')
-rw-r--r-- | src/pluto/log.c | 4 | ||||
-rw-r--r-- | src/pluto/whack_attribute.c | 26 | ||||
-rw-r--r-- | src/pluto/whack_attribute.h | 7 |
3 files changed, 36 insertions, 1 deletions
diff --git a/src/pluto/log.c b/src/pluto/log.c index 7f1d2edd2..444ac2220 100644 --- a/src/pluto/log.c +++ b/src/pluto/log.c @@ -40,7 +40,8 @@ #include "connections.h" #include "myid.h" #include "kernel.h" -#include "whack.h" /* needs connections.h */ +#include "whack.h" +#include "whack_attribute.h" #include "timer.h" /* close one per-peer log */ @@ -856,6 +857,7 @@ void show_status(bool all, const char *name) show_myid_status(); show_loaded_plugins(); show_debug_status(); + show_pools(name); whack_log(RC_COMMENT, BLANK_FORMAT); /* spacer */ } show_connections_status(all, name); diff --git a/src/pluto/whack_attribute.c b/src/pluto/whack_attribute.c index f8a2f6647..11692dc35 100644 --- a/src/pluto/whack_attribute.c +++ b/src/pluto/whack_attribute.c @@ -332,3 +332,29 @@ void list_leases(char *name, char *addr, char *id) DESTROY_IF(address); } +/** + * see header file + */ +void show_pools(const char *name) +{ + enumerator_t *enumerator; + u_int size, online, offline; + char *pool; + bool first = TRUE; + + enumerator = whack_attr->create_pool_enumerator(whack_attr); + while (enumerator->enumerate(enumerator, &pool, &size, &online, &offline)) + { + if (name && !streq(name, pool)) + { + continue; + } + if (first) + { + first = FALSE; + whack_log(RC_COMMENT, "Virtual IP pools (size/online/offline):"); + } + whack_log(RC_COMMENT, "\"%s\": %u/%u/%u", pool, size, online, offline); + } + enumerator->destroy(enumerator); +} diff --git a/src/pluto/whack_attribute.h b/src/pluto/whack_attribute.h index b22648530..58441b973 100644 --- a/src/pluto/whack_attribute.h +++ b/src/pluto/whack_attribute.h @@ -101,4 +101,11 @@ void whack_attribute_finalize(); */ void list_leases(char *name, char *addr, char *id); +/** + * List either all pools or the pool with a given name + * + * @param name name of the pool, NULL for all pools + */ +void show_pools(const char *name); + #endif /** WHACK_ATTRIBUTE_H_ @}*/ |