]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/cmd_who.cpp
Add amd64/linux to list of OS'es tested, but mainly CIA test :P
[user/henk/code/inspircd.git] / src / cmd_who.cpp
index 307e86d915614b10a8aaaa2533b5e4a5685b2d7f..4a94dc659ed49ffb23cdc876cbf5ebae6546f450 100644 (file)
@@ -17,7 +17,6 @@
 using namespace std;
 
 #include "inspircd_config.h"
-#include "inspircd.h"
 #include "inspircd_io.h"
 #include <time.h>
 #include <string>
@@ -47,6 +46,7 @@ using namespace std;
 #include "socketengine.h"
 #include "typedefs.h"
 #include "command_parse.h"
+#include "inspircd.h"
 #include "cmd_who.h"
 
 extern ServerConfig* Config;
@@ -57,7 +57,6 @@ extern std::vector<ircd_module*> factory;
 extern time_t TIME;
 extern user_hash clientlist;
 extern chan_hash chanlist;
-extern whowas_hash whowas;
 extern std::vector<userrec*> all_opers;
 extern std::vector<userrec*> local_users;
 extern userrec* fd_ref_table[MAX_DESCRIPTORS];
@@ -70,14 +69,14 @@ void cmd_who::Handle (char **parameters, int pcnt, userrec *user)
        /* theres more to do here, but for now just close the socket */
        if (pcnt == 1)
        {
-               if ((IS_SINGLE(parameters[0],'0)) || (IS_SINGLE(parameters[0],'*')))
+               if ((IS_SINGLE(parameters[0],'0')) || (IS_SINGLE(parameters[0],'*')))
                {
-                       if ((user->chans.size()) && (user->chans[0].channel))
+                       if ((user->chans.size()) && (((ucrec*)*(user->chans.begin()))->channel))
                        {
                                int n_list = 0;
                                for (user_hash::const_iterator i = clientlist.begin(); i != clientlist.end(); i++)
                                {
-                                       Ptr = i->second->chans[0].channel;
+                                       Ptr = ((ucrec*)*(i->second->chans.begin()))->channel;
                                        // suggested by phidjit and FCS
                                        if ((!common_channels(user,i->second)) && (isnick(i->second->nick)))
                                        {
@@ -116,7 +115,7 @@ void cmd_who::Handle (char **parameters, int pcnt, userrec *user)
                                int n_list = 0;
                                for (user_hash::const_iterator i = clientlist.begin(); i != clientlist.end(); i++)
                                {
-                                       if ((has_channel(i->second,Ptr)) && (isnick(i->second->nick)))
+                                       if ((Ptr->HasUser(i->second)) && (isnick(i->second->nick)))
                                        {
                                                // Fix Bug #29 - Part 2..
                                                *tmp = 0;
@@ -157,7 +156,7 @@ void cmd_who::Handle (char **parameters, int pcnt, userrec *user)
                                        charlcat(tmp, 'H' ,9);
                                }
                                if (*u->oper) { charlcat(tmp, '*' ,9); }
-                               WriteServ(user->fd,"352 %s %s %s %s %s %s %s :0 %s",user->nick, u->chans.size() && u->chans[0].channel ? u->chans[0].channel->name
+                               WriteServ(user->fd,"352 %s %s %s %s %s %s %s :0 %s",user->nick, u->chans.size() && ((ucrec*)*(u->chans.begin()))->channel ? ((ucrec*)*(u->chans.begin()))->channel->name
                                 : "*", u->ident, u->dhost, u->server, u->nick, tmp, u->fullname);
                        }
                        WriteServ(user->fd,"315 %s %s :End of /WHO list.",user->nick, parameters[0]);
@@ -178,7 +177,7 @@ void cmd_who::Handle (char **parameters, int pcnt, userrec *user)
                                } else {
                                        charlcat(tmp, 'H' ,9);
                                }
-                                WriteServ(user->fd,"352 %s %s %s %s %s %s %s* :0 %s", user->nick, oper->chans.size() && oper->chans[0].channel ? oper->chans[0].channel->name 
+                                WriteServ(user->fd,"352 %s %s %s %s %s %s %s* :0 %s", user->nick, oper->chans.size() && ((ucrec*)*(oper->chans.begin()))->channel ? ((ucrec*)*(oper->chans.begin()))->channel->name
                                : "*", oper->ident, oper->dhost, oper->server, oper->nick, tmp, oper->fullname);
                         }
                         WriteServ(user->fd,"315 %s %s :End of /WHO list.",user->nick, parameters[0]);