From 30a816a360e30e5612356a9e8aa2646b6ae11a0e Mon Sep 17 00:00:00 2001 From: "sergey.kitov" Date: Tue, 15 Sep 2020 15:51:26 +0300 Subject: [PATCH] login-common: Implement kicking all user at backend host. --- src/login-common/login-proxy.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/login-common/login-proxy.c b/src/login-common/login-proxy.c index 0295da0400..bb045954d5 100644 --- a/src/login-common/login-proxy.c +++ b/src/login-common/login-proxy.c @@ -822,6 +822,13 @@ void login_proxy_kill_idle(void) } } +static bool +want_kick_host(struct login_proxy *proxy, const char *const *args, + unsigned int key_idx ATTR_UNUSED) +{ + return str_array_find(args, proxy->host); +} + static bool want_kick_virtual_user(struct login_proxy *proxy, const char *const *args, unsigned int key_idx ATTR_UNUSED) @@ -886,6 +893,12 @@ login_proxy_cmd_kick(struct ipc_cmd *cmd, const char *const *args) login_proxy_cmd_kick_full(cmd, args, want_kick_virtual_user, 0); } +static void +login_proxy_cmd_kick_host(struct ipc_cmd *cmd, const char *const *args) +{ + login_proxy_cmd_kick_full(cmd, args, want_kick_host, 0); +} + static void login_proxy_cmd_kick_alt(struct ipc_cmd *cmd, const char *const *args) { @@ -1037,6 +1050,8 @@ static void login_proxy_ipc_cmd(struct ipc_cmd *cmd, const char *line) login_proxy_cmd_kick_director_hash(cmd, args); else if (strcmp(name, "LIST-FULL") == 0) login_proxy_cmd_list(cmd, args); + else if (strcmp(name, "KICK-HOST") == 0) + login_proxy_cmd_kick_host(cmd, args); else ipc_cmd_fail(&cmd, "Unknown command"); } -- 2.47.3