00001 /* +------------------------------------+ 00002 * | Inspire Internet Relay Chat Daemon | 00003 * +------------------------------------+ 00004 * 00005 * Inspire is copyright (C) 2002-2004 ChatSpike-Dev. 00006 * E-mail: 00007 * <brain@chatspike.net> 00008 * <Craig@chatspike.net> 00009 * 00010 * Written by Craig Edwards, Craig McLure, and others. 00011 * This program is free but copyrighted software; see 00012 * the file COPYING for details. 00013 * 00014 * --------------------------------------------------- 00015 */ 00016 00017 #include "inspircd_config.h" 00018 #include "channels.h" 00019 #include "connection.h" 00020 #include "inspstring.h" 00021 #include <string> 00022 00023 #ifndef __USERS_H__ 00024 #define __USERS_H__ 00025 00026 #define STATUS_OP 4 00027 #define STATUS_HOP 2 00028 #define STATUS_VOICE 1 00029 #define STATUS_NORMAL 0 00030 00031 #define CC_ALLOW 0 00032 #define CC_DENY 1 00033 00036 class Invited : public classbase 00037 { 00038 public: 00039 char channel[CHANMAX]; 00040 }; 00041 00042 00045 class ConnectClass : public classbase 00046 { 00047 public: 00050 int type; 00053 int registration_timeout; 00056 int flood; 00059 char host[MAXBUF]; 00062 char pass[MAXBUF]; 00063 00064 ConnectClass() 00065 { 00066 registration_timeout = 0; 00067 flood = 0; 00068 strlcpy(host,"",MAXBUF); 00069 strlcpy(pass,"",MAXBUF); 00070 } 00071 }; 00072 00075 typedef std::vector<Invited> InvitedList; 00076 00077 00078 00081 typedef std::vector<ConnectClass> ClassVector; 00082 00089 class userrec : public connection 00090 { 00091 private: 00092 00095 InvitedList invites; 00096 public: 00097 00102 char nick[NICKMAX]; 00103 00106 char ident[64]; 00107 00111 char dhost[256]; 00112 00115 char fullname[128]; 00116 00121 char modes[MAXBUF]; 00122 00123 ucrec chans[MAXCHANS]; 00124 00127 char server[256]; 00128 00132 char awaymsg[512]; 00133 00137 char result[256]; 00138 00143 int flood; 00144 00149 unsigned long timeout; 00150 00156 char oper[NICKMAX]; 00157 00158 userrec(); 00159 00160 virtual ~userrec() { } 00161 00166 virtual char* GetFullHost(); 00167 00173 virtual char* GetFullRealHost(); 00174 00177 virtual bool IsInvited(char* channel); 00178 00181 virtual void InviteTo(char* channel); 00182 00187 virtual void RemoveInvite(char* channel); 00188 00193 bool HasPermission(char* command); 00194 00195 }; 00196 00197 00198 #endif