From 2f8d6609d525afcdb7fdac1f6ec7fe26f4bdb247 Mon Sep 17 00:00:00 2001 From: Bram Matthys Date: Wed, 11 Aug 2021 15:03:39 +0200 Subject: [PATCH] Newlog: jumpserver.c --- src/modules/jumpserver.c | 86 +++++++++++++++++++++------------------- 1 file changed, 46 insertions(+), 40 deletions(-) diff --git a/src/modules/jumpserver.c b/src/modules/jumpserver.c index 19a728189..cdc872fba 100644 --- a/src/modules/jumpserver.c +++ b/src/modules/jumpserver.c @@ -28,9 +28,6 @@ ModuleHeader MOD_HEADER "unrealircd-6", }; -/* Defines */ -#define MSG_JUMPSERVER "JUMPSERVER" - /* Forward declarations */ CMD_FUNC(cmd_jumpserver); int jumpserver_preconnect(Client *); @@ -43,8 +40,8 @@ struct JSS char *reason; char *server; int port; - char *ssl_server; - int ssl_port; + char *tls_server; + int tls_port; }; JSS *jss=NULL; /**< JumpServer Status. NULL=disabled. */ @@ -53,7 +50,7 @@ MOD_INIT() { MARK_AS_OFFICIAL_MODULE(modinfo); LoadPersistentPointer(modinfo, jss, jumpserver_free_jss); - CommandAdd(modinfo->handle, MSG_JUMPSERVER, cmd_jumpserver, 3, CMD_USER); + CommandAdd(modinfo->handle, "JUMPSERVER", cmd_jumpserver, 3, CMD_USER); HookAdd(modinfo->handle, HOOKTYPE_PRE_LOCAL_CONNECT, 0, jumpserver_preconnect); return MOD_SUCCESS; } @@ -71,8 +68,8 @@ MOD_UNLOAD() static void do_jumpserver_exit_client(Client *client) { - if (IsSecure(client) && jss->ssl_server) - sendnumeric(client, RPL_REDIR, jss->ssl_server, jss->ssl_port); + if (IsSecure(client) && jss->tls_server) + sendnumeric(client, RPL_REDIR, jss->tls_server, jss->tls_port); else sendnumeric(client, RPL_REDIR, jss->server, jss->port); exit_client(client, NULL, jss->reason); @@ -91,8 +88,9 @@ static void redirect_all_clients(void) count++; } } - sendto_realops("JUMPSERVER: Redirected %d client%s", - count, count == 1 ? "" : "s"); /* Language fun... ;p */ + unreal_log(ULOG_INFO, "jumpserver", "JUMPSERVER_REPORT", NULL, + "[jumpserver] Redirected $num_clients client(s)", + log_data_integer("num_clients", count)); } int jumpserver_preconnect(Client *client) @@ -111,7 +109,7 @@ void free_jss(void) { safe_free(jss->server); safe_free(jss->reason); - safe_free(jss->ssl_server); + safe_free(jss->tls_server); safe_free(jss); jss = NULL; } @@ -124,7 +122,7 @@ void jumpserver_free_jss(ModData *m) CMD_FUNC(cmd_jumpserver) { - char *serv, *sslserv=NULL, *reason, *p; + char *serv, *tlsserv=NULL, *reason, *p; int all=0, port=6667, sslport=6697; char logbuf[512]; @@ -136,9 +134,9 @@ CMD_FUNC(cmd_jumpserver) if ((parc < 2) || BadPtr(parv[1])) { - if (jss && jss->ssl_server) + if (jss && jss->tls_server) sendnotice(client, "JumpServer is \002ENABLED\002 to %s:%d (TLS: %s:%d) with reason '%s'", - jss->server, jss->port, jss->ssl_server, jss->ssl_port, jss->reason); + jss->server, jss->port, jss->tls_server, jss->tls_port, jss->reason); else if (jss) sendnotice(client, "JumpServer is \002ENABLED\002 to %s:%d with reason '%s'", @@ -156,10 +154,8 @@ CMD_FUNC(cmd_jumpserver) return; } free_jss(); - snprintf(logbuf, sizeof(logbuf), "%s (%s@%s) turned JUMPSERVER OFF", - client->name, client->user->username, client->user->realhost); - sendto_realops("%s", logbuf); - ircd_log(LOG_ERROR, "%s", logbuf); + unreal_log(ULOG_INFO, "jumpserver", "JUMPSERVER_DISABLED", client, + "[jumpserver] $client.detail turned jumpserver OFF"); return; } @@ -167,7 +163,7 @@ CMD_FUNC(cmd_jumpserver) { /* Waah, pretty verbose usage info ;) */ sendnotice(client, "Use: /JUMPSERVER [:port] "); - sendnotice(client, " Or: /JUMPSERVER [:port]/[:port] "); + sendnotice(client, " Or: /JUMPSERVER [:port]/[:port] "); sendnotice(client, "if 'NEW' is chosen then only new (incoming) connections will be redirected"); sendnotice(client, "if 'ALL' is chosen then all clients except opers will be redirected immediately (+incoming connections)"); sendnotice(client, "Example: /JUMPSERVER irc2.test.net NEW This server will be upgraded, please use irc2.test.net for now"); @@ -189,7 +185,7 @@ CMD_FUNC(cmd_jumpserver) if (p) { *p = '\0'; - sslserv = p+1; + tlsserv = p+1; } p = strchr(serv, ':'); @@ -203,9 +199,9 @@ CMD_FUNC(cmd_jumpserver) return; } } - if (sslserv) + if (tlsserv) { - p = strchr(sslserv, ':'); + p = strchr(tlsserv, ':'); if (p) { *p++ = '\0'; @@ -216,8 +212,8 @@ CMD_FUNC(cmd_jumpserver) return; } } - if (!*sslserv) - sslserv = NULL; + if (!*tlsserv) + tlsserv = NULL; } if (!strcasecmp(parv[2], "new")) all = 0; @@ -239,27 +235,37 @@ CMD_FUNC(cmd_jumpserver) /* Set it */ safe_strdup(jss->server, serv); jss->port = port; - if (sslserv) + if (tlsserv) { - safe_strdup(jss->ssl_server, sslserv); - jss->ssl_port = sslport; + safe_strdup(jss->tls_server, tlsserv); + jss->tls_port = sslport; } safe_strdup(jss->reason, reason); /* Broadcast/log */ - if (sslserv) - snprintf(logbuf, sizeof(logbuf), "%s (%s@%s) added JUMPSERVER redirect for %s to %s:%d [TLS: %s:%d] with reason '%s'", - client->name, client->user->username, client->user->realhost, - all ? "ALL CLIENTS" : "all new clients", - jss->server, jss->port, jss->ssl_server, jss->ssl_port, jss->reason); - else - snprintf(logbuf, sizeof(logbuf), "%s (%s@%s) added JUMPSERVER redirect for %s to %s:%d with reason '%s'", - client->name, client->user->username, client->user->realhost, - all ? "ALL CLIENTS" : "all new clients", - jss->server, jss->port, jss->reason); - - sendto_realops("%s", logbuf); - ircd_log(LOG_ERROR, "%s", logbuf); + if (tlsserv) + { + unreal_log(ULOG_INFO, "jumpserver", "JUMPSERVER_ENABLED", client, + "[jumpserver] $client.detail turned jumpserver ON for $jumpserver_who " + "to $jumpserver_server:$jumpserver_port " + "[TLS: $jumpserver_tls_server:$jumpserver_tls_port] " + "($reason)", + log_data_string("jumpserver_who", all ? "ALL CLIENTS" : "all new clients"), + log_data_string("jumpserver_server", jss->server), + log_data_integer("jumpserver_port", jss->port), + log_data_string("jumpserver_tls_server", jss->tls_server), + log_data_integer("jumpserver_tls_port", jss->tls_port), + log_data_string("reason", jss->reason)); + } else { + unreal_log(ULOG_INFO, "jumpserver", "JUMPSERVER_ENABLED", client, + "[jumpserver] $client.detail turned jumpserver ON for $jumpserver_who " + "to $jumpserver_server:$jumpserver_port " + "($reason)", + log_data_string("jumpserver_who", all ? "ALL CLIENTS" : "all new clients"), + log_data_string("jumpserver_server", jss->server), + log_data_integer("jumpserver_port", jss->port), + log_data_string("reason", jss->reason)); + } if (all) redirect_all_clients();