aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAndreas Steffen <andreas.steffen@strongswan.org>2010-04-11 11:46:47 +0200
committerAndreas Steffen <andreas.steffen@strongswan.org>2010-04-11 11:46:47 +0200
commitec96692c38b1aea05d4e6affe1c4b32b60c6655a (patch)
tree51e0dadf38ce1687c6067eb7b233c67ef0152f96 /src
parentb1701d097cf77882413b35e91f1bbd3bb0000130 (diff)
downloadstrongswan-ec96692c38b1aea05d4e6affe1c4b32b60c6655a.tar.bz2
strongswan-ec96692c38b1aea05d4e6affe1c4b32b60c6655a.tar.xz
show in-memory pools in ipsec statusall
Diffstat (limited to 'src')
-rw-r--r--src/pluto/log.c4
-rw-r--r--src/pluto/whack_attribute.c26
-rw-r--r--src/pluto/whack_attribute.h7
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_ @}*/