#include "ircd_defs.h"
#include "channel.h"
-#include "res.h"
+#include "dns.h"
#include "snomask.h"
#include "match.h"
#include "ircd.h"
struct Client *servptr; /* Points to server this Client is on */
struct Client *from; /* == self, if Local Client, *NEVER* NULL! */
- struct Whowas *whowas; /* Pointers to whowas structs */
+ rb_dlink_list whowas_clist;
+
time_t tsinfo; /* TS on the nick, SVINFO on server */
unsigned int umodes; /* opers, normal users subset */
unsigned int flags; /* client flags */
char *opername; /* name of operator{} block being used or tried (challenge) */
char *challenge;
char *fullcaps;
+ char *cipher_string;
int caps; /* capabilities bit-field */
rb_fde_t *F; /* >= 0, for local clients */
/* time challenge response is valid for */
time_t chal_time;
- struct DNSQuery *dnsquery; /* for outgoing server's name lookup */
-
time_t next_away; /* Don't allow next away before... */
time_t last;
+ uint32_t connid;
/* clients allowed to talk through +g */
rb_dlink_list allow_list;
struct _ssl_ctl *ssl_ctl; /* which ssl daemon we're associate with */
struct _ssl_ctl *z_ctl; /* second ctl for ssl+zlib */
+ uint32_t zconnid;
uint32_t localflags;
struct ZipStats *zipstats; /* zipstats */
uint16_t cork_count; /* used for corking/uncorking connections */
struct ListClient
{
- unsigned int hash_indice;
+ char *chname;
unsigned int users_min, users_max;
time_t created_min, created_max, topic_min, topic_max;
int operspy;
#define FLAGS_TGCHANGE 0x400000 /* we're allowed to clear something */
#define FLAGS_DYNSPOOF 0x800000 /* dynamic spoof, only opers see ip */
#define FLAGS_TGEXCESSIVE 0x1000000 /* whether the client has attemped to change targets excessively fast */
+#define FLAGS_CLICAP_DATA 0x2000000 /* requested CAP LS 302 */
/* flags for local clients, this needs stuff moved from above to here at some point */
#define LFLAGS_SSL 0x00000001
/* overflow flags */
/* EARLIER FLAGS ARE IN s_newconf.h */
+#define FLAGS2_EXTENDCHANS 0x00200000
#define FLAGS2_EXEMPTRESV 0x00400000
#define FLAGS2_EXEMPTKLINE 0x00800000
#define FLAGS2_EXEMPTFLOOD 0x01000000
UMODE_WALLOP | UMODE_LOCOPS)
#define DEFAULT_OPER_SNOMASK SNO_GENERAL
-#define CLICAP_MULTI_PREFIX 0x0001
-#define CLICAP_SASL 0x0002
-#define CLICAP_ACCOUNT_NOTIFY 0x0004
-#define CLICAP_EXTENDED_JOIN 0x0008
-#define CLICAP_AWAY_NOTIFY 0x0010
-#define CLICAP_TLS 0x0020
-
/*
* flags macros.
*/
#define SetExemptResv(x) ((x)->flags2 |= FLAGS2_EXEMPTRESV)
#define IsIPSpoof(x) ((x)->flags2 & FLAGS2_IP_SPOOFING)
#define SetIPSpoof(x) ((x)->flags2 |= FLAGS2_IP_SPOOFING)
+#define IsExtendChans(x) ((x)->flags2 & FLAGS2_EXTENDCHANS)
+#define SetExtendChans(x) ((x)->flags2 |= FLAGS2_EXTENDCHANS)
/* for local users: flood grace period is over
* for servers: mentioned in networknotice.c notice
extern void count_local_client_memory(size_t * count, size_t * memory);
extern void count_remote_client_memory(size_t * count, size_t * memory);
+extern int clean_nick(const char *, int loc_client);
+
extern struct Client *find_chasing(struct Client *, const char *, int *);
extern struct Client *find_person(const char *);
extern struct Client *find_named_person(const char *);