X-Git-Url: https://jfr.im/git/irc/rqf/shadowircd.git/blobdiff_plain/e54995b1508e6f5916045b29358fc906dd0f42d4..bc475bf02014dd7d97b5b9d20be2a191f6edd269:/include/client.h?ds=sidebyside diff --git a/include/client.h b/include/client.h index 1b8899d..42ffcf4 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. @@ -235,7 +233,7 @@ struct LocalUser conf_item_t *att_conf; /* attached conf */ struct server_conf *att_sconf; - struct irc_sockaddr_storage ip; + struct rb_sockaddr_storage ip; time_t last_nick_change; int number_of_nick_changes; @@ -251,7 +249,7 @@ struct LocalUser char *fullcaps; int caps; /* capabilities bit-field */ - fde_t *F; /* >= 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 */ @@ -298,6 +296,9 @@ struct LocalUser char *mangledhost; /* non-NULL if host mangling module loaded and applicable to this client */ + + struct rb_sockaddr_storage *lip; /* alloc before auth/freed after auth */ + struct _ssl_ctl *ssl_ctl; /* which ssl daemon we're associate with */ }; struct PreClient @@ -310,7 +311,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 */ }; @@ -458,7 +459,6 @@ struct exit_client_hook #define FLAGS2_EXEMPTGLINE 0x00800000 #define FLAGS2_EXEMPTKLINE 0x01000000 #define FLAGS2_EXEMPTFLOOD 0x02000000 -#define FLAGS2_NOLIMIT 0x04000000 #define FLAGS2_IP_SPOOFING 0x10000000 #define FLAGS2_EXEMPTSPAMBOT 0x20000000 #define FLAGS2_EXEMPTSHIDE 0x40000000 @@ -539,8 +539,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) @@ -599,7 +597,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); @@ -614,4 +612,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 */