rb_patricia_node_t *pnode; /* Our patricia node */
};
-#define CONF_ILLEGAL 0x80000000
-#define CONF_CLIENT 0x0002
-#define CONF_KILL 0x0040
+#define CONF_ILLEGAL 0x80000000
+#define CONF_CLIENT 0x0002
+#define CONF_KILL 0x0040
#define CONF_XLINE 0x0080
#define CONF_RESV_CHANNEL 0x0100
#define CONF_RESV_NICK 0x0200
#define CONF_RESV (CONF_RESV_CHANNEL | CONF_RESV_NICK)
-#define CONF_DLINE 0x20000
-#define CONF_EXEMPTDLINE 0x100000
+#define CONF_DLINE 0x020000
+#define CONF_EXEMPTDLINE 0x100000
#define IsIllegal(x) ((x)->status & CONF_ILLEGAL)
/* aConfItem->flags */
/* Generic flags... */
-#define CONF_FLAGS_TEMPORARY 0x00800000
+#define CONF_FLAGS_TEMPORARY 0x00800000
#define CONF_FLAGS_NEED_SSL 0x00000002
-#define CONF_FLAGS_MYOPER 0x00080000 /* need to rewrite info.oper on burst */
+#define CONF_FLAGS_MYOPER 0x00080000 /* need to rewrite info.oper on burst */
/* auth{} flags... */
-#define CONF_FLAGS_NO_TILDE 0x00000004
-#define CONF_FLAGS_NEED_IDENTD 0x00000008
-#define CONF_FLAGS_EXEMPTKLINE 0x00000040
-#define CONF_FLAGS_NOLIMIT 0x00000080
-#define CONF_FLAGS_SPOOF_IP 0x00000200
+#define CONF_FLAGS_NO_TILDE 0x00000004
+#define CONF_FLAGS_NEED_IDENTD 0x00000008
+#define CONF_FLAGS_EXEMPTKLINE 0x00000040
+#define CONF_FLAGS_NOLIMIT 0x00000080
+#define CONF_FLAGS_SPOOF_IP 0x00000200
#define CONF_FLAGS_SPOOF_NOTICE 0x00000400
-#define CONF_FLAGS_REDIR 0x00000800
+#define CONF_FLAGS_REDIR 0x00000800
#define CONF_FLAGS_EXEMPTRESV 0x00002000 /* exempt from resvs */
-#define CONF_FLAGS_EXEMPTFLOOD 0x00004000
+#define CONF_FLAGS_EXEMPTFLOOD 0x00004000
#define CONF_FLAGS_EXEMPTSPAMBOT 0x00008000
#define CONF_FLAGS_EXEMPTSHIDE 0x00010000
#define CONF_FLAGS_EXEMPTJUPE 0x00020000 /* exempt from resv generating warnings */
#define CONF_FLAGS_NEED_SASL 0x00040000
#define CONF_FLAGS_EXTEND_CHANS 0x00080000
-#define CONF_FLAGS_ENCRYPTED 0x00200000
+#define CONF_FLAGS_ENCRYPTED 0x00200000
#define CONF_FLAGS_EXEMPTDNSBL 0x04000000
#define CONF_FLAGS_EXEMPTPROXY 0x08000000
+#define CONF_FLAGS_ALLOW_SCTP 0x10000000
/* Macros for struct ConfItem */
#define IsConfExemptProxy(x) ((x)->flags & CONF_FLAGS_EXEMPTPROXY)
#define IsConfExtendChans(x) ((x)->flags & CONF_FLAGS_EXTEND_CHANS)
#define IsConfSSLNeeded(x) ((x)->flags & CONF_FLAGS_NEED_SSL)
+#define IsConfAllowSCTP(x) ((x)->flags & CONF_FLAGS_ALLOW_SCTP)
/* flag definitions for opers now in client.h */
int ts_warn_delta;
int dline_with_reason;
int kline_with_reason;
- int kline_delay;
+ int hide_tkdline_duration;
int warn_no_nline;
int nick_delay;
int non_redundant_klines;
int certfp_method;
int hide_opers_in_whois;
+ int hide_opers;
+
+ char *drain_reason;
};
struct config_channel_entry
char *description;
char *network_name;
int hub;
- struct sockaddr_in ip;
+ struct rb_sockaddr_storage bind4;
+ struct rb_sockaddr_storage bind6;
int default_max_clients;
-#ifdef RB_IPV6
- struct sockaddr_in6 ip6;
-#endif
- int specific_ipv4_vhost;
-#ifdef RB_IPV6
- int specific_ipv6_vhost;
-#endif
char *ssl_private_key;
char *ssl_ca_cert;
char *ssl_cert;
char *name;
char *target;
int flags; /* reserved for later use */
- int hits;
};
/* All variables are GLOBAL */
extern int attach_conf(struct Client *, struct ConfItem *);
extern int check_client(struct Client *client_p, struct Client *source_p, const char *);
+extern void deref_conf(struct ConfItem *);
extern int detach_conf(struct Client *);
extern struct ConfItem *find_tkline(const char *, const char *, struct sockaddr *);