X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=ChanUser.h;h=076b7f79d76177472513ee58dd15439d382d75ae;hb=795115bf680185ae01043bd1222b78bfed8c1d87;hp=b5cdd336642236004e93fee51de9be313094786c;hpb=54f70a7e7d874c8b7ce0622b08cd62b594da5afb;p=NeonServV5.git diff --git a/ChanUser.h b/ChanUser.h index b5cdd33..076b7f7 100644 --- a/ChanUser.h +++ b/ChanUser.h @@ -1,22 +1,35 @@ #ifndef _ChanUser_h #define _ChanUser_h +#include "main.h" -#define CHANUSERFLAG_OPPED 0x01; -#define CHANUSERFLAG_VOICED 0x02; +#define CHANUSERFLAG_OPPED 0x01 +#define CHANUSERFLAG_VOICED 0x02 +#define CHANUSERFLAG_INVISIBLE 0x04 - -#define CHANUSERFLAG_OPPED_OR_VOICED (CHANUSERFLAG_OPPED | CHANUSERFLAG_VOICED); +#define CHANUSERFLAG_OPPED_OR_VOICED (CHANUSERFLAG_OPPED | CHANUSERFLAG_VOICED) struct ChanNode; struct UserNode; struct ChanUser { - char flags; - struct ChanNode *channel; + unsigned char flags; + struct ChanNode *chan; struct UserNode *user; + int chageEvents; + time_t changeTime; + struct ChanUser *next_user; struct ChanUser *next_chan; -} +}; + +struct ChanUser* addChanUser(struct ChanNode *chan, struct UserNode *user); +struct ChanUser* addInvisibleChanUser(struct ChanNode *chan, struct UserNode *user); +int isUserOnChan(struct UserNode *user, struct ChanNode *chan); +struct ChanUser* getChanUser(struct UserNode *user, struct ChanNode *chan); +struct ChanUser* getChannelUsers(struct ChanNode *chan, struct ChanUser *last); +struct ChanUser* getUserChannels(struct UserNode *user, struct ChanUser *last); +void delChanUser(struct ChanUser *chanuser, int freeChanUser); +void removeChanUserFromLists(struct ChanUser *chanuser, int remove_from_userlist, int remove_from_channellist, int freeChanUser); #endif \ No newline at end of file