};
enum RegistrationState {
+
+#ifndef WIN32 // Burlex: This is already defined in win32, luckily it is still 0.
REG_NONE = 0, /* Has sent nothing */
+#endif
+
REG_USER = 1, /* Has sent USER */
REG_NICK = 2, /* Has sent NICK */
REG_NICKUSER = 3, /* Bitwise combination of REG_NICK and REG_USER */
/** Derived from Resolver, and performs user forward/reverse lookups.
*/
-class UserResolver : public Resolver
+class CoreExport UserResolver : public Resolver
{
private:
/** User this class is 'attached' to.
/** Holds information relevent to <connect allow> and <connect deny> tags in the config file.
*/
-class ConnectClass : public classbase
+class CoreExport ConnectClass : public classbase
{
private:
/** Type of line, either CC_ALLOW or CC_DENY
typedef std::map<chanrec*, char> UserChanList;
typedef UserChanList::iterator UCListIter;
+class userrec;
+
+class CoreExport VisData
+{
+ public:
+ VisData();
+ virtual ~VisData();
+ virtual bool VisibleTo(userrec* user);
+};
+
/** Holds all information about a user
* This class stores all information about a user connected to the irc server. Everything about a
* connection is stored here primarily, from the user's socket ID (file descriptor) through to the
* by nickname, or the FindDescriptor method of the InspIRCd class to find a specific user by their
* file descriptor value.
*/
-class userrec : public connection
+class CoreExport userrec : public connection
{
private:
/** Pointer to creator.
*/
UserResolver* res_reverse;
+ VisData* Visibility;
+
/** Stored reverse lookup from res_forward
*/
std::string stored_host;
*/
void Oper(const std::string &opertype);
+ /** Call this method to find the matching <connect> for a user, and to check them against it.
+ */
+ void CheckClass();
+
/** Use this method to fully connect a user.
* This will send the message of the day, check G/K/E lines, etc.
*/