summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2007-08-27 18:30:50 +0000
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2007-08-27 18:30:50 +0000
commite04e8aaf9b1a8c75dc70e2137230d11db27137ed (patch)
tree779ef1d7f9a6363881d05caa88be21ab14f560d6
parent25f99f5c21bdf4d42ffbf2fc06438270e890d992 (diff)
NOTICE, PRIVMSG, WHOIS; dont allow local users to /msg <uid> etc. This prevents a primative possible type of 'stalking' of users.
We still need to use full FindNick for remote use. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7908 e03df62e-2008-0410-955e-edbf42e46eb7
-rw-r--r--src/cmd_notice.cpp6
-rw-r--r--src/cmd_privmsg.cpp6
-rw-r--r--src/cmd_whois.cpp5
3 files changed, 14 insertions, 3 deletions
diff --git a/src/cmd_notice.cpp b/src/cmd_notice.cpp
index d97743a43..f66341846 100644
--- a/src/cmd_notice.cpp
+++ b/src/cmd_notice.cpp
@@ -117,7 +117,11 @@ CmdResult cmd_notice::Handle (const char** parameters, int pcnt, userrec *user)
return CMD_SUCCESS;
}
- dest = ServerInstance->FindNick(parameters[0]);
+ if (IS_LOCAL(user))
+ dest = ServerInstance->FindNickOnly(parameters[0]);
+ else
+ dest = ServerInstance->FindNick(parameters[0]);
+
if (dest)
{
if (!*parameters[1])
diff --git a/src/cmd_privmsg.cpp b/src/cmd_privmsg.cpp
index 00a7f1366..5c3020b5b 100644
--- a/src/cmd_privmsg.cpp
+++ b/src/cmd_privmsg.cpp
@@ -118,7 +118,11 @@ CmdResult cmd_privmsg::Handle (const char** parameters, int pcnt, userrec *user)
return CMD_SUCCESS;
}
- dest = ServerInstance->FindNick(parameters[0]);
+ if (IS_LOCAL(user))
+ dest = ServerInstance->FindNickOnly(parameters[0]);
+ else
+ dest = ServerInstance->FindNick(parameters[0]);
+
if (dest)
{
if (!*parameters[1])
diff --git a/src/cmd_whois.cpp b/src/cmd_whois.cpp
index dadb93902..b6f85e01c 100644
--- a/src/cmd_whois.cpp
+++ b/src/cmd_whois.cpp
@@ -108,7 +108,10 @@ CmdResult cmd_whois::Handle (const char** parameters, int pcnt, userrec *user)
if (pcnt > 1)
userindex = 1;
- dest = ServerInstance->FindNick(parameters[userindex]);
+ if (IS_LOCAL(user))
+ dest = ServerInstance->FindNickOnly(parameters[userindex]);
+ else
+ dest = ServerInstance->FindNick(parameters[userindex]);
if (dest)
{