using namespace std;
#include "inspircd_config.h"
-#include "inspircd.h"
#include "inspircd_io.h"
#include <time.h>
#include <string>
#include "socketengine.h"
#include "typedefs.h"
#include "command_parse.h"
+#include "inspircd.h"
#include "cmd_who.h"
extern ServerConfig* Config;
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];
/* 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)))
{
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;
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]);
} 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]);