summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authoradam- <adam-@5417fbe8-f217-4b02-8779-1006273d7864>2009-07-06 07:27:16 +0000
committeradam- <adam-@5417fbe8-f217-4b02-8779-1006273d7864>2009-07-06 07:27:16 +0000
commitd75238496b4ba31d9b348f54c9d34c7ac2beb020 (patch)
treefdd1fa34dae1873bb8207c45c1c4a532f3d9b545 /src
parent4d19a783bd0dc0c6ed904850c7090e56df774655 (diff)
Made pre-command channel sanity checks only apply to ChanServ and BotServ. Its not needed elsewhere and just causes issues
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@2361 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'src')
-rw-r--r--src/commands.c4
-rw-r--r--src/core/ms_del.c9
-rw-r--r--src/core/ms_info.c8
-rw-r--r--src/core/ms_list.c10
-rw-r--r--src/core/ms_read.c10
5 files changed, 29 insertions, 12 deletions
diff --git a/src/commands.c b/src/commands.c
index 034725b31..e9071141c 100644
--- a/src/commands.c
+++ b/src/commands.c
@@ -125,7 +125,7 @@ void mod_run_cmd(char *service, User * u, CommandHash * cmdTable[], const char *
if (MOD_RESULT == EVENT_STOP)
return;
- if (params.size() > 0)
+ if (params.size() > 0 && !c->HasFlag(CFLAG_STRIP_CHANNEL) && (cmdTable == CHANSERV || cmdTable == BOTSERV))
{
if (ircdproto->IsChannelValid(params[0].c_str()))
{
@@ -153,7 +153,7 @@ void mod_run_cmd(char *service, User * u, CommandHash * cmdTable[], const char *
}
}
/* A user not giving a channel name for a param that should be a channel */
- else if ((cmdTable == CHANSERV || cmdTable == BOTSERV) && !c->HasFlag(CFLAG_STRIP_CHANNEL))
+ else
{
notice_lang(service, u, CHAN_X_INVALID, params[0].c_str());
return;
diff --git a/src/core/ms_del.c b/src/core/ms_del.c
index f5f0a231d..4e8e619cc 100644
--- a/src/core/ms_del.c
+++ b/src/core/ms_del.c
@@ -37,8 +37,13 @@ class CommandMSDel : public Command
{
chan = numstr;
numstr = params.size() > 1 ? params[1].c_str() : NULL;
- ci = cs_findchan(chan);
- if (readonly)
+
+ if (!(ci = cs_findchan(chan)))
+ {
+ notice_lang(s_MemoServ, u, CHAN_X_NOT_REGISTERED, chan);
+ return MOD_CONT;
+ }
+ else if (readonly)
{
notice_lang(s_MemoServ, u, READ_ONLY_MODE);
return MOD_CONT;
diff --git a/src/core/ms_info.c b/src/core/ms_info.c
index 890bb74b9..2b1880157 100644
--- a/src/core/ms_info.c
+++ b/src/core/ms_info.c
@@ -48,8 +48,12 @@ class CommandMSInfo : public Command
}
else if (name && *name == '#')
{
- ci = cs_findchan(name);
- if (!check_access(u, ci, CA_MEMO))
+ if (!(ci = cs_findchan(name)))
+ {
+ notice_lang(s_MemoServ, u, CHAN_X_NOT_REGISTERED, name);
+ return MOD_CONT;
+ }
+ else if (!check_access(u, ci, CA_MEMO))
{
notice_lang(s_MemoServ, u, ACCESS_DENIED);
return MOD_CONT;
diff --git a/src/core/ms_list.c b/src/core/ms_list.c
index 7dccbe06e..c59de4365 100644
--- a/src/core/ms_list.c
+++ b/src/core/ms_list.c
@@ -37,9 +37,13 @@ class CommandMSList : public Command
{
chan = param;
param = params.size() > 1 ? params[1].c_str() : NULL;
- ci = cs_findchan(chan);
-
- if (!check_access(u, ci, CA_MEMO))
+
+ if (!(ci = cs_findchan(chan)))
+ {
+ notice_lang(s_MemoServ, u, CHAN_X_NOT_REGISTERED, chan);
+ return MOD_CONT;
+ }
+ else if (!check_access(u, ci, CA_MEMO))
{
notice_lang(s_MemoServ, u, ACCESS_DENIED);
return MOD_CONT;
diff --git a/src/core/ms_read.c b/src/core/ms_read.c
index 6a1e5af6e..6020e8c97 100644
--- a/src/core/ms_read.c
+++ b/src/core/ms_read.c
@@ -37,9 +37,13 @@ class CommandMSRead : public Command
{
chan = numstr;
numstr = params.size() > 1 ? params[1].c_str() : NULL;
- ci = cs_findchan(chan);
-
- if (!check_access(u, ci, CA_MEMO))
+
+ if (!(ci = cs_findchan(chan)))
+ {
+ notice_lang(s_MemoServ, u, CHAN_X_NOT_REGISTERED, chan);
+ return MOD_CONT;
+ }
+ else if (!check_access(u, ci, CA_MEMO))
{
notice_lang(s_MemoServ, u, ACCESS_DENIED);
return MOD_CONT;