show in-memory pools in ipsec statusall

This commit is contained in:
Andreas Steffen 2010-04-11 11:46:47 +02:00
parent b1701d097c
commit ec96692c38
3 changed files with 36 additions and 1 deletions

View File

@ -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);

View File

@ -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);
}

View File

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