]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/cmd_ison.cpp
Extra Dry! Shame it's not in Hereford right now :p
[user/henk/code/inspircd.git] / src / cmd_ison.cpp
index 9f415e7fb1adbbcd3956f6a401e23b900519b073..0cee160c7f8e39c657328c6b9601594b9ab9d934 100644 (file)
  * ---------------------------------------------------
  */
 
-#include "users.h"
 #include "inspircd.h"
+#include "users.h"
 #include "commands/cmd_ison.h"
 
-extern "C" command_t* init_command(InspIRCd* Instance)
+extern "C" DllExport command_t* init_command(InspIRCd* Instance)
 {
        return new cmd_ison(Instance);
 }
@@ -51,15 +51,18 @@ CmdResult cmd_ison::Handle (const char** parameters, int pcnt, userrec *user)
                                /* Its a space seperated list of nicks (RFC1459 says to support this)
                                 */
                                irc::spacesepstream list(parameters[i]);
-                               std::string item = "*";
+                               std::string item("*");
                                while (((item = list.GetToken()) != ""))
                                {
-                                       u = ServerInstance->FindNick(parameters[i]);
+                                       u = ServerInstance->FindNick(item);
                                        if (ison_already.find(u) != ison_already.end())
                                                continue;
 
                                        if (u)
                                        {
+                                               if (u->Visibility && !u->Visibility->VisibleTo(user))
+                                                       continue;
+
                                                reply.append(u->nick).append(" ");
                                                if (reply.length() > 450)
                                                {