From 21deb54715b6937ac9d4de5e2c4c46fb1b38aa3a Mon Sep 17 00:00:00 2001 From: brain Date: Tue, 8 Aug 2006 20:30:41 +0000 Subject: WriteWallops() -> userrec::WriteWallops() (originates from a user, so belongs in userrec) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4802 e03df62e-2008-0410-955e-edbf42e46eb7 --- src/cmd_wallops.cpp | 2 +- src/helperfuncs.cpp | 29 ----------------------------- src/modules.cpp | 5 ----- src/users.cpp | 33 +++++++++++++++++++++++++++++++-- 4 files changed, 32 insertions(+), 37 deletions(-) (limited to 'src') diff --git a/src/cmd_wallops.cpp b/src/cmd_wallops.cpp index 453ce911d..a30ab0762 100644 --- a/src/cmd_wallops.cpp +++ b/src/cmd_wallops.cpp @@ -27,6 +27,6 @@ extern ServerConfig* Config; void cmd_wallops::Handle (const char** parameters, int pcnt, userrec *user) { - WriteWallOps(user,false,"%s",parameters[0]); + user->WriteWallOps(std::string(parameters[0])); FOREACH_MOD(I_OnWallops,OnWallops(user,parameters[0])); } diff --git a/src/helperfuncs.cpp b/src/helperfuncs.cpp index 6cf969a82..e9d4e774f 100644 --- a/src/helperfuncs.cpp +++ b/src/helperfuncs.cpp @@ -335,35 +335,6 @@ void NoticeAll(userrec *source, bool local_only, char* text, ...) } -void WriteWallOps(userrec *source, bool local_only, char* text, ...) -{ - char textbuffer[MAXBUF]; - char formatbuffer[MAXBUF]; - va_list argsPtr; - - if ((!text) || (!source)) - { - log(DEFAULT,"*** BUG *** WriteOpers was given an invalid parameter"); - return; - } - - va_start(argsPtr, text); - vsnprintf(textbuffer, MAXBUF, text, argsPtr); - va_end(argsPtr); - - snprintf(formatbuffer,MAXBUF,"WALLOPS :%s",textbuffer); - - for (std::vector::const_iterator i = local_users.begin(); i != local_users.end(); i++) - { - userrec* t = (userrec*)(*i); - - if ((IS_LOCAL(t)) && (t->modes[UM_WALLOPS])) - { - source->WriteTo(t,std::string(formatbuffer)); - } - } -} - /* convert a string to lowercase. Note following special circumstances * taken from RFC 1459. Many "official" server branches still hold to this * rule so i will too; diff --git a/src/modules.cpp b/src/modules.cpp index ea45c5d9e..84502d374 100644 --- a/src/modules.cpp +++ b/src/modules.cpp @@ -465,11 +465,6 @@ void Server::DumpText(userrec* User, const std::string &LinePrefix, stringstream User->WriteServ(CompleteLine); } -void Server::SendWallops(userrec* User, const std::string &text) -{ - WriteWallOps(User,false,"%s",text.c_str()); -} - void Server::ChangeHost(userrec* user, const std::string &host) { ChangeDisplayedHost(user,host.c_str()); diff --git a/src/users.cpp b/src/users.cpp index ec197fd60..31320581d 100644 --- a/src/users.cpp +++ b/src/users.cpp @@ -1390,7 +1390,7 @@ void userrec::WriteTo(userrec *dest, const std::string &data) } -void userrec::WriteCommon(char* text, ...) +void userrec::WriteCommon(const char* text, ...) { char textbuffer[MAXBUF]; va_list argsPtr; @@ -1448,7 +1448,7 @@ void userrec::WriteCommon(const std::string &text) * channel, NOT including the source user e.g. for use in QUIT */ -void userrec::WriteCommonExcept(char* text, ...) +void userrec::WriteCommonExcept(const char* text, ...) { char textbuffer[MAXBUF]; va_list argsPtr; @@ -1537,3 +1537,32 @@ void userrec::WriteCommonExcept(const std::string &text) } +void userrec::WriteWallOps(const std::string &text) +{ + /* Does nothing if theyre not opered */ + if ((!*this->oper) && (IS_LOCAL(this))) + return; + + std::string wallop = "WALLOPS :"; + wallop.append(text); + + for (std::vector::const_iterator i = local_users.begin(); i != local_users.end(); i++) + { + userrec* t = *i; + if ((IS_LOCAL(t)) && (t->modes[UM_WALLOPS])) + this->WriteTo(t,wallop); + } +} + +void userrec::WriteWallOps(const char* text, ...) +{ + char textbuffer[MAXBUF]; + va_list argsPtr; + + va_start(argsPtr, text); + vsnprintf(textbuffer, MAXBUF, text, argsPtr); + va_end(argsPtr); + + this->WriteWallOps(std::string(textbuffer)); +} + -- cgit v1.2.3