summaryrefslogtreecommitdiff
path: root/src/viagra.c
diff options
context:
space:
mode:
authordane dane@31f1291d-b8d6-0310-a050-a5561fc1590b <dane dane@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864>2004-08-26 14:26:06 +0000
committerdane dane@31f1291d-b8d6-0310-a050-a5561fc1590b <dane dane@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864>2004-08-26 14:26:06 +0000
commit5c3ee8a19acbdc26f191386776207fb7fefb4930 (patch)
tree6c577835b47bcd7a5f7db1f9d7f1fe33b319770d /src/viagra.c
parentb05797bb10efec25579bda27ff4338f0b7803ac2 (diff)
BUILD : 1.7.5 (335) BUGS : 142, 152, 154, 155, 156, 157, 158 NOTES : Applied bugfix bundle patch from Trystan.
git-svn-id: svn://svn.anope.org/anope/trunk@335 31f1291d-b8d6-0310-a050-a5561fc1590b git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@211 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'src/viagra.c')
-rw-r--r--src/viagra.c201
1 files changed, 164 insertions, 37 deletions
diff --git a/src/viagra.c b/src/viagra.c
index c47278057..ee34e6401 100644
--- a/src/viagra.c
+++ b/src/viagra.c
@@ -664,9 +664,13 @@ void anope_cmd_part(char *nick, char *chan, const char *fmt, ...)
{
va_list args;
char buf[BUFSIZE];
+ *buf = '\0';
- va_start(args, fmt);
- vsnprintf(buf, sizeof(buf), fmt, args);
+ if (fmt) {
+ va_start(args, fmt);
+ vsnprintf(buf, BUFSIZE - 1, fmt, args);
+ va_end(args);
+ }
if (!nick || !chan) {
return;
@@ -720,24 +724,36 @@ void anope_cmd_svskill(char *source, char *user, const char *fmt, ...)
{
va_list args;
char buf[BUFSIZE];
+ *buf = '\0';
if (!source || !user) {
return;
}
- va_start(args, fmt);
- vsnprintf(buf, sizeof(buf), fmt, args);
-
- send_cmd(source, "SVSKILL %s :%s", user, buf);
+ if (fmt) {
+ va_start(args, fmt);
+ vsnprintf(buf, BUFSIZE - 1, fmt, args);
+ va_end(args);
+ send_cmd(source, "SVSKILL %s :%s", user, buf);
+ }
+ return;
}
void anope_cmd_mode(char *source, char *dest, const char *fmt, ...)
{
va_list args;
char buf[BUFSIZE];
+ *buf = '\0';
+
+ if (fmt) {
+ va_start(args, fmt);
+ vsnprintf(buf, BUFSIZE - 1, fmt, args);
+ va_end(args);
+ }
- va_start(args, fmt);
- vsnprintf(buf, sizeof(buf), fmt, args);
+ if (!buf) {
+ return;
+ }
if (ircdcap->tsmode) {
if (uplink_capab & ircdcap->tsmode) {
@@ -755,9 +771,13 @@ void anope_cmd_quit(char *source, const char *fmt, ...)
{
va_list args;
char buf[BUFSIZE];
+ *buf = '\0';
- va_start(args, fmt);
- vsnprintf(buf, sizeof(buf), fmt, args);
+ if (fmt) {
+ va_start(args, fmt);
+ vsnprintf(buf, BUFSIZE - 1, fmt, args);
+ va_end(args);
+ }
if (buf) {
send_cmd(source, "QUIT :%s", buf);
@@ -994,19 +1014,32 @@ void anope_cmd_notice_ops(char *source, char *dest, const char *fmt, ...)
{
va_list args;
char buf[BUFSIZE];
+ *buf = '\0';
- va_start(args, fmt);
- vsnprintf(buf, sizeof(buf), fmt, args);
- send_cmd(NULL, "NOTICE @%s :%s", dest, buf);
+ if (fmt) {
+ va_start(args, fmt);
+ vsnprintf(buf, BUFSIZE - 1, fmt, args);
+ va_end(args);
+ send_cmd(NULL, "NOTICE @%s :%s", dest, buf);
+ }
+ return;
}
void anope_cmd_notice(char *source, char *dest, const char *fmt, ...)
{
va_list args;
char buf[BUFSIZE];
+ *buf = '\0';
- va_start(args, fmt);
- vsnprintf(buf, sizeof(buf), fmt, args);
+ if (fmt) {
+ va_start(args, fmt);
+ vsnprintf(buf, BUFSIZE - 1, fmt, args);
+ va_end(args);
+ }
+
+ if (!buf) {
+ return;
+ }
if (UsePrivmsg) {
anope_cmd_privmsg2(source, dest, buf);
@@ -1024,9 +1057,17 @@ void anope_cmd_privmsg(char *source, char *dest, const char *fmt, ...)
{
va_list args;
char buf[BUFSIZE];
+ *buf = '\0';
+
+ if (fmt) {
+ va_start(args, fmt);
+ vsnprintf(buf, BUFSIZE - 1, fmt, args);
+ va_end(args);
+ }
- va_start(args, fmt);
- vsnprintf(buf, sizeof(buf), fmt, args);
+ if (!buf) {
+ return;
+ }
send_cmd(source, "PRIVMSG %s :%s", dest, buf);
}
@@ -1051,9 +1092,17 @@ void anope_cmd_global(char *source, const char *fmt, ...)
{
va_list args;
char buf[BUFSIZE];
+ *buf = '\0';
+
+ if (fmt) {
+ va_start(args, fmt);
+ vsnprintf(buf, BUFSIZE - 1, fmt, args);
+ va_end(args);
+ }
- va_start(args, fmt);
- vsnprintf(buf, sizeof(buf), fmt, args);
+ if (!buf) {
+ return;
+ }
send_cmd(source ? source : ServerName, "GLOBOPS :%s", buf);
}
@@ -1072,9 +1121,17 @@ void anope_cmd_250(const char *fmt, ...)
{
va_list args;
char buf[BUFSIZE];
+ *buf = '\0';
- va_start(args, fmt);
- vsnprintf(buf, sizeof(buf), fmt, args);
+ if (fmt) {
+ va_start(args, fmt);
+ vsnprintf(buf, BUFSIZE - 1, fmt, args);
+ va_end(args);
+ }
+
+ if (!buf) {
+ return;
+ }
send_cmd(NULL, "250 %s ", buf);
}
@@ -1084,9 +1141,17 @@ void anope_cmd_307(const char *fmt, ...)
{
va_list args;
char buf[BUFSIZE];
+ *buf = '\0';
- va_start(args, fmt);
- vsnprintf(buf, sizeof(buf), fmt, args);
+ if (fmt) {
+ va_start(args, fmt);
+ vsnprintf(buf, BUFSIZE - 1, fmt, args);
+ va_end(args);
+ }
+
+ if (!buf) {
+ return;
+ }
send_cmd(ServerName, "307 %s ", buf);
}
@@ -1096,9 +1161,17 @@ void anope_cmd_311(const char *fmt, ...)
{
va_list args;
char buf[BUFSIZE];
+ *buf = '\0';
+
+ if (fmt) {
+ va_start(args, fmt);
+ vsnprintf(buf, BUFSIZE - 1, fmt, args);
+ va_end(args);
+ }
- va_start(args, fmt);
- vsnprintf(buf, sizeof(buf), fmt, args);
+ if (!buf) {
+ return;
+ }
send_cmd(ServerName, "311 %s ", buf);
}
@@ -1108,9 +1181,17 @@ void anope_cmd_312(const char *fmt, ...)
{
va_list args;
char buf[BUFSIZE];
+ *buf = '\0';
+
+ if (fmt) {
+ va_start(args, fmt);
+ vsnprintf(buf, BUFSIZE - 1, fmt, args);
+ va_end(args);
+ }
- va_start(args, fmt);
- vsnprintf(buf, sizeof(buf), fmt, args);
+ if (!buf) {
+ return;
+ }
send_cmd(ServerName, "312 %s ", buf);
}
@@ -1120,9 +1201,17 @@ void anope_cmd_317(const char *fmt, ...)
{
va_list args;
char buf[BUFSIZE];
+ *buf = '\0';
- va_start(args, fmt);
- vsnprintf(buf, sizeof(buf), fmt, args);
+ if (fmt) {
+ va_start(args, fmt);
+ vsnprintf(buf, BUFSIZE - 1, fmt, args);
+ va_end(args);
+ }
+
+ if (!buf) {
+ return;
+ }
send_cmd(ServerName, "317 %s ", buf);
}
@@ -1166,9 +1255,18 @@ void anope_cmd_242(const char *fmt, ...)
{
va_list args;
char buf[BUFSIZE];
+ *buf = '\0';
+
+ if (fmt) {
+ va_start(args, fmt);
+ vsnprintf(buf, BUFSIZE - 1, fmt, args);
+ va_end(args);
+ }
+
+ if (!buf) {
+ return;
+ }
- va_start(args, fmt);
- vsnprintf(buf, sizeof(buf), fmt, args);
send_cmd(NULL, "242 %s ", buf);
}
@@ -1177,9 +1275,17 @@ void anope_cmd_243(const char *fmt, ...)
{
va_list args;
char buf[BUFSIZE];
+ *buf = '\0';
+
+ if (fmt) {
+ va_start(args, fmt);
+ vsnprintf(buf, BUFSIZE - 1, fmt, args);
+ va_end(args);
+ }
- va_start(args, fmt);
- vsnprintf(buf, sizeof(buf), fmt, args);
+ if (!buf) {
+ return;
+ }
send_cmd(NULL, "243 %s ", buf);
}
@@ -1189,9 +1295,18 @@ void anope_cmd_211(const char *fmt, ...)
{
va_list args;
char buf[BUFSIZE];
+ *buf = '\0';
+
+ if (fmt) {
+ va_start(args, fmt);
+ vsnprintf(buf, BUFSIZE - 1, fmt, args);
+ va_end(args);
+ }
+
+ if (!buf) {
+ return;
+ }
- va_start(args, fmt);
- vsnprintf(buf, sizeof(buf), fmt, args);
send_cmd(NULL, "211 %s ", buf);
}
@@ -1215,9 +1330,13 @@ void anope_cmd_kick(char *source, char *chan, char *user, const char *fmt,
{
va_list args;
char buf[BUFSIZE];
+ *buf = '\0';
- va_start(args, fmt);
- vsnprintf(buf, sizeof(buf), fmt, args);
+ if (fmt) {
+ va_start(args, fmt);
+ vsnprintf(buf, BUFSIZE - 1, fmt, args);
+ va_end(args);
+ }
if (buf) {
send_cmd(source, "KICK %s %s :%s", chan, user, buf);
@@ -1344,6 +1463,14 @@ void anope_cmd_svid_umode3(User * u, char *ts)
}
}
+/* NICK <newnick> */
+void anope_cmd_chg_nick(char *oldnick, char *newnick)
+{
+ if (!oldnick || !newnick) {
+ return;
+ }
+ send_cmd(oldnick, "NICK %s", newnick);
+}
#endif