diff --git a/src/daemon.c b/src/daemon.c index ac2dae7..3007454 100644 --- a/src/daemon.c +++ b/src/daemon.c @@ -85,7 +85,6 @@ f2b_cmsg_process(const f2b_cmsg_t *msg, char *res, size_t ressize) { void f2b_cmsg_process(const f2b_cmsg_t *msg, char *res, size_t ressize) { const char *args[DATA_ARGS_MAX]; - const char *fmt; f2b_jail_t *jail = NULL; f2b_ipaddr_t *addr = NULL; char line[LINE_MAX]; @@ -139,23 +138,7 @@ f2b_cmsg_process(const f2b_cmsg_t *msg, char *res, size_t ressize) { strlcat(res, line, ressize); } } else if (msg->type == CMD_JAIL_STATUS) { - fmt = "name: %s\n" - "enabled: %s\n" - "maxretry: %d\n" - "times:\n" - " bantime: %d\n" - " findtime: %d\n" - " expiretime: %d\n" - "incr:\n" - " bantime: %.1f\n" - " findtime: %.1f\n" - "stats:\n" - " banned: %d\n" - " matched: %d\n"; - snprintf(res, ressize, fmt, jail->name, jail->enabled ? "yes" : "no", jail->maxretry, - jail->bantime, jail->findtime, jail->expiretime, - jail->incr_bantime, jail->incr_findtime, - jail->bancount, jail->matchcount); + f2b_jail_get_status(jail, res, ressize); } else if (msg->type == CMD_JAIL_IP_SHOW) { f2b_ipaddr_status(addr, res, ressize); } else if (msg->type == CMD_JAIL_IP_BAN) { diff --git a/src/jail.c b/src/jail.c index 125b39f..903f7d3 100644 --- a/src/jail.c +++ b/src/jail.c @@ -412,3 +412,27 @@ f2b_jail_stop(f2b_jail_t *jail) { return errors; } + +void +f2b_jail_get_status(f2b_jail_t *jail, char *res, size_t ressize) { + assert(jail != NULL); + assert(res != NULL); + const char *fmt = + "name: %s\n" + "enabled: %s\n" + "maxretry: %d\n" + "times:\n" + " bantime: %d\n" + " findtime: %d\n" + " expiretime: %d\n" + "incr:\n" + " bantime: %.1f\n" + " findtime: %.1f\n" + "stats:\n" + " banned: %d\n" + " matched: %d\n"; + snprintf(res, ressize, fmt, jail->name, jail->enabled ? "yes" : "no", jail->maxretry, + jail->bantime, jail->findtime, jail->expiretime, + jail->incr_bantime, jail->incr_findtime, + jail->bancount, jail->matchcount); +} diff --git a/src/jail.h b/src/jail.h index e8f5339..426fbbd 100644 --- a/src/jail.h +++ b/src/jail.h @@ -52,4 +52,6 @@ bool f2b_jail_unban (f2b_jail_t *jail, f2b_ipaddr_t *addr); bool f2b_jail_init (f2b_jail_t *jail, f2b_config_t *config); size_t f2b_jail_process (f2b_jail_t *jail); bool f2b_jail_stop (f2b_jail_t *jail); + +void f2b_jail_get_status(f2b_jail_t *jail, char *res, size_t ressize); #endif /* F2B_JAIL_H_ */