X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=ChanUser.h;h=076b7f79d76177472513ee58dd15439d382d75ae;hb=795115bf680185ae01043bd1222b78bfed8c1d87;hp=8ca5b2bf00bbc7fe1ee8b80a2bf2dbdb07d6ff98;hpb=394d5d44953b5f09a7c0a8f2cd79b74191e8cd85;p=NeonServV5.git diff --git a/ChanUser.h b/ChanUser.h index 8ca5b2b..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