From 428a5e3d0f5060d43c56a8a8595c8102241ce7ea Mon Sep 17 00:00:00 2001 From: Boleslaw Tokarski Date: Mon, 8 Oct 2012 15:09:09 +0200 Subject: Allows to use user->ident string instead of user->nick for NickServ. --- docs/conf/modules.conf.example | 1 + src/modules/m_passforward.cpp | 15 ++++++++++----- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/docs/conf/modules.conf.example b/docs/conf/modules.conf.example index 0bb679378..5552d33f8 100644 --- a/docs/conf/modules.conf.example +++ b/docs/conf/modules.conf.example @@ -1267,6 +1267,7 @@ # forwardmsg: Message to send to users using a connect password. # $nick will be the users' nick, $nickrequired will be the nick # of where the password is going (the nick above). + # You can also use $user for the user ident string. forwardmsg="NOTICE $nick :*** Forwarding PASS to $nickrequired" # cmd: Command for the nick to run when it recieves a connect diff --git a/src/modules/m_passforward.cpp b/src/modules/m_passforward.cpp index bf09c1f6e..fb7bae234 100644 --- a/src/modules/m_passforward.cpp +++ b/src/modules/m_passforward.cpp @@ -47,7 +47,7 @@ class ModulePassForward : public Module forwardcmd = Conf.ReadValue("passforward", "cmd", "PRIVMSG $nickrequired :IDENTIFY $pass", 0); } - void FormatStr(std::string& result, const std::string& format, const std::string &nick, const std::string &pass) + void FormatStr(std::string& result, const std::string& format, const LocalUser* user) { for (unsigned int i = 0; i < format.length(); i++) { @@ -61,12 +61,17 @@ class ModulePassForward : public Module } else if (format.substr(i, 5) == "$nick") { - result.append(nick); + result.append(user->nick); + i += 4; + } + else if (format.substr(i, 5) == "$user") + { + result.append(user->ident); i += 4; } else if (format.substr(i,5) == "$pass") { - result.append(pass); + result.append(user->password); i += 4; } else @@ -92,11 +97,11 @@ class ModulePassForward : public Module } std::string tmp; - FormatStr(tmp,forwardmsg, user->nick, user->password); + FormatStr(tmp,forwardmsg, user); user->WriteServ(tmp); tmp.clear(); - FormatStr(tmp,forwardcmd, user->nick, user->password); + FormatStr(tmp,forwardcmd, user); ServerInstance->Parser->ProcessBuffer(tmp,user); } }; -- cgit v1.2.3