diff options
Diffstat (limited to 'include/conf.h')
-rw-r--r-- | include/conf.h | 162 |
1 files changed, 79 insertions, 83 deletions
diff --git a/include/conf.h b/include/conf.h index 16555f5..5a8c28b 100644 --- a/include/conf.h +++ b/include/conf.h @@ -34,14 +34,78 @@ #define CONF_NOREASON "<No reason supplied>" -struct conf_parser_context -{ - unsigned int boot; - unsigned int pass; - FILE *conf_file; -}; +#define IsConfOperator(x) ((x)->type == CONF_OPER) +#define IsConfKill(x) ((x)->type == CONF_KLINE) +#define IsConfClient(x) ((x)->type == CONF_CLIENT) +#define IsConfGline(x) ((x)->type == CONF_GLINE) + +/* MaskItem->flags */ +#define CONF_FLAGS_DO_IDENTD 0x00000001 +#define CONF_FLAGS_LIMIT_IP 0x00000002 +#define CONF_FLAGS_NO_TILDE 0x00000004 +#define CONF_FLAGS_NEED_IDENTD 0x00000008 +#define CONF_FLAGS_NOMATCH_IP 0x00000010 +#define CONF_FLAGS_EXEMPTKLINE 0x00000020 +#define CONF_FLAGS_NOLIMIT 0x00000040 +#define CONF_FLAGS_SPOOF_IP 0x00000080 +#define CONF_FLAGS_SPOOF_NOTICE 0x00000100 +#define CONF_FLAGS_REDIR 0x00000200 +#define CONF_FLAGS_EXEMPTGLINE 0x00000400 +#define CONF_FLAGS_CAN_FLOOD 0x00000800 +#define CONF_FLAGS_NEED_PASSWORD 0x00001000 +#define CONF_FLAGS_ALLOW_AUTO_CONN 0x00002000 +#define CONF_FLAGS_ENCRYPTED 0x00004000 +#define CONF_FLAGS_IN_DATABASE 0x00008000 +#define CONF_FLAGS_EXEMPTRESV 0x00010000 +#define CONF_FLAGS_SSL 0x00020000 +#define CONF_FLAGS_WEBIRC 0x00040000 + +/* Macros for struct MaskItem */ +#define IsConfWebIRC(x) ((x)->flags & CONF_FLAGS_WEBIRC) +#define IsLimitIp(x) ((x)->flags & CONF_FLAGS_LIMIT_IP) +#define IsNoTilde(x) ((x)->flags & CONF_FLAGS_NO_TILDE) +#define IsConfCanFlood(x) ((x)->flags & CONF_FLAGS_CAN_FLOOD) +#define IsNeedPassword(x) ((x)->flags & CONF_FLAGS_NEED_PASSWORD) +#define IsNeedIdentd(x) ((x)->flags & CONF_FLAGS_NEED_IDENTD) +#define IsNoMatchIp(x) ((x)->flags & CONF_FLAGS_NOMATCH_IP) +#define IsConfExemptKline(x) ((x)->flags & CONF_FLAGS_EXEMPTKLINE) +#define IsConfExemptLimits(x) ((x)->flags & CONF_FLAGS_NOLIMIT) +#define IsConfExemptGline(x) ((x)->flags & CONF_FLAGS_EXEMPTGLINE) +#define IsConfExemptResv(x) ((x)->flags & CONF_FLAGS_EXEMPTRESV) +#define IsConfDoIdentd(x) ((x)->flags & CONF_FLAGS_DO_IDENTD) +#define IsConfDoSpoofIp(x) ((x)->flags & CONF_FLAGS_SPOOF_IP) +#define IsConfSpoofNotice(x) ((x)->flags & CONF_FLAGS_SPOOF_NOTICE) +#define IsConfEncrypted(x) ((x)->flags & CONF_FLAGS_ENCRYPTED) +#define SetConfEncrypted(x) ((x)->flags |= CONF_FLAGS_ENCRYPTED) +#define ClearConfEncrypted(x) ((x)->flags &= ~CONF_FLAGS_ENCRYPTED) +#define IsConfAllowAutoConn(x) ((x)->flags & CONF_FLAGS_ALLOW_AUTO_CONN) +#define SetConfAllowAutoConn(x) ((x)->flags |= CONF_FLAGS_ALLOW_AUTO_CONN) +#define ClearConfAllowAutoConn(x) ((x)->flags &= ~CONF_FLAGS_ALLOW_AUTO_CONN) +#define IsConfRedir(x) ((x)->flags & CONF_FLAGS_REDIR) +#define IsConfSSL(x) ((x)->flags & CONF_FLAGS_SSL) +#define SetConfSSL(x) ((x)->flags |= CONF_FLAGS_SSL) +#define ClearConfSSL(x) ((x)->flags &= ~CONF_FLAGS_SSL) +#define IsConfDatabase(x) ((x)->flags & CONF_FLAGS_IN_DATABASE) +#define SetConfDatabase(x) ((x)->flags |= CONF_FLAGS_IN_DATABASE) + + +/* shared/cluster server entry types + * These defines are used for both shared and cluster. + */ +#define SHARED_KLINE 0x0001 +#define SHARED_UNKLINE 0x0002 +#define SHARED_XLINE 0x0004 +#define SHARED_UNXLINE 0x0008 +#define SHARED_RESV 0x0010 +#define SHARED_UNRESV 0x0020 +#define SHARED_LOCOPS 0x0040 +#define SHARED_DLINE 0x0080 +#define SHARED_UNDLINE 0x0100 +#define SHARED_ALL (SHARED_KLINE | SHARED_UNKLINE |\ + SHARED_XLINE | SHARED_UNXLINE |\ + SHARED_RESV | SHARED_UNRESV |\ + SHARED_LOCOPS | SHARED_DLINE | SHARED_UNDLINE) -extern struct conf_parser_context conf_parser_ctx; enum maskitem_type { @@ -65,6 +129,13 @@ enum maskitem_type CONF_CLASS = 1 << 17 /* XXX Same here; just for /stats Y|y */ }; +struct conf_parser_context +{ + unsigned int boot; + unsigned int pass; + FILE *conf_file; +}; + struct split_nuh_item { dlink_node node; @@ -121,79 +192,6 @@ struct CidrItem unsigned int number_on_this_cidr; }; - -#define IsConfOperator(x) ((x)->type == CONF_OPER) -#define IsConfKill(x) ((x)->type == CONF_KLINE) -#define IsConfClient(x) ((x)->type == CONF_CLIENT) -#define IsConfGline(x) ((x)->type == CONF_GLINE) - -/* MaskItem->flags */ -#define CONF_FLAGS_DO_IDENTD 0x00000001 -#define CONF_FLAGS_LIMIT_IP 0x00000002 -#define CONF_FLAGS_NO_TILDE 0x00000004 -#define CONF_FLAGS_NEED_IDENTD 0x00000008 -#define CONF_FLAGS_NOMATCH_IP 0x00000010 -#define CONF_FLAGS_EXEMPTKLINE 0x00000020 -#define CONF_FLAGS_NOLIMIT 0x00000040 -#define CONF_FLAGS_SPOOF_IP 0x00000080 -#define CONF_FLAGS_SPOOF_NOTICE 0x00000100 -#define CONF_FLAGS_REDIR 0x00000200 -#define CONF_FLAGS_EXEMPTGLINE 0x00000400 -#define CONF_FLAGS_CAN_FLOOD 0x00000800 -#define CONF_FLAGS_NEED_PASSWORD 0x00001000 -#define CONF_FLAGS_ALLOW_AUTO_CONN 0x00002000 -#define CONF_FLAGS_ENCRYPTED 0x00004000 -#define CONF_FLAGS_IN_DATABASE 0x00008000 -#define CONF_FLAGS_EXEMPTRESV 0x00010000 -#define CONF_FLAGS_SSL 0x00020000 -#define CONF_FLAGS_WEBIRC 0x00040000 - -/* Macros for struct MaskItem */ -#define IsConfWebIRC(x) ((x)->flags & CONF_FLAGS_WEBIRC) -#define IsLimitIp(x) ((x)->flags & CONF_FLAGS_LIMIT_IP) -#define IsNoTilde(x) ((x)->flags & CONF_FLAGS_NO_TILDE) -#define IsConfCanFlood(x) ((x)->flags & CONF_FLAGS_CAN_FLOOD) -#define IsNeedPassword(x) ((x)->flags & CONF_FLAGS_NEED_PASSWORD) -#define IsNeedIdentd(x) ((x)->flags & CONF_FLAGS_NEED_IDENTD) -#define IsNoMatchIp(x) ((x)->flags & CONF_FLAGS_NOMATCH_IP) -#define IsConfExemptKline(x) ((x)->flags & CONF_FLAGS_EXEMPTKLINE) -#define IsConfExemptLimits(x) ((x)->flags & CONF_FLAGS_NOLIMIT) -#define IsConfExemptGline(x) ((x)->flags & CONF_FLAGS_EXEMPTGLINE) -#define IsConfExemptResv(x) ((x)->flags & CONF_FLAGS_EXEMPTRESV) -#define IsConfDoIdentd(x) ((x)->flags & CONF_FLAGS_DO_IDENTD) -#define IsConfDoSpoofIp(x) ((x)->flags & CONF_FLAGS_SPOOF_IP) -#define IsConfSpoofNotice(x) ((x)->flags & CONF_FLAGS_SPOOF_NOTICE) -#define IsConfEncrypted(x) ((x)->flags & CONF_FLAGS_ENCRYPTED) -#define SetConfEncrypted(x) ((x)->flags |= CONF_FLAGS_ENCRYPTED) -#define ClearConfEncrypted(x) ((x)->flags &= ~CONF_FLAGS_ENCRYPTED) -#define IsConfAllowAutoConn(x) ((x)->flags & CONF_FLAGS_ALLOW_AUTO_CONN) -#define SetConfAllowAutoConn(x) ((x)->flags |= CONF_FLAGS_ALLOW_AUTO_CONN) -#define ClearConfAllowAutoConn(x) ((x)->flags &= ~CONF_FLAGS_ALLOW_AUTO_CONN) -#define IsConfRedir(x) ((x)->flags & CONF_FLAGS_REDIR) -#define IsConfSSL(x) ((x)->flags & CONF_FLAGS_SSL) -#define SetConfSSL(x) ((x)->flags |= CONF_FLAGS_SSL) -#define ClearConfSSL(x) ((x)->flags &= ~CONF_FLAGS_SSL) -#define IsConfDatabase(x) ((x)->flags & CONF_FLAGS_IN_DATABASE) -#define SetConfDatabase(x) ((x)->flags |= CONF_FLAGS_IN_DATABASE) - - -/* shared/cluster server entry types - * These defines are used for both shared and cluster. - */ -#define SHARED_KLINE 0x0001 -#define SHARED_UNKLINE 0x0002 -#define SHARED_XLINE 0x0004 -#define SHARED_UNXLINE 0x0008 -#define SHARED_RESV 0x0010 -#define SHARED_UNRESV 0x0020 -#define SHARED_LOCOPS 0x0040 -#define SHARED_DLINE 0x0080 -#define SHARED_UNDLINE 0x0100 -#define SHARED_ALL (SHARED_KLINE | SHARED_UNKLINE |\ - SHARED_XLINE | SHARED_UNXLINE |\ - SHARED_RESV | SHARED_UNRESV |\ - SHARED_LOCOPS | SHARED_DLINE | SHARED_UNDLINE) - struct config_file_entry { const char *dpath; /* DPATH if set from command line */ @@ -326,6 +324,7 @@ extern dlink_list xconf_items; extern dlink_list rxconf_items; extern dlink_list rkconf_items; extern dlink_list service_items; +extern struct conf_parser_context conf_parser_ctx; extern struct logging_entry ConfigLoggingEntry; extern struct config_file_entry ConfigFileEntry;/* defined in ircd.c*/ extern struct config_channel_entry ConfigChannel;/* defined in channel.c*/ @@ -335,9 +334,6 @@ extern struct admin_info AdminInfo; /* defined in ircd.c */ extern int valid_wild_card(struct Client *, int, int, ...); /* End GLOBAL section */ - - - extern void init_ip_hash_table(void); extern void count_ip_hash(unsigned int *, uint64_t *); extern void remove_one_ip(struct irc_ssaddr *); |