X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=ChanUser.h;h=076b7f79d76177472513ee58dd15439d382d75ae;hb=795115bf680185ae01043bd1222b78bfed8c1d87;hp=71aba8c4705e0bce0a12524f4a9c1e40f636cb7c;hpb=b3330a3915ac73d3074551ef7e69cc8aeb54e6b7;p=NeonServV5.git diff --git a/ChanUser.h b/ChanUser.h index 71aba8c..076b7f7 100644 --- a/ChanUser.h +++ b/ChanUser.h @@ -1,29 +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