#include "snomask.h"
#include "match.h"
#include "ircd.h"
+#include "privilege.h"
/* other structs */
struct Blacklist;
local_user_t *localClient;
pre_client_t *preClient;
+
+ time_t large_ctcp_sent; /* ctcp to large group sent, relax flood checks */
};
struct LocalUser
applicable to this client */
struct _ssl_ctl *ssl_ctl; /* which ssl daemon we're associate with */
+ struct _ssl_ctl *z_ctl; /* second ctl for ssl+zlib */
uint32_t localflags;
struct ZipStats *zipstats; /* zipstats */
uint16_t cork_count; /* used for corking/uncorking connections */
struct ev_entry *event; /* used for associated events */
+
+ struct PrivilegeSet *privset; /* privset... */
};
struct PreClient
rb_dlink_list dnsbl_queries; /* list of struct BlacklistClient * */
struct Blacklist *dnsbl_listed; /* first dnsbl where it's listed */
+
+ struct rb_sockaddr_storage lip; /* address of our side of the connection */
};
struct ListClient
*/
};
-struct exit_client_hook
-{
- struct Client *client_p;
- char exit_message[TOPICLEN];
-};
-
/*
* status macros.
*/
#define FLAGS_GOTID 0x0080 /* successful ident lookup achieved */
#define FLAGS_FLOODDONE 0x0100 /* flood grace period over / reported */
#define FLAGS_NORMALEX 0x0400 /* Client exited normally */
-#define FLAGS_SENDQEX 0x0800 /* Sendq exceeded */
-#define FLAGS_SERVLINK 0x10000 /* servlink has servlink process */
-#define FLAGS_MARK 0x20000 /* marked client */
-#define FLAGS_HIDDEN 0x40000 /* hidden server */
-#define FLAGS_EOB 0x80000 /* EOB */
-#define FLAGS_MYCONNECT 0x100000 /* MyConnect */
-#define FLAGS_IOERROR 0x200000 /* IO error */
-#define FLAGS_SERVICE 0x400000 /* network service */
-#define FLAGS_TGCHANGE 0x800000 /* we're allowed to clear something */
-#define FLAGS_DYNSPOOF 0x1000000 /* dynamic spoof, only opers see ip */
-#define FLAGS_EXUNKNOWN 0x2000000 /* too many unknowns exit.. */
+#define FLAGS_MARK 0x10000 /* marked client */
+#define FLAGS_HIDDEN 0x20000 /* hidden server */
+#define FLAGS_EOB 0x40000 /* EOB */
+#define FLAGS_MYCONNECT 0x80000 /* MyConnect */
+#define FLAGS_IOERROR 0x100000 /* IO error */
+#define FLAGS_SERVICE 0x200000 /* network service */
+#define FLAGS_TGCHANGE 0x400000 /* we're allowed to clear something */
+#define FLAGS_DYNSPOOF 0x800000 /* dynamic spoof, only opers see ip */
/* flags for local clients, this needs stuff moved from above to here at some point */
#define LFLAGS_SSL 0x00000001
#define IsDynSpoof(x) ((x)->flags & FLAGS_DYNSPOOF)
#define SetDynSpoof(x) ((x)->flags |= FLAGS_DYNSPOOF)
#define ClearDynSpoof(x) ((x)->flags &= ~FLAGS_DYNSPOOF)
-#define IsExUnknown(x) ((x)->flags & FLAGS_EXUNKNOWN)
-#define SetExUnknown(x) ((x)->flags |= FLAGS_EXUNKNOWN)
/* local flags */
#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);
+extern void dead_link(struct Client *client_p, int sendqex);
extern int show_ip(struct Client *source_p, struct Client *target_p);
extern int show_ip_conf(struct ConfItem *aconf, struct Client *target_p);