1
0
mirror of https://github.com/anope/anope.git synced 2026-07-10 19:23:13 +02:00

Ripped out old databases

git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@2699 5417fbe8-f217-4b02-8779-1006273d7864
This commit is contained in:
Adam-
2009-12-14 00:56:58 +00:00
parent 710355fd2c
commit d4af97a7a7
12 changed files with 6 additions and 2128 deletions
-93
View File
@@ -14,7 +14,6 @@
/*************************************************************************/
#include "module.h"
#include "pseudo.h" // Remove once new dbs are added
/* List of messages for each news type. This simplifies message sending. */
@@ -77,93 +76,6 @@ struct newsmsgs msgarray[] = {
}
};
#define SAFE(x) do { \
if ((x) < 0) { \
if (!forceload) \
fatal("Read error on %s", Config.NewsDBName); \
break; \
} \
} while (0)
void load_news()
{
dbFILE *f;
int i;
uint16 n, type;
uint32 tmp32;
NewsItem *news;
char *text;
if (!(f = open_db(Config.s_OperServ, Config.NewsDBName, "r", NEWS_VERSION)))
return;
switch (i = get_file_version(f)) {
case 9:
case 8:
case 7:
SAFE(read_int16(&n, f));
if (!n) {
close_db(f);
return;
}
for (i = 0; i < n; i++) {
news = new NewsItem;
SAFE(read_int16(&type, f));
news->type = static_cast<NewsType>(type);
SAFE(read_int32(&news->num, f));
SAFE(read_string(&text, f));
news->Text = text;
delete [] text;
SAFE(read_buffer(news->who, f));
SAFE(read_int32(&tmp32, f));
news->time = tmp32;
News.push_back(news);
}
break;
default:
fatal("Unsupported version (%d) on %s", i, Config.NewsDBName);
} /* switch (ver) */
close_db(f);
}
#undef SAFE
#define SAFE(x) do { \
if ((x) < 0) { \
restore_db(f); \
log_perror("Write error on %s", Config.NewsDBName); \
if (time(NULL) - lastwarn > Config.WarningTimeout) { \
ircdproto->SendGlobops(NULL, "Write error on %s: %s", Config.NewsDBName, \
strerror(errno)); \
lastwarn = time(NULL); \
} \
return; \
} \
} while (0)
void save_news()
{
dbFILE *f;
static time_t lastwarn = 0;
if (!(f = open_db(Config.s_OperServ, Config.NewsDBName, "w", NEWS_VERSION)))
return;
SAFE(write_int16(News.size(), f));
for (unsigned i = 0; i < News.size(); i++) {
SAFE(write_int16(News[i]->type, f));
SAFE(write_int32(News[i]->num, f));
SAFE(write_string(News[i]->Text.c_str(), f));
SAFE(write_buffer(News[i]->who, f));
SAFE(write_int32(News[i]->time, f));
}
close_db(f);
}
#undef SAFE
static void DisplayNews(User *u, NewsType Type)
{
int msg;
@@ -495,7 +407,6 @@ class OSNews : public Module
~OSNews()
{
save_news();
}
void OnOperServHelp(User *u)
@@ -521,14 +432,10 @@ class OSNews : public Module
void OnSaveDatabase()
{
/* This needs to be destroyed when new dbs are added... */
save_news();
}
void OnPostLoadDatabases()
{
/* This needs to be destroyed when new dbs are added... */
load_news();
}
};