diff options
-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_ @}*/ |