diff options
Diffstat (limited to 'src/hostserv.c')
-rw-r--r-- | src/hostserv.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/hostserv.c b/src/hostserv.c index d47ae32db..7c2945683 100644 --- a/src/hostserv.c +++ b/src/hostserv.c @@ -443,11 +443,25 @@ int listOut(User * u) /*************************************************************************/ void delHostCore(char *nick) { +#ifdef USE_RDB + static char clause[128]; +#endif HostCore *tmp; boolean found = false; tmp = findHostCore(head, nick, &found); if (found) { head = deleteHostCore(head, tmp); + +#ifdef USE_RDB + /* Reflect this change in the database right away. */ + if (rdb_open()) { + + snprintf(clause, sizeof(clause), "nick='%s'", nick); + rdb_scrub_table("anope_hs_core", clause); + rdb_close(); + } +#endif + } } @@ -609,6 +623,25 @@ void save_hs_dbase(void) #undef SAFE +void save_hs_rdb_dbase(void) +{ +#ifdef USE_RDB + HostCore *current; + + if (!rdb_open()) + return; + + rdb_clear_table("anope_hs_core"); + + current = head; + while (current != NULL) { + rdb_save_hs_core(current); + current = current->next; + } + rdb_close(); +#endif +} + /*************************************************************************/ /* End of Load/Save Functions */ /*************************************************************************/ |