From ff7cd4f35c7a52e9352f4d70d8cabe01d2005c17 Mon Sep 17 00:00:00 2001 From: Alex 'AdUser' Z Date: Fri, 11 Nov 2016 17:48:20 +1000 Subject: [PATCH] * handler for CMD_JAIL_SET --- src/daemon.c | 2 ++ src/jail.c | 12 ++++++++++++ src/jail.h | 9 +++++++++ 3 files changed, 23 insertions(+) diff --git a/src/daemon.c b/src/daemon.c index 44f9942..dfd3aa8 100644 --- a/src/daemon.c +++ b/src/daemon.c @@ -132,6 +132,8 @@ f2b_cmsg_process(const f2b_cmsg_t *msg, char *res, size_t ressize) { } } else if (msg->type == CMD_JAIL_STATUS) { f2b_jail_cmd_status(res, ressize, jail); + } else if (msg->type == CMD_JAIL_SET) { + f2b_jail_cmd_set(res, ressize, jail, args[1], args[2]); } else if (msg->type == CMD_JAIL_IP_STATUS) { f2b_jail_cmd_ip_xxx(res, ressize, jail, 0, args[1]); } else if (msg->type == CMD_JAIL_IP_BAN) { diff --git a/src/jail.c b/src/jail.c index 1e81601..c23bba2 100644 --- a/src/jail.c +++ b/src/jail.c @@ -447,6 +447,18 @@ f2b_jail_cmd_status(char *res, size_t ressize, f2b_jail_t *jail) { jail->bancount, jail->matchcount); } +void +f2b_jail_cmd_set(char *res, size_t ressize, f2b_jail_t *jail, const char *param, const char *value) { + assert(res != NULL); + assert(jail != NULL); + assert(param != NULL); + assert(value != NULL); + + if (f2b_jail_set_param(jail, param, value)) + return; + snprintf(res, ressize, "parameter not found: %s", param); +} + /** * @brief misc operations on ip in given jail * @param res response buffer (don't change if no error) diff --git a/src/jail.h b/src/jail.h index b7cc553..d78a10a 100644 --- a/src/jail.h +++ b/src/jail.h @@ -106,6 +106,15 @@ bool f2b_jail_stop (f2b_jail_t *jail); * @param jail Jail pointer */ void f2b_jail_cmd_status (char *res, size_t ressize, f2b_jail_t *jail); +/** + * @brief Get jail status + * @param res Response buffer + * @param ressize Size of buffer above + * @param jail Jail pointer + * @param param Parameter name + * @param value Parameter value + */ +void f2b_jail_cmd_set (char *res, size_t ressize, f2b_jail_t *jail, const char *param, const char *value); /** * @brief ipaddr manage routine in given jail * @param res Response buffer