X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=include%2Fusers.h;h=7077aaa5626cc053b735a8a2b6ace42a98019481;hb=ab01aaeeee9aed655df2eec2522072233fe3aa57;hp=44005bb92d4ae9feb1040f33e3eb11658efe28f7;hpb=b2c011a23adfb2472f51a4c18bf8f29e6e37bb04;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/include/users.h b/include/users.h index 44005bb92..7077aaa56 100644 --- a/include/users.h +++ b/include/users.h @@ -47,7 +47,7 @@ class ConnectClass : public classbase public: /** Type of line, either CC_ALLOW or CC_DENY */ - int type; + char type; /** Max time to register the connection in seconds */ int registration_timeout; @@ -66,7 +66,7 @@ class ConnectClass : public classbase /** Threshold value for flood disconnect */ - long threshold; + int threshold; /** Maximum size of sendq for users in this class (bytes) */ @@ -91,13 +91,13 @@ class ConnectClass : public classbase /** Holds a complete list of all channels to which a user has been invited and has not yet joined. */ -typedef std::vector InvitedList; +typedef std::vector InvitedList; /** Holds a complete list of all allow and deny tags from the configuration file (connection classes) */ -typedef std::vector ClassVector; +typedef std::vector ClassVector; /** Holds all information about a user * This class stores all information about a user connected to the irc server. Everything about a @@ -122,12 +122,12 @@ class userrec : public connection /** The users ident reply. */ - char ident[64]; + char ident[16]; /** The host displayed to non-opers (used for cloaking etc). * This usually matches the value of userrec::host. */ - char dhost[256]; + char dhost[160]; /** The users full name. */ @@ -165,7 +165,7 @@ class userrec : public connection * If they do not send their details in this time limit they * will be disconnected */ - unsigned long timeout; + unsigned int timeout; /** The oper type they logged in as, if they are an oper. * This is used to check permissions in operclasses, so that @@ -180,7 +180,7 @@ class userrec : public connection /** Number of seconds between PINGs for this user (set from <connect:allow> tag */ - unsigned long pingmax; + unsigned int pingmax; /** Password specified by the user when they registered. * This is stored even if the block doesnt need a password, so that @@ -201,7 +201,7 @@ class userrec : public connection /** Flood counters */ - long lines_in; + int lines_in; time_t reset_due; long threshold; @@ -293,10 +293,38 @@ class userrec : public connection */ std::string GetWriteError(); + /** Adds to the user's write buffer. + * You may add any amount of text up to this users sendq value, if you exceed the + * sendq value, SetWriteError() will be called to set the users error string to + * "SendQ exceeded", and further buffer adds will be dropped. + */ void AddWriteBuf(std::string data); + + /** Flushes as much of the user's buffer to the file descriptor as possible. + * This function may not always flush the entire buffer, rather instead as much of it + * as it possibly can. If the send() call fails to send the entire buffer, the buffer + * position is advanced forwards and the rest of the data sent at the next call to + * this method. + */ void FlushWriteBuf(); + /** Returns the list of channels this user has been invited to but has not yet joined. + */ + InvitedList* GetInviteList(); }; +/** A lightweight userrec used by WHOWAS + */ +class WhoWasUser +{ + public: + char nick[NICKMAX]; + char ident[16]; + char dhost[160]; + char host[160]; + char fullname[128]; + char server[256]; + time_t signon; +}; #endif