From e17740ae2589fcd7564a86731772faf5aa3ca83f Mon Sep 17 00:00:00 2001 From: Alex 'AdUser' Z Date: Fri, 25 Nov 2016 16:25:36 +1000 Subject: [PATCH] * backends/mcast : implement ban() --- src/backends/mcast.c | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/src/backends/mcast.c b/src/backends/mcast.c index 551a7ee..a42877a 100644 --- a/src/backends/mcast.c +++ b/src/backends/mcast.c @@ -166,11 +166,29 @@ stop(cfg_t *cfg) { bool ban(cfg_t *cfg, const char *ip) { + f2b_cmsg_t cmsg; + int ret; + assert(cfg != NULL); - /* TODO */ + memset(&cmsg, 0x0, sizeof(cmsg)); - return false; + strncpy(cmsg.magic, "F2B", sizeof(cmsg.magic)); + cmsg.version = F2B_PROTO_VER; + cmsg.type = CMD_JAIL_IP_BAN; + f2b_cmd_append_arg(cmsg.data, sizeof(cmsg.data), cfg->name); + f2b_cmd_append_arg(cmsg.data, sizeof(cmsg.data), ip); + cmsg.size = strlen(cmsg.data); + cmsg.data[cmsg.size] = '\0'; + f2b_cmsg_convert_args(&cmsg); + + ret = f2b_csocket_send(cfg->sock, &cmsg, &cfg->sa, &cfg->sa_len); + if (ret <= 0) { + strlcpy(cfg->error, f2b_csocket_error(ret), sizeof(cfg->error)); + return false; + } + + return true; } bool