]> jfr.im git - irc/rqf/shadowircd.git/blobdiff - include/s_conf.h
SVN Id removal part two
[irc/rqf/shadowircd.git] / include / s_conf.h
index 79a8766fb8cdd80ee51a4d7fe3ee95f7a7ca7f72..65a971d4412105beedf7015a9c58c43f70ca8b51 100644 (file)
@@ -21,7 +21,6 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: s_conf.h 3550 2007-08-09 06:47:26Z nenolod $
  */
 
 #ifndef INCLUDED_s_conf_h
@@ -56,17 +55,24 @@ extern char conf_line_in[256];
 
 struct ConfItem
 {
-       struct ConfItem *next;  /* list node pointer */
        unsigned int status;    /* If CONF_ILLEGAL, delete when no clients */
        unsigned int flags;
        int clients;            /* Number of *LOCAL* clients using this */
-       char *name;             /* IRC name, nick, server name, or original u@h */
+       union
+       {
+               char *name;     /* IRC name, nick, server name, or original u@h */
+               const char *oper;
+       } info;
        char *host;             /* host part of user@host */
        char *passwd;           /* doubles as kline reason *ugh* */
        char *spasswd;          /* Password to send. */
+       char *autojoin;         /* channels for users to autojoin to on connect */
+       char *autojoin_opers; /* channels for opers to autojoin on oper-up */
        char *user;             /* user part of user@host */
        int port;
        time_t hold;            /* Hold action until this time (calendar time) */
+       time_t created;         /* Creation time (for klines etc) */
+       time_t lifetime;        /* Propagated lines: remember until this time */
        char *className;        /* Name of class */
        struct Class *c_class;  /* Class of connection */
        rb_patricia_node_t *pnode;      /* Our patricia node */
@@ -80,7 +86,6 @@ struct ConfItem
 #define CONF_RESV_NICK         0x0200
 #define CONF_RESV              (CONF_RESV_CHANNEL | CONF_RESV_NICK)
 
-#define CONF_GLINE             0x10000
 #define CONF_DLINE             0x20000
 #define CONF_EXEMPTDLINE      0x100000
 
@@ -89,7 +94,10 @@ struct ConfItem
 /* aConfItem->flags */
 
 /* Generic flags... */
-/* access flags... */
+#define CONF_FLAGS_TEMPORARY            0x00800000
+#define CONF_FLAGS_NEED_SSL            0x00000002
+#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
@@ -97,30 +105,24 @@ struct ConfItem
 #define CONF_FLAGS_SPOOF_IP             0x00000200
 #define CONF_FLAGS_SPOOF_NOTICE                0x00000400
 #define CONF_FLAGS_REDIR                0x00000800
-#define CONF_FLAGS_EXEMPTGLINE          0x00001000
 #define CONF_FLAGS_EXEMPTRESV          0x00002000      /* exempt from resvs */
 #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
-/* server flags */
-#define CONF_FLAGS_ALLOW_AUTO_CONN      0x00080000
-#define CONF_FLAGS_LAZY_LINK            0x00100000
 #define CONF_FLAGS_ENCRYPTED            0x00200000
-#define CONF_FLAGS_COMPRESSED           0x00400000
-#define CONF_FLAGS_TEMPORARY            0x00800000
-#define CONF_FLAGS_TB                  0x01000000
-#define CONF_FLAGS_VHOSTED             0x02000000
 #define CONF_FLAGS_EXEMPTDNSBL         0x04000000
 
 
 /* Macros for struct ConfItem */
+#define IsConfBan(x)           ((x)->status & (CONF_KILL|CONF_XLINE|CONF_DLINE|\
+                                               CONF_RESV_CHANNEL|CONF_RESV_NICK))
+
 #define IsNoTilde(x)            ((x)->flags & CONF_FLAGS_NO_TILDE)
 #define IsNeedIdentd(x)         ((x)->flags & CONF_FLAGS_NEED_IDENTD)
 #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 IsConfExemptFlood(x)    ((x)->flags & CONF_FLAGS_EXEMPTFLOOD)
 #define IsConfExemptSpambot(x) ((x)->flags & CONF_FLAGS_EXEMPTSPAMBOT)
 #define IsConfExemptShide(x)   ((x)->flags & CONF_FLAGS_EXEMPTSHIDE)
@@ -129,11 +131,9 @@ struct ConfItem
 #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 IsConfCompressed(x)     ((x)->flags & CONF_FLAGS_COMPRESSED)
-#define IsConfVhosted(x)       ((x)->flags & CONF_FLAGS_VHOSTED)
-#define IsConfTburst(x)                ((x)->flags & CONF_FLAGS_TB)
 #define IsNeedSasl(x)          ((x)->flags & CONF_FLAGS_NEED_SASL)
 #define IsConfExemptDNSBL(x)   ((x)->flags & CONF_FLAGS_EXEMPTDNSBL)
+#define IsConfSSLNeeded(x)     ((x)->flags & CONF_FLAGS_NEED_SSL)
 
 /* flag definitions for opers now in client.h */
 
@@ -141,16 +141,13 @@ struct config_file_entry
 {
        const char *dpath;      /* DPATH if set from command line */
        const char *configfile;
-       const char *klinefile;
-       const char *dlinefile;
-       const char *xlinefile;
-       const char *resvfile;
 
-       char *servlink_path;
        char *egdpool_path;
 
        char *default_operstring;
        char *default_adminstring;
+       char *default_operhost;
+       char *static_quit;
        char *servicestring;
        char *kline_reason;
 
@@ -163,7 +160,6 @@ struct config_file_entry
        char *fname_foperlog;
        char *fname_serverlog;
        char *fname_killlog;
-       char *fname_glinelog;
        char *fname_klinelog;
        char *fname_operspylog;
        char *fname_ioerrorlog;
@@ -173,6 +169,7 @@ struct config_file_entry
        int dots_in_ident;
        int failed_oper_notice;
        int anti_nick_flood;
+       int use_part_messages;
        int anti_spam_exit_message_time;
        int max_accept;
        int max_monitor;
@@ -200,10 +197,7 @@ struct config_file_entry
        int pace_wait_simple;
        int short_motd;
        int no_oper_flood;
-       int glines;
-       int gline_time;
-       int gline_min_cidr;
-       int gline_min_cidr6;
+       int true_no_oper_flood;
        int hide_server;
        int hide_spoof_ips;
        int hide_error_messages;
@@ -217,6 +211,7 @@ struct config_file_entry
        int min_nonwildcard_simple;
        int default_floodcount;
        int client_flood;
+       int default_ident_timeout;
        int use_egd;
        int ping_cookie;
        int tkline_expire_notices;
@@ -227,20 +222,29 @@ struct config_file_entry
        int reject_ban_time;
        int reject_after_count;
        int reject_duration;
+       int throttle_count;
+       int throttle_duration;
        int target_change;
        int collision_fnc;
        int default_umodes;
        int global_snotices;
        int operspy_dont_care_user_info;
-       int max_unknown_ip;
+       int use_propagated_bans;
+       int secret_channels_in_whois;
+       int expire_override_time;
 };
 
 struct config_channel_entry
 {
+       char * autochanmodes;
+       char * exemptchanops;
+       int use_halfop;
+       int use_admin;
        int use_except;
        int use_invex;
        int use_knock;
        int use_forward;
+       int use_local_channels;
        int knock_delay;
        int knock_delay_channel;
        int max_bans;
@@ -252,6 +256,18 @@ struct config_channel_entry
        int default_split_user_count;
        int burst_topicwho;
        int kick_on_split_riding;
+       int only_ascii_channels;
+       int cycle_host_change;
+       int host_in_topic;
+       int resv_forcepart;
+
+       int exempt_cmode_c;
+       int exempt_cmode_C;
+       int exempt_cmode_D;
+       int exempt_cmode_T;
+       int exempt_cmode_N;
+       int exempt_cmode_G;
+       int exempt_cmode_K;
 };
 
 struct config_server_hide
@@ -265,12 +281,15 @@ struct config_server_hide
 struct server_info
 {
        char *name;
-       char sid[3];
+       char sid[4];
        char *description;
        char *network_name;
        char *network_desc;
+       char *helpchan;
+       char *helpurl;
        int hub;
        struct sockaddr_in ip;
+       int default_max_clients;
 #ifdef RB_IPV6
        struct sockaddr_in6 ip6;
 #endif
@@ -278,8 +297,11 @@ struct server_info
 #ifdef RB_IPV6
        int specific_ipv6_vhost;
 #endif
-
-       int default_max_clients;
+       char *ssl_private_key;
+       char *ssl_ca_cert;
+       char *ssl_cert;
+       char *ssl_dh_params;
+       int ssld_count;
 };
 
 struct admin_info
@@ -307,7 +329,9 @@ extern struct server_info ServerInfo;       /* defined in ircd.c */
 extern struct admin_info AdminInfo;    /* defined in ircd.c */
 /* End GLOBAL section */
 
-rb_dlink_list service_list;
+extern rb_dlink_list service_list;
+
+extern rb_dlink_list prop_bans;
 
 typedef enum temp_list
 {
@@ -318,14 +342,18 @@ typedef enum temp_list
        LAST_TEMP_TYPE
 } temp_list;
 
-rb_dlink_list temp_klines[LAST_TEMP_TYPE];
-rb_dlink_list temp_dlines[LAST_TEMP_TYPE];
+extern rb_dlink_list temp_klines[LAST_TEMP_TYPE];
+extern rb_dlink_list temp_dlines[LAST_TEMP_TYPE];
 
 extern void init_s_conf(void);
 
 extern struct ConfItem *make_conf(void);
 extern void free_conf(struct ConfItem *);
 
+extern rb_dlink_node *find_prop_ban(unsigned int status, const char *user, const char *host);
+extern void deactivate_conf(struct ConfItem *, rb_dlink_node *);
+extern void replace_old_ban(struct ConfItem *);
+
 extern void read_conf_files(int cold);
 
 extern int attach_conf(struct Client *, struct ConfItem *);
@@ -337,6 +365,7 @@ extern struct ConfItem *find_tkline(const char *, const char *, struct sockaddr
 extern char *show_iline_prefix(struct Client *, struct ConfItem *, char *);
 extern void get_printable_conf(struct ConfItem *,
                               char **, char **, char **, char **, int *, char **);
+extern char *get_user_ban_reason(struct ConfItem *aconf);
 extern void get_printable_kline(struct Client *, struct ConfItem *,
                                char **, char **, char **, char **);
 
@@ -344,23 +373,12 @@ extern void yyerror(const char *);
 extern int conf_yy_fatal_error(const char *);
 extern int conf_fgets(char *, int, FILE *);
 
-typedef enum
-{
-       CONF_TYPE,
-       KLINE_TYPE,
-       DLINE_TYPE,
-       RESV_TYPE
-}
-KlineType;
-
-extern void write_confitem(KlineType, struct Client *, char *, char *,
-                          const char *, const char *, const char *, int);
+extern int valid_wild_card(const char *, const char *);
 extern void add_temp_kline(struct ConfItem *);
 extern void add_temp_dline(struct ConfItem *);
 extern void report_temp_klines(struct Client *);
 extern void show_temp_klines(struct Client *, rb_dlink_list *);
 
-extern const char *get_conf_name(KlineType);
 extern int rehash(int);
 extern void rehash_bans(int);
 
@@ -371,14 +389,6 @@ extern void conf_add_class(struct ConfItem *, int);
 extern void conf_add_d_conf(struct ConfItem *);
 extern void flush_expired_ips(void *);
 
-
-/* XXX consider moving these into kdparse.h */
-extern void parse_k_file(FILE * fb);
-extern void parse_d_file(FILE * fb);
-extern void parse_x_file(FILE * fb);
-extern void parse_resv_file(FILE *);
-extern char *getfield(char *newline);
-
 extern char *get_oper_name(struct Client *client_p);
 
 extern int yylex(void);