X-Git-Url: http://git.pk910.de/?p=NeonServV5.git;a=blobdiff_plain;f=src%2FUserNode.h;h=ca6b70a1b1db6edf2e91fdc9e9527d3e40cf3bad;hp=c1c4d800add329ad5987fefc5e1adef9ace59c5c;hb=HEAD;hpb=bb5692b9cbff069abbf9573c81e86c3cd2061ceb diff --git a/src/UserNode.h b/src/UserNode.h index c1c4d80..ca6b70a 100644 --- a/src/UserNode.h +++ b/src/UserNode.h @@ -1,4 +1,4 @@ -/* UserNode.h - NeonServ v5.3 +/* UserNode.h - NeonServ v5.6 * Copyright (C) 2011-2012 Philipp Kreil (pk910) * * This program is free software: you can redistribute it and/or modify @@ -28,13 +28,17 @@ #define USERFLAG_REPLY_PRIVMSG 0x0080 #define USERFLAG_GOD_MODE 0x0100 #define USERFLAG_HAS_USERID 0x0200 +#define USERFLAG_IS_ON_WHO_QUEUE 0x0400 /* prevents the user struct from beeing freed too early */ +#define USERFLAG_FREE_AFTER_WHO 0x0800 /* user struct is no more referenced - free it after WHO */ +#define USERFLAG_QUITTING 0x1000 /* user is currently quitting... */ -#define USERFLAG_WAS_REGISTRING 0x20000000 /* only set for event_join if the quit reason was Registered */ +#define USERFLAG_WAS_REGISTERING 0x20000000 /* only set for event_join if the quit reason was Registered */ #define USERFLAG_SCRIPTFLAG1 0x40000000 #define USERFLAG_SCRIPTFLAG2 0x80000000 struct ChanUser; struct language; +struct IPNode; struct UserNode { char nick[NICKLEN+1]; @@ -42,7 +46,8 @@ struct UserNode { char host[HOSTLEN+1]; char realname[REALLEN+1]; char auth[AUTHLEN+1]; - unsigned int flags; + struct IPNode *ip; + unsigned int flags, usermode; time_t created, last_who; struct ChanUser *channel; struct language *language; @@ -55,22 +60,26 @@ struct UserNode { #define isNetworkService(USER) (USER->flags & (USERFLAG_ISBOT | USERFLAG_ISIRCOP | USERFLAG_ISSERVER)) #define isBot(USER) (USER->flags & (USERFLAG_ISBOT)) +#ifndef DND_FUNCTIONS void init_UserNode(); void free_UserNode(); -int is_valid_nick(const char *nick); -struct UserNode* getUserByNick(const char *nick); -struct UserNode* getUserByMask(const char *mask); -int countUsersWithHost(char *host); -char *getAuthFakehost(char *auth); -struct UserNode* searchUserByNick(const char *nick); -struct UserNode* getAllUsers(struct UserNode *last); -struct UserNode* getUsersWithAuth(const char *auth, struct UserNode *last); -int getUserCount(); +/* MODULAR ACCESSIBLE */ int isUserModeSet(struct UserNode *user, char modeChar); +void parseUserModes(struct UserNode* user, char *modeStr); +/* MODULAR ACCESSIBLE */ int is_valid_nick(const char *nick); +/* MODULAR ACCESSIBLE */ struct UserNode* getUserByNick(const char *nick); +/* MODULAR ACCESSIBLE */ struct UserNode* getUserByMask(const char *mask); +/* MODULAR ACCESSIBLE */ int countUsersWithHost(char *host); +/* MODULAR ACCESSIBLE */ char *getAuthFakehost(char *auth); +/* MODULAR ACCESSIBLE */ struct UserNode* searchUserByNick(const char *nick); +/* MODULAR ACCESSIBLE */ struct UserNode* getAllUsers(struct UserNode *last); +/* MODULAR ACCESSIBLE */ struct UserNode* getUsersWithAuth(const char *auth, struct UserNode *last); +/* MODULAR ACCESSIBLE */ int getUserCount(); struct UserNode* addUser(const char *nick); struct UserNode* addUserMask(const char *mask); -struct UserNode* createTempUser(const char *mask); +/* MODULAR ACCESSIBLE */ struct UserNode* createTempUser(const char *nick); +struct UserNode* createTempUserMask(const char *mask); int renameUser(struct UserNode* user, const char *new_nick); void delUser(struct UserNode* user, int freeUser); void clearTempUsers(); - +#endif #endif