X-Git-Url: http://git.pk910.de/?p=ircu2.10.12-pk.git;a=blobdiff_plain;f=include%2Fclient.h;h=36060fe0da83c88fdc4c34c802cba6726dcc71c8;hp=a86633d2652d3c0aece42f9a0dfb0dff575747f1;hb=refs%2Fheads%2FKeepConn;hpb=805ef5ce48ebeb5a5c9f7766a3840964f58001fb diff --git a/include/client.h b/include/client.h index a86633d..36060fe 100644 --- a/include/client.h +++ b/include/client.h @@ -138,6 +138,7 @@ enum Priv PRIV_UNLIMITED_TARGET, /**< unlimited target changes */ PRIV_UMODE_OVERRIDECC, /**< can set umode +c (override cmodes +cC) */ PRIV_NOAMSG_OVERRIDE, /**< can override the +M channelmode */ + PRIV_SET_KEEPCONN, /**< can set KeepConn time by its own */ PRIV_LAST_PRIV /**< number of privileges */ }; @@ -192,6 +193,7 @@ enum Flag FLAG_WEBIRC, /**< Is a WebIRC client with spoofed host/ip */ FLAG_SEE_IDLETIME, /**< Can see idletime of +I users. */ FLAG_SECURITY_SERV, /**< Securityflag, that can only be set by IAuth */ + FLAG_KEEPCONN_ENABLED, /**< special KeepConn time is set */ FLAG_LAST_FLAG, /**< number of flags */ FLAG_LOCAL_UMODES = FLAG_LOCOP, /**< First local mode flag */ FLAG_GLOBAL_UMODES = FLAG_OPER /**< First global mode flag */ @@ -277,7 +279,8 @@ struct Client { char cli_webirc[NICKLEN + 1]; /**< Contains the name of the WebIRC block */ char cli_yxx[4]; /**< Numeric Nick: YY if this is a server, XXX if this is a user */ - unsigned int maxchans; + unsigned int maxchans : 8; + unsigned int keepconn : 24; char cli_connclass[NICKLEN + 1]; time_t cli_firsttime; /**< time client was created */ time_t cli_lastnick; /**< TimeStamp on nick */ @@ -649,10 +652,12 @@ struct Client { #define IsWebIRC(x) HasFlag(x, FLAG_WEBIRC) /** Return non-zero if the client can see idletime of +I users. */ #define IsSeeIdletime(x) HasFlag(x, FLAG_SEE_IDLETIME) -#define IsSecurityServ(x) HasFlag(x, FLAG_SECURITY_SERV) +#define IsSecurityServ(x) HasFlag(x, FLAG_SECURITY_SERV) +/** Return non-zero if the client has a special KeepConn Time set. */ +#define IsKeepConnEnabled(x) HasFlag(x, FLAG_KEEPCONN_ENABLED) /** Return non-zero if the client has a fakehost. */ #define IsFakeHost(x) HasFlag(x, FLAG_FAKEHOST) -#define IsFakeIdent(x) HasFlag(x, FLAG_FAKEIDENT) +#define IsFakeIdent(x) HasFlag(x, FLAG_FAKEIDENT) /** Return non-zero if the client has operator or server privileges. */ #define IsPrivileged(x) (IsAnOper(x) || IsServer(x)) @@ -725,6 +730,8 @@ struct Client { /** Mark a client as being able to see idletime of +I users. */ #define SetSeeIdletime(x) SetFlag(x, FLAG_SEE_IDLETIME) #define SetSecurityServ(x) SetFlag(x, FLAG_SECURITY_SERV) +/** Mark a client as having a special KeepConn Time set. */ +#define SetKeepConnEnabled(x) SetFlag(x, FLAG_KEEPCONN_ENABLED) /** Return non-zero if \a sptr sees \a acptr as an operator. */ #define SeeOper(sptr,acptr) ((IsAnOper(acptr) && \ @@ -785,6 +792,8 @@ struct Client { /** Make client no longer being able to see idletime of +I users. */ #define ClearSeeIdletime(x) ClrFlag(x, FLAG_SEE_IDLETIME) #define ClearSecurityServ(x) ClrFlag(x, FLAG_SECURITY_SERV) +/** Remove the client's mark of having a special KeepConn Time set. */ +#define ClearKeepConnEnabled(x) ClrFlag(x, FLAG_KEEPCONN_ENABLED) /* free flags */ #define FREEFLAG_SOCKET 0x0001 /**< socket needs to be freed */