summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/cmd_wallops.cpp2
-rw-r--r--src/helperfuncs.cpp29
-rw-r--r--src/modules.cpp5
-rw-r--r--src/users.cpp33
4 files changed, 32 insertions, 37 deletions
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<userrec*>::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<userrec*>::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));
+}
+