summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authormichael <michael@82007160-df01-0410-b94d-b575c5fd34c7>2012-11-01 13:16:37 +0000
committermichael <michael@82007160-df01-0410-b94d-b575c5fd34c7>2012-11-01 13:16:37 +0000
commit206aa6907524c1f834ba23160a033fa6a8e2bb0b (patch)
treeb28e4659a4697bf6ff133f06f6863fbdb20a9a2d /include
parent66b1fc152776ef824c291307dd7be93c0e2a9ad6 (diff)
- klines, dlines, xlines, glines and resv now make use of the new database;
also, temporary *lines are now stored, so they're not lost after restarting the ircd. This also applies to G-lines. git-svn-id: svn://svn.ircd-hybrid.org/svnroot/ircd-hybrid/trunk@1622 82007160-df01-0410-b94d-b575c5fd34c7
Diffstat (limited to 'include')
-rw-r--r--include/conf.h11
-rw-r--r--include/conf_db.h15
-rw-r--r--include/defaults.h10
-rw-r--r--include/resv.h2
4 files changed, 28 insertions, 10 deletions
diff --git a/include/conf.h b/include/conf.h
index 4cb80e7..b6f2a6f 100644
--- a/include/conf.h
+++ b/include/conf.h
@@ -108,6 +108,7 @@ struct MatchItem
int ref_count; /* How many times is this matchitem in use */
int illegal; /* Should it be deleted when possible? */
time_t hold; /* Hold action until this time (calendar time) */
+ time_t setat;
};
struct AccessItem
@@ -128,9 +129,9 @@ struct AccessItem
char * passwd;
char * spasswd; /* Password to send. */
char * reason;
- char * oper_reason;
char * user; /* user part of user@host */
time_t hold; /* Hold action until this time (calendar time) */
+ time_t setat;
struct ConfItem *class_ptr; /* Class of connection */
int aftype;
#ifdef HAVE_LIBCRYPTO
@@ -229,6 +230,7 @@ struct CidrItem
#define CONF_FLAGS_TEMPORARY 0x00008000
#define CONF_FLAGS_EXEMPTRESV 0x00010000
#define CONF_FLAGS_SSL 0x00020000
+#define CONF_FLAGS_MAINCONF 0x00040000
/* Macros for struct AccessItem */
#define IsLimitIp(x) ((x)->flags & CONF_FLAGS_LIMIT_IP)
@@ -256,6 +258,9 @@ struct CidrItem
#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 IsConfMain(x) ((x)->flags & CONF_FLAGS_MAINCONF)
+#define SetConfMain(x) ((x)->flags |= CONF_FLAGS_MAINCONF)
+#define ClearConfMain(x) ((x)->flags &= ~CONF_FLAGS_MAINCONF)
/* shared/cluster server entry types
* These defines are used for both shared and cluster.
@@ -404,6 +409,7 @@ extern dlink_list class_items;
extern dlink_list server_items;
extern dlink_list cluster_items;
extern dlink_list hub_items;
+extern dlink_list xconf_items;
extern dlink_list rxconf_items;
extern dlink_list rkconf_items;
extern dlink_list leaf_items;
@@ -456,13 +462,10 @@ extern int remove_conf_line(ConfType, struct Client *, const char *,
const char *);
extern void add_temp_line(struct ConfItem *);
extern void cleanup_tklines(void *);
-extern const char *get_conf_name(ConfType);
extern int rehash(int);
extern int conf_add_server(struct ConfItem *, const char *);
extern void conf_add_class_to_conf(struct ConfItem *, const char *);
-/* XXX consider moving these into csvlib.h */
-extern void parse_csv_file(FILE *, ConfType);
extern int find_and_delete_temporary(const char *, const char *, int);
extern const char *get_oper_name(const struct Client *);
diff --git a/include/conf_db.h b/include/conf_db.h
index 9f0a731..c5dd1b2 100644
--- a/include/conf_db.h
+++ b/include/conf_db.h
@@ -64,6 +64,17 @@ extern int write_ptr(const void *, struct dbFILE *);
extern int read_string(char **, struct dbFILE *);
extern int write_string(const char *, struct dbFILE *);
+extern void load_kline_database(void);
+extern void save_kline_database(void);
+extern void load_dline_database(void);
+extern void save_dline_database(void);
+extern void load_gline_database(void);
+extern void save_gline_database(void);
+extern void load_xline_database(void);
+extern void save_xline_database(void);
+extern void load_resv_database(void);
+extern void save_resv_database(void);
+
#define read_buffer(buf,f) (read_db((f),(buf),sizeof(buf)) == sizeof(buf))
#define write_buffer(buf,f) (write_db((f),(buf),sizeof(buf)) == sizeof(buf))
@@ -71,4 +82,8 @@ extern int write_string(const char *, struct dbFILE *);
#define write_buflen(buf,len,f) (write_db((f),(buf),(len)) == (len))
#define read_variable(var,f) (read_db((f),&(var),sizeof(var)) == sizeof(var))
#define write_variable(var,f) (write_db((f),&(var),sizeof(var)) == sizeof(var))
+
+#define KLINE_DB_VERSION 1
+
+
#endif
diff --git a/include/defaults.h b/include/defaults.h
index 038bc87..09c325a 100644
--- a/include/defaults.h
+++ b/include/defaults.h
@@ -62,11 +62,11 @@
/* files */
#define SPATH SBINPATH "/ircd" /* ircd executable */
#define CPATH ETCPATH "/ircd.conf" /* ircd.conf file */
-#define KPATH ETCPATH "/kline.conf" /* kline file */
-#define CRESVPATH ETCPATH "/cresv.conf" /* channel resvs file */
-#define NRESVPATH ETCPATH "/nresv.conf" /* nick resvs file */
-#define DLPATH ETCPATH "/dline.conf" /* dline file */
-#define XPATH ETCPATH "/xline.conf" /* xline file */
+#define KPATH ETCPATH "/kline.db" /* kline file */
+#define RESVPATH ETCPATH "/resv.db" /* resv file */
+#define DLPATH ETCPATH "/dline.db" /* dline file */
+#define XPATH ETCPATH "/xline.db" /* xline file */
+#define GPATH ETCPATH "/gline.db" /* gline file */
#define MPATH ETCPATH "/ircd.motd" /* MOTD file */
#define LPATH LOGPATH "/ircd.log" /* ircd logfile */
#define PPATH LOCALSTATEDIR "/ircd.pid" /* pid file */
diff --git a/include/resv.h b/include/resv.h
index 87bbe85..d40c2ea 100644
--- a/include/resv.h
+++ b/include/resv.h
@@ -30,7 +30,7 @@ struct ResvChannel
dlink_node node;
struct ResvChannel *hnext;
time_t hold; /* Hold action until this time (calendar time) */
- /* +1 for \0 */
+ time_t setat;
char name[CHANNELLEN + 1];
char *reason;
int conf; /* 1 if set from ircd.conf, 0 if from elsewhere */