diff options
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/os_news.c | 93 |
1 files changed, 0 insertions, 93 deletions
diff --git a/src/core/os_news.c b/src/core/os_news.c index e2cf52538..05006501d 100644 --- a/src/core/os_news.c +++ b/src/core/os_news.c @@ -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(); } }; |