diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/bahamut.c | 21 | ||||
-rw-r--r-- | src/botserv.c | 22 | ||||
-rw-r--r-- | src/channels.c | 9 | ||||
-rw-r--r-- | src/chanserv.c | 7 | ||||
-rw-r--r-- | src/config.c | 6 | ||||
-rw-r--r-- | src/dreamforge.c | 21 | ||||
-rw-r--r-- | src/helpserv.c | 7 | ||||
-rw-r--r-- | src/hostserv.c | 7 | ||||
-rw-r--r-- | src/hybrid.c | 22 | ||||
-rw-r--r-- | src/memoserv.c | 7 | ||||
-rw-r--r-- | src/nickserv.c | 7 | ||||
-rw-r--r-- | src/operserv.c | 7 | ||||
-rw-r--r-- | src/ptlink.c | 21 | ||||
-rw-r--r-- | src/rageircd.c | 21 | ||||
-rw-r--r-- | src/ultimate2.c | 21 | ||||
-rw-r--r-- | src/ultimate3.c | 21 | ||||
-rw-r--r-- | src/unreal31.c | 21 | ||||
-rw-r--r-- | src/unreal32.c | 21 | ||||
-rw-r--r-- | src/viagra.c | 21 |
19 files changed, 262 insertions, 28 deletions
diff --git a/src/bahamut.c b/src/bahamut.c index 67c4112c5..383e2cf4c 100644 --- a/src/bahamut.c +++ b/src/bahamut.c @@ -1626,4 +1626,25 @@ int anope_valid_nick(char *nick) return 1; } +void anope_cmd_ctcp(char *source, char *dest, const char *fmt, ...) +{ + va_list args; + char buf[BUFSIZE]; + char *s; + *buf = '\0'; + + if (fmt) { + va_start(args, fmt); + vsnprintf(buf, BUFSIZE - 1, fmt, args); + va_end(args); + } + if (!buf) { + return; + } else { + s = normalizeBuffer(buf); + } + + send_cmd(source, "%s NOTICE :\1%s \1", dest, s); +} + #endif diff --git a/src/botserv.c b/src/botserv.c index e0cd346ba..25986b566 100644 --- a/src/botserv.c +++ b/src/botserv.c @@ -147,9 +147,10 @@ void botserv(User * u, char *buf) if (!cmd) { return; } else if (stricmp(cmd, "\1PING") == 0) { - if (!(s = strtok(NULL, ""))) - s = "\1"; - notice(s_BotServ, u->nick, "\1PING %s", s); + if (!(s = strtok(NULL, ""))) { + s = ""; + } + anope_cmd_ctcp(s_BotServ, u->nick, "PING %s", s); } else if (skeleton) { notice_lang(s_BotServ, u, SERVICE_OFFLINE, s_BotServ); } else { @@ -171,9 +172,10 @@ void botmsgs(User * u, BotInfo * bi, char *buf) return; if (!stricmp(cmd, "\1PING")) { - if (!(s = strtok(NULL, ""))) - s = "\1"; - notice(bi->nick, u->nick, "\1PING %s", s); + if (!(s = strtok(NULL, ""))) { + s = ""; + } + anope_cmd_ctcp(bi->nick, u->nick, "PING %s", s); } } @@ -197,8 +199,9 @@ void botchanmsgs(User * u, ChannelInfo * ci, char *buf) } /* Answer to ping if needed, without breaking the buffer. */ - if (!strnicmp(buf, "\1PING", 5)) - notice(ci->bi->nick, u->nick, buf); + if (!strnicmp(buf, "\1PING", 5)) { + anope_cmd_ctcp(ci->bi->nick, u->nick, "PING %s", buf); + } /* If it's a /me, cut the CTCP part at the beginning (not * at the end, because one character just doesn't matter, @@ -2484,6 +2487,9 @@ char *normalizeBuffer(char *buf) for (i = 0; i < len; i++) { switch (buf[i]) { + /* ctrl char */ + case 1: + break; /* Bold ctrl char */ case 2: break; diff --git a/src/channels.c b/src/channels.c index eff7b5f96..7836f670d 100644 --- a/src/channels.c +++ b/src/channels.c @@ -306,8 +306,13 @@ void chan_set_user_status(Channel * chan, User * user, int16 status) struct u_chanlist *uc; if (HelpChannel && status == CUS_OP - && !stricmp(chan->name, HelpChannel)) - common_svsmode(user, "+h", "1"); + && !stricmp(chan->name, HelpChannel)) { + if (debug) { + alog("debug: %s being given +h for being a OP in %s", + user->nick, chan->name); + } + common_svsmode(user, "+h", NULL); + } for (uc = user->chans; uc; uc = uc->next) { if (uc->chan == chan) { diff --git a/src/chanserv.c b/src/chanserv.c index 8bdfed631..48da2e4b1 100644 --- a/src/chanserv.c +++ b/src/chanserv.c @@ -597,9 +597,10 @@ void chanserv(User * u, char *buf) if (!cmd) { return; } else if (stricmp(cmd, "\1PING") == 0) { - if (!(s = strtok(NULL, ""))) - s = "\1"; - notice(s_ChanServ, u->nick, "\1PING %s", s); + if (!(s = strtok(NULL, ""))) { + s = ""; + } + anope_cmd_ctcp(s_ChanServ, u->nick, "PING %s", s); } else if (skeleton) { notice_lang(s_ChanServ, u, SERVICE_OFFLINE, s_ChanServ); } else { diff --git a/src/config.c b/src/config.c index 51cce1a26..9c89141f1 100644 --- a/src/config.c +++ b/src/config.c @@ -808,6 +808,12 @@ int parse(char *buf, int linenum, int reload) retval = 0; break; } + if (errno == ERANGE && val == LONG_MAX) { + /* well the true top off is 2,147,483,647 but lets not give them the real top */ + error(linenum, + "%s: paramter %d is to large, reduce this value (0 to 2,147,483,646)", + d->name, optind); + } *(int *) d->params[i].ptr = val; break; case PARAM_PORT: diff --git a/src/dreamforge.c b/src/dreamforge.c index 0d3e272e3..761166b1f 100644 --- a/src/dreamforge.c +++ b/src/dreamforge.c @@ -1372,4 +1372,25 @@ int anope_valid_nick(char *nick) return 1; } +void anope_cmd_ctcp(char *source, char *dest, const char *fmt, ...) +{ + va_list args; + char buf[BUFSIZE]; + char *s; + *buf = '\0'; + + if (fmt) { + va_start(args, fmt); + vsnprintf(buf, BUFSIZE - 1, fmt, args); + va_end(args); + } + if (!buf) { + return; + } else { + s = normalizeBuffer(buf); + } + + send_cmd(source, "%s NOTICE :\1%s \1", dest, s); +} + #endif diff --git a/src/helpserv.c b/src/helpserv.c index 336ee3049..7e4e1e8a9 100644 --- a/src/helpserv.c +++ b/src/helpserv.c @@ -50,9 +50,10 @@ void helpserv(User * u, char *buf) if (!cmd) { return; } else if (stricmp(cmd, "\1PING") == 0) { - if (!(s = strtok(NULL, ""))) - s = "\1"; - notice(s_HelpServ, u->nick, "\1PING %s", s); + if (!(s = strtok(NULL, ""))) { + s = ""; + } + anope_cmd_ctcp(s_HelpServ, u->nick, "PING %s", s); } else { mod_run_cmd(s_HelpServ, u, HELPSERV, cmd); } diff --git a/src/hostserv.c b/src/hostserv.c index c248de69e..1dcb087d0 100644 --- a/src/hostserv.c +++ b/src/hostserv.c @@ -100,9 +100,10 @@ void hostserv(User * u, char *buf) if (!cmd) { return; } else if (stricmp(cmd, "\1PING") == 0) { - if (!(s = strtok(NULL, ""))) - s = "\1"; - notice(s_HostServ, u->nick, "\1PING %s", s); + if (!(s = strtok(NULL, ""))) { + s = ""; + } + anope_cmd_ctcp(s_HostServ, u->nick, "PING %s", s); } else if (skeleton) { notice_lang(s_HostServ, u, SERVICE_OFFLINE, s_HostServ); } else { diff --git a/src/hybrid.c b/src/hybrid.c index 414585e18..3010d2fb5 100644 --- a/src/hybrid.c +++ b/src/hybrid.c @@ -1495,4 +1495,26 @@ int anope_valid_nick(char *nick) return 1; } +void anope_cmd_ctcp(char *source, char *dest, const char *fmt, ...) +{ + va_list args; + char buf[BUFSIZE]; + char *s; + *buf = '\0'; + + if (fmt) { + va_start(args, fmt); + vsnprintf(buf, BUFSIZE - 1, fmt, args); + va_end(args); + } + if (!buf) { + return; + } else { + s = normalizeBuffer(buf); + } + + send_cmd(source, "%s NOTICE :\1%s \1", dest, s); +} + + #endif diff --git a/src/memoserv.c b/src/memoserv.c index 4c7d40463..7ef69f975 100644 --- a/src/memoserv.c +++ b/src/memoserv.c @@ -89,9 +89,10 @@ void memoserv(User * u, char *buf) if (!cmd) { return; } else if (stricmp(cmd, "\1PING") == 0) { - if (!(s = strtok(NULL, ""))) - s = "\1"; - notice(s_MemoServ, u->nick, "\1PING %s", s); + if (!(s = strtok(NULL, ""))) { + s = ""; + } + anope_cmd_ctcp(s_MemoServ, u->nick, "PING %s", s); } else if (skeleton) { notice_lang(s_MemoServ, u, SERVICE_OFFLINE, s_MemoServ); } else { diff --git a/src/nickserv.c b/src/nickserv.c index a22e33f8e..34bdd780d 100644 --- a/src/nickserv.c +++ b/src/nickserv.c @@ -337,9 +337,10 @@ void nickserv(User * u, char *buf) if (!cmd) { return; } else if (stricmp(cmd, "\1PING") == 0) { - if (!(s = strtok(NULL, ""))) - s = "\1"; - notice(s_NickServ, u->nick, "\1PING %s", s); + if (!(s = strtok(NULL, ""))) { + s = ""; + } + anope_cmd_ctcp(s_NickServ, u->nick, "PING %s", s); } else if (skeleton) { notice_lang(s_NickServ, u, SERVICE_OFFLINE, s_NickServ); } else { diff --git a/src/operserv.c b/src/operserv.c index 4fc711754..8f878c6aa 100644 --- a/src/operserv.c +++ b/src/operserv.c @@ -267,9 +267,10 @@ void operserv(User * u, char *buf) if (!cmd) { return; } else if (stricmp(cmd, "\1PING") == 0) { - if (!(s = strtok(NULL, ""))) - s = "\1"; - notice(s_OperServ, u->nick, "\1PING %s", s); + if (!(s = strtok(NULL, ""))) { + s = ""; + } + anope_cmd_ctcp(s_OperServ, u->nick, "PING %s", s); } else { mod_run_cmd(s_OperServ, u, OPERSERV, cmd); } diff --git a/src/ptlink.c b/src/ptlink.c index 6f6d50eb1..be54ef56f 100644 --- a/src/ptlink.c +++ b/src/ptlink.c @@ -1690,4 +1690,25 @@ int anope_valid_nick(char *nick) return 1; } +void anope_cmd_ctcp(char *source, char *dest, const char *fmt, ...) +{ + va_list args; + char buf[BUFSIZE]; + char *s; + *buf = '\0'; + + if (fmt) { + va_start(args, fmt); + vsnprintf(buf, BUFSIZE - 1, fmt, args); + va_end(args); + } + if (!buf) { + return; + } else { + s = normalizeBuffer(buf); + } + + send_cmd(source, "%s NOTICE :\1%s \1", dest, s); +} + #endif diff --git a/src/rageircd.c b/src/rageircd.c index 3a470be7a..d10a76728 100644 --- a/src/rageircd.c +++ b/src/rageircd.c @@ -1615,4 +1615,25 @@ int anope_valid_nick(char *nick) return 1; } +void anope_cmd_ctcp(char *source, char *dest, const char *fmt, ...) +{ + va_list args; + char buf[BUFSIZE]; + char *s; + *buf = '\0'; + + if (fmt) { + va_start(args, fmt); + vsnprintf(buf, BUFSIZE - 1, fmt, args); + va_end(args); + } + if (!buf) { + return; + } else { + s = normalizeBuffer(buf); + } + + send_cmd(source, "%s NOTICE :\1%s \1", dest, s); +} + #endif diff --git a/src/ultimate2.c b/src/ultimate2.c index 1f9563138..89c19b14c 100644 --- a/src/ultimate2.c +++ b/src/ultimate2.c @@ -1718,4 +1718,25 @@ int anope_valid_nick(char *nick) return 1; } +void anope_cmd_ctcp(char *source, char *dest, const char *fmt, ...) +{ + va_list args; + char buf[BUFSIZE]; + char *s; + *buf = '\0'; + + if (fmt) { + va_start(args, fmt); + vsnprintf(buf, BUFSIZE - 1, fmt, args); + va_end(args); + } + if (!buf) { + return; + } else { + s = normalizeBuffer(buf); + } + + send_cmd(source, "%s NOTICE :\1%s \1", dest, s); +} + #endif diff --git a/src/ultimate3.c b/src/ultimate3.c index e70daeb72..3b6dcb2a3 100644 --- a/src/ultimate3.c +++ b/src/ultimate3.c @@ -1782,4 +1782,25 @@ int anope_valid_nick(char *nick) return 1; } +void anope_cmd_ctcp(char *source, char *dest, const char *fmt, ...) +{ + va_list args; + char buf[BUFSIZE]; + char *s; + *buf = '\0'; + + if (fmt) { + va_start(args, fmt); + vsnprintf(buf, BUFSIZE - 1, fmt, args); + va_end(args); + } + if (!buf) { + return; + } else { + s = normalizeBuffer(buf); + } + + send_cmd(source, "%s NOTICE :\1%s \1", dest, s); +} + #endif diff --git a/src/unreal31.c b/src/unreal31.c index af642d385..775fa3420 100644 --- a/src/unreal31.c +++ b/src/unreal31.c @@ -1576,4 +1576,25 @@ int anope_valid_nick(char *nick) return 1; } +void anope_cmd_ctcp(char *source, char *dest, const char *fmt, ...) +{ + va_list args; + char buf[BUFSIZE]; + char *s; + *buf = '\0'; + + if (fmt) { + va_start(args, fmt); + vsnprintf(buf, BUFSIZE - 1, fmt, args); + va_end(args); + } + if (!buf) { + return; + } else { + s = normalizeBuffer(buf); + } + + send_cmd(source, "%s NOTICE :\1%s \1", dest, s); +} + #endif diff --git a/src/unreal32.c b/src/unreal32.c index 22ed19965..77f8161f9 100644 --- a/src/unreal32.c +++ b/src/unreal32.c @@ -2151,4 +2151,25 @@ int anope_valid_nick(char *nick) return 1; } +void anope_cmd_ctcp(char *source, char *dest, const char *fmt, ...) +{ + va_list args; + char buf[BUFSIZE]; + char *s; + *buf = '\0'; + + if (fmt) { + va_start(args, fmt); + vsnprintf(buf, BUFSIZE - 1, fmt, args); + va_end(args); + } + if (!buf) { + return; + } else { + s = normalizeBuffer(buf); + } + + send_cmd(source, "%s %s :\1%s \1", send_token("NOTICE", "B"), dest, s); +} + #endif diff --git a/src/viagra.c b/src/viagra.c index 34ef38fba..b778fe2c7 100644 --- a/src/viagra.c +++ b/src/viagra.c @@ -1691,4 +1691,25 @@ int anope_valid_nick(char *nick) return 1; } +void anope_cmd_ctcp(char *source, char *dest, const char *fmt, ...) +{ + va_list args; + char buf[BUFSIZE]; + char *s; + *buf = '\0'; + + if (fmt) { + va_start(args, fmt); + vsnprintf(buf, BUFSIZE - 1, fmt, args); + va_end(args); + } + if (!buf) { + return; + } else { + s = normalizeBuffer(buf); + } + + send_cmd(source, "%s NOTICE :\1%s \1", dest, s); +} + #endif |