/* stuff common to chan.c & mode.c */ /* users.h needs to be loaded too */ typedef struct memstruct { char nick[31]; /* "dalnet" allows 30 */ char userhost[121]; time_t joined; unsigned char flags; time_t split; /* in case they were just netsplit */ time_t last; /* for measuring idle time */ struct userrec *user; struct memstruct *next; } memberlist; #define CHANOP 1 /* channel +o */ #define CHANVOICE 2 /* channel +v */ #define FAKEOP 4 /* op'd by server */ #define SENTOP 8 /* a mode +o was already sent out for this user */ #define SENTDEOP 16 /* a mode -o was already sent out for this user */ typedef struct banstruct { char *ban; char *who; time_t timer; struct banstruct *next; } banlist; struct chan_t { memberlist *member; banlist *ban; char *key; unsigned short int mode; int maxmembers; }; #define CHANINV 1 /* +i */ #define CHANPRIV 2 /* +p */ #define CHANSEC 4 /* +s */ #define CHANMODER 8 /* +m */ #define CHANTOPIC 16 /* +t */ #define CHANNOMSG 32 /* +n */ #define CHANLIMIT 64 /* -l */ /* used only for protecting modes */ #define CHANKEY 128 /* -k */ /* used only for protecting modes */ #define CHANANON 256 /* +a */ /* irc 2.9 */ #define CHANPEND 512 /* just joined; waiting for end of WHO list */ /* prototypes */ memberlist *ismember();