/* src/struct.c
* Copyright(c) 2003, Aaron Wiebe
* Bahamut development team
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 1, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/* $Id: struct.c,v 1.3 2005/07/09 01:22:50 sheik Exp $ */
/* This file contains quick and dirty functions for retriving information
* from structures. */
#include "struct.h"
#include "common.h"
#include "sys.h"
#include "numeric.h"
#include "msg.h"
#include "channel.h"
#include "throttle.h"
#include "sbuf.h"
#include "structfunc.h" /* here for compiler prototype checks */
aClient *ac_next(aClient *cptr)
{
return cptr->next;
}
aClient *ac_prev(aClient *cptr)
{
return cptr->prev;
}
anUser *ac_user(aClient *cptr)
{
return cptr->user;
}
aServer *ac_server(aClient *cptr)
{
return cptr->serv;
}
aWhowas *ac_whowas(aClient *cptr)
{
return cptr->whowas;
}
aClient *ac_from(aClient *cptr)
{
return cptr->from;
}
aClient *ac_uplink(aClient *cptr)
{
return cptr->uplink;
}
time_t ac_lasttime(aClient *cptr)
{
return cptr->lasttime;
}
time_t ac_firsttime(aClient *cptr)
{
return cptr->firsttime;
}
time_t ac_since(aClient *cptr)
{
return cptr->since;
}
ts_val ac_tsinfo(aClient *cptr)
{
return cptr->tsinfo;
}
int ac_fd(aClient *cptr)
{
return cptr->fd;
}
int ac_hopcount(aClient *cptr)
{
return cptr->hopcount;
}
short ac_status(aClient *cptr)
{
return cptr->status;
}
char ac_nicksent(aClient *cptr)
{
return cptr->nicksent;
}
char *ac_name(aClient *cptr)
{
return cptr->name;
}
char *ac_info(aClient *cptr)
{
return cptr->info;
}
#ifdef FLUD
Link *ac_fludees(aClient *cptr)
{
return cptr->fludees;
}
#endif
struct in_addr ac_ip(aClient *cptr)
{
return cptr->ip;
}
char *ac_hostip(aClient *cptr)
{
return cptr->hostip;
}
Link *ac_watch(aClient *cptr)
{
return cptr->watch;
}
int ac_watches(aClient *cptr)
{
return cptr->watches;
}
/*************************************
* local only stuff starts here
*************************************/
int ac_count(aClient *cptr)
{
if(cptr->fd == -1)
abort();
return cptr->count;
}
#ifdef FLUD
time_t ac_fludblock(aClient *cptr)
{
if(cptr->fd == -1)
abort();
return cptr->fludblock;
}
struct fludbot *ac_fluders(aClient *cptr)
{
if(cptr->fd == -1)
abort();
return cptr->fluders;
}
#endif
#ifdef ANTI_SPAMBOT
time_t ac_last_join_time(aClient *cptr)
{
if(cptr->fd == -1)
abort();
return cptr->last_join_time;
}
time_t ac_last_leave_time(aClient *cptr)
{
if(cptr->fd == -1)
abort();
return cptr->last_leave_time;
}
int ac_join_leave_count(aClient *cptr)
{
if(cptr->fd == -1)
abort();
return cptr->join_leave_count;
}
int ac_oper_warn_count_down(aClient *cptr)
{
if(cptr->fd == -1)
abort();
return cptr->oper_warn_count_down;
}
#endif
char *ac_buffer(aClient *cptr)
{
if(cptr->fd == -1)
abort();
return cptr->buffer;
}
short ac_lastsq(aClient *cptr)
{
if(cptr->fd == -1)
abort();
return cptr->lastsq;
}
SBuf *ac_sendQ(aClient *cptr)
{
if(cptr->fd == -1)
abort();
return &cptr->sendQ;
}
SBuf *ac_recvQ(aClient *cptr)
{
if(cptr->fd == -1)
abort();
return &cptr->recvQ;
}
long ac_sendM(aClient *cptr)
{
if(cptr->fd == -1)
abort();
return cptr->sendM;
}
long ac_sendK(aClient *cptr)
{
if(cptr->fd == -1)
abort();
return cptr->sendK;
}
long ac_receiveM(aClient *cptr)
{
if(cptr->fd == -1)
abort();
return cptr->receiveM;
}
long ac_receiveK(aClient *cptr)
{
if(cptr->fd == -1)
abort();
return cptr->receiveK;
}
u_short ac_sendB(aClient *cptr)
{
if(cptr->fd == -1)
abort();
return cptr->sendB;
}
u_short ac_receiveB(aClient *cptr)
{
if(cptr->fd == -1)
abort();
return cptr->receiveB;
}
long ac_lastrecvM(aClient *cptr)
{
if(cptr->fd == -1)
abort();
return cptr->lastrecvM;
}
int ac_priority(aClient *cptr)
{
if(cptr->fd == -1)
abort();
return cptr->priority;
}
aListener *ac_lstn(aClient *cptr)
{
if(cptr->fd == -1)
abort();
return cptr->lstn;
}
int ac_authfd(aClient *cptr)
{
if(cptr->fd == -1)
abort();
return cptr->authfd;
}
char *ac_username(aClient *cptr)
{
if(cptr->fd == -1)
abort();
return cptr->username;
}
unsigned short ac_port(aClient *cptr)
{
if(cptr->fd == -1)
abort();
return cptr->port;
}
struct hostent *ac_hostp(aClient *cptr)
{
if(cptr->fd == -1)
abort();
return cptr->hostp;
}
#ifdef ANTI_NICK_FLOOD
time_t ac_last_nick_change(aClient *cptr)
{
if(cptr->fd == -1)
abort();
return cptr->last_nick_change;
}
int ac_number_of_nick_changes(aClient *cptr)
{
if(cptr->fd == -1)
abort();
return cptr->number_of_nick_changes;
}
#endif
#ifdef NO_AWAY_FLUD
time_t ac_alas(aClient *cptr)
{
if(cptr->fd == -1)
abort();
return cptr->alas;
}
int ac_acount(aClient *cptr)
{
if(cptr->fd == -1)
abort();
return cptr->acount;
}
#endif
char *ac_sockhost(aClient *cptr)
{
if(cptr->fd == -1)
abort();
return cptr->sockhost;
}
char *ac_passwd(aClient *cptr)
{
if(cptr->fd == -1)
abort();
return cptr->passwd;
}
int ac_oflag(aClient *cptr)
{
if(cptr->fd == -1)
abort();
return cptr->oflag;
}
int ac_sockerr(aClient *cptr)
{
if(cptr->fd == -1)
abort();
return cptr->sockerr;
}
int ac_capabilities(aClient *cptr)
{
if(cptr->fd == -1)
abort();
return cptr->capabilities;
}
/* channel functions */
aChannel *ch_next(aChannel *chptr)
{
return chptr->nextch;
}
aChannel *ch_prev(aChannel *chptr)
{
return chptr->prevch;
}
aChannel *ch_hnext(aChannel *chptr)
{
return chptr->hnextch;
}
int ch_hashv(aChannel *chptr)
{
return chptr->hashv;
}
Mode ch_mode(aChannel *chptr)
{
return chptr->mode;
}
char *ch_topic(aChannel *chptr)
{
return chptr->topic;
}
char *ch_topic_nick(aChannel *chptr)
{
return chptr->topic_nick;
}
time_t ch_topic_time(aChannel *chptr)
{
return chptr->topic_time;
}
int ch_users(aChannel *chptr)
{
return chptr->users;
}
chanMember *ch_members(aChannel *chptr)
{
return chptr->members;
}
Link *ch_invites(aChannel *chptr)
{
return chptr->invites;
}
aBan *ch_banlist(aChannel *chptr)
{
return chptr->banlist;
}
#ifdef INVITE_LISTS
anInvite *ch_invite_list(aChannel *chptr)
{
return chptr->invite_list;
}
#endif
#ifdef EXEMPT_LISTS
aBanExempt *ch_banexempt_list(aChannel *chptr)
{
return chptr->banexempt_list;
}
#endif
ts_val ch_channelts(aChannel *chptr)
{
return chptr->channelts;
}
#ifdef FLUD
time_t ch_fludblock(aChannel *chptr)
{
return chptr->fludblock;
}
struct fludbot *ch_fluders(aChannel *chptr)
{
return chptr->fluders;
}
#endif
char *ch_chname(aChannel *chptr)
{
return chptr->chname;
}
int ch_join_start(aChannel *chptr)
{
return chptr->join_start;
}
int ch_join_count(aChannel *chptr)
{
return chptr->join_count;
}
syntax highlighted by Code2HTML, v. 0.9.1