X-Git-Url: https://jfr.im/git/irc/rqf/shadowircd.git/blobdiff_plain/2d2c402d0b784aa615898ea9d455088f7d32443a..c945815bf60d0084b553d920022afb0036a3f664:/include/client.h diff --git a/include/client.h b/include/client.h index 00c01e5..943098e 100644 --- a/include/client.h +++ b/include/client.h @@ -35,14 +35,12 @@ #endif #include "ircd_defs.h" -#include "linebuf.h" #include "channel.h" #include "res.h" #include "snomask.h" #include "irc_string.h" #include "sprintf_irc.h" #include "ircd.h" -#include "commio.h" /* other structs */ struct Blacklist; @@ -92,8 +90,8 @@ typedef struct ListClient list_client_t; */ struct User { - dlink_list channel; /* chain of channel pointer blocks */ - dlink_list invited; /* chain of invite pointer blocks */ + rb_dlink_list channel; /* chain of channel pointer blocks */ + rb_dlink_list invited; /* chain of invite pointer blocks */ char *away; /* pointer to away message */ int refcnt; /* Number of times this block is referenced */ @@ -104,8 +102,8 @@ struct Server { user_t *user; /* who activated this connection */ char by[NICKLEN]; - dlink_list servers; - dlink_list users; + rb_dlink_list servers; + rb_dlink_list users; int caps; /* capabilities bit-field */ char *fullcaps; struct scache_entry *nameinfo; @@ -136,8 +134,8 @@ struct ZipStats struct Client { - dlink_node node; - dlink_node lnode; + rb_dlink_node node; + rb_dlink_node lnode; user_t *user; /* ...defined, if this is a User */ server_t *serv; /* ...defined, if this is a server */ client_t *servptr; /* Points to server this Client is on */ @@ -182,7 +180,7 @@ struct Client /* list of who has this client on their allow list, its counterpart * is in LocalUser */ - dlink_list on_allow_list; + rb_dlink_list on_allow_list; local_user_t *localClient; pre_client_t *preClient; @@ -190,7 +188,7 @@ struct Client struct LocalUser { - dlink_node tnode; /* This is the node for the local list type the client is on*/ + rb_dlink_node tnode; /* This is the node for the local list type the client is on*/ /* * The following fields are allocated only for local clients * (directly connected to *this* server with a socket. @@ -251,7 +249,7 @@ struct LocalUser char *fullcaps; int caps; /* capabilities bit-field */ - int fd; /* >= 0, for local clients */ + rb_fde_t *F; /* >= 0, for local clients */ /* time challenge response is valid for */ time_t chal_time; @@ -271,10 +269,10 @@ struct LocalUser time_t last; /* clients allowed to talk through +g */ - dlink_list allow_list; + rb_dlink_list allow_list; /* nicknames theyre monitoring */ - dlink_list monitor_list; + rb_dlink_list monitor_list; /* * Anti-flood stuff. We track how many messages were parsed and how @@ -290,7 +288,7 @@ struct LocalUser auth_request_t *auth_request; /* target change stuff */ - void *targets[10]; /* targets were aware of */ + uint32_t targets[10]; /* targets were aware of (fnv32(use_id(target_p))) */ unsigned int targinfo[2]; /* cyclic array, no in use */ time_t target_last; /* last time we cleared a slot */ @@ -310,7 +308,7 @@ struct PreClient unsigned char sasl_out; unsigned char sasl_complete; - dlink_list dnsbl_queries; /* list of struct BlacklistClient * */ + rb_dlink_list dnsbl_queries; /* list of struct BlacklistClient * */ struct Blacklist *dnsbl_listed; /* first dnsbl where it's listed */ }; @@ -454,13 +452,11 @@ struct exit_client_hook /* overflow flags */ /* EARLIER FLAGS ARE IN s_newconf.h */ -#define FLAGS2_EXEMPTRESV 0x0080000 -#define FLAGS2_EXEMPTGLINE 0x0100000 -#define FLAGS2_EXEMPTKLINE 0x0200000 -#define FLAGS2_EXEMPTFLOOD 0x0400000 -#define FLAGS2_NOLIMIT 0x0800000 -#define FLAGS2_IDLE_LINED 0x1000000 -#define FLAGS2_IP_SPOOFING 0x8000000 +#define FLAGS2_EXEMPTRESV 0x00400000 +#define FLAGS2_EXEMPTGLINE 0x00800000 +#define FLAGS2_EXEMPTKLINE 0x01000000 +#define FLAGS2_EXEMPTFLOOD 0x02000000 +#define FLAGS2_IP_SPOOFING 0x10000000 #define FLAGS2_EXEMPTSPAMBOT 0x20000000 #define FLAGS2_EXEMPTSHIDE 0x40000000 #define FLAGS2_EXEMPTJUPE 0x80000000 @@ -540,8 +536,6 @@ struct exit_client_hook */ #define IsExemptKline(x) ((x)->flags2 & FLAGS2_EXEMPTKLINE) #define SetExemptKline(x) ((x)->flags2 |= FLAGS2_EXEMPTKLINE) -#define IsExemptLimits(x) ((x)->flags2 & FLAGS2_NOLIMIT) -#define SetExemptLimits(x) ((x)->flags2 |= FLAGS2_NOLIMIT) #define IsExemptGline(x) ((x)->flags2 & FLAGS2_EXEMPTGLINE) #define SetExemptGline(x) ((x)->flags2 |= FLAGS2_EXEMPTGLINE) #define IsExemptFlood(x) ((x)->flags2 & FLAGS2_EXEMPTFLOOD) @@ -557,9 +551,6 @@ struct exit_client_hook #define IsIPSpoof(x) ((x)->flags2 & FLAGS2_IP_SPOOFING) #define SetIPSpoof(x) ((x)->flags2 |= FLAGS2_IP_SPOOFING) -#define SetIdlelined(x) ((x)->flags2 |= FLAGS2_IDLE_LINED) -#define IsIdlelined(x) ((x)->flags2 & FLAGS2_IDLE_LINED) - /* for local users: flood grace period is over * for servers: mentioned in networknotice.c notice */ @@ -603,7 +594,7 @@ extern client_t *find_person(const char *); extern client_t *find_named_person(const char *); extern client_t *next_client(struct Client *, const char *); -#define accept_message(s, t) ((s) == (t) || (dlinkFind((s), &((t)->localClient->allow_list)))) +#define accept_message(s, t) ((s) == (t) || (rb_dlinkFind((s), &((t)->localClient->allow_list)))) extern void del_all_accepts(struct Client *client_p); extern void dead_link(struct Client *client_p); @@ -618,4 +609,7 @@ extern void close_connection(struct Client *); extern void init_uid(void); extern char *generate_uid(void); +void allocate_away(struct Client *); +void free_away(struct Client *); + #endif /* INCLUDED_client_h */