summaryrefslogtreecommitdiff
path: root/src/chanserv.c
diff options
context:
space:
mode:
authordane dane@31f1291d-b8d6-0310-a050-a5561fc1590b <dane dane@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864>2004-08-01 02:47:29 +0000
committerdane dane@31f1291d-b8d6-0310-a050-a5561fc1590b <dane dane@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864>2004-08-01 02:47:29 +0000
commit3422f4a798f9fdd3b0c1efaeffdbdb8a7e495fdb (patch)
tree11159138cfd8b6b74dd29751e4c1d5b426ba1353 /src/chanserv.c
parenta090c812cf88617ad825485791f7f38764db6ae8 (diff)
BUILD : 1.7.4 (295) BUGS : none NOTES : Rolling back previous commit.
git-svn-id: svn://svn.anope.org/anope/trunk@295 31f1291d-b8d6-0310-a050-a5561fc1590b git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@184 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'src/chanserv.c')
-rw-r--r--src/chanserv.c50
1 files changed, 47 insertions, 3 deletions
diff --git a/src/chanserv.c b/src/chanserv.c
index eabfd643b..06236c547 100644
--- a/src/chanserv.c
+++ b/src/chanserv.c
@@ -1288,6 +1288,35 @@ void save_cs_dbase(void)
/*************************************************************************/
+void save_cs_rdb_dbase(void)
+{
+#ifdef USE_RDB
+ int i;
+ ChannelInfo *ci;
+
+ if (!rdb_open())
+ return;
+
+ rdb_tag_table("anope_cs_info");
+ rdb_scrub_table("anope_ms_info", "serv='CHAN'");
+ rdb_clear_table("anope_cs_access");
+ rdb_clear_table("anope_cs_levels");
+ rdb_clear_table("anope_cs_akicks");
+ rdb_clear_table("anope_cs_badwords");
+
+ for (i = 0; i < 256; i++) {
+ for (ci = chanlists[i]; ci; ci = ci->next) {
+ rdb_save_cs_info(ci);
+ } /* for (chanlists[i]) */
+ } /* for (i) */
+
+ rdb_scrub_table("anope_cs_info", "active='0'");
+ rdb_close();
+#endif
+}
+
+/*************************************************************************/
+
/* Check the current modes on a channel; if they conflict with a mode lock,
* fix them. */
@@ -1922,6 +1951,12 @@ void cs_remove_nick(const NickCore * nc)
ci->founder = nc2;
ci->successor = NULL;
nc2->channelcount++;
+#ifdef USE_RDB
+ if (rdb_open()) {
+ rdb_cs_set_founder(ci->name, nc2->display);
+ rdb_close();
+ }
+#endif
}
} else {
alog("%s: Deleting channel %s owned by deleted nick %s", s_ChanServ, ci->name, nc->display);
@@ -1966,6 +2001,12 @@ void cs_remove_nick(const NickCore * nc)
}
}
}
+#ifdef USE_RDB
+ if (rdb_open()) {
+ rdb_cs_deluser(nc->display);
+ rdb_close();
+ }
+#endif
}
/*************************************************************************/
@@ -2094,6 +2135,12 @@ int delchan(ChannelInfo * ci)
}
ci->c->ci = NULL;
}
+#ifdef USE_RDB
+ if (rdb_open()) {
+ rdb_cs_delchan(ci);
+ rdb_close();
+ }
+#endif
if (ci->next)
ci->next->prev = ci->prev;
if (ci->prev)
@@ -3841,7 +3888,6 @@ static int access_del(User * u, ChanAccess * access, int *perm, int uacc)
(*perm)++;
return 0;
}
- rdb_cs_del_access(access);
access->nc = NULL;
access->in_use = 0;
return 1;
@@ -3977,7 +4023,6 @@ static int do_access(User * u)
return MOD_CONT;
}
access->level = level;
- rdb_cs_add_access(ci, access);
alog("%s: %s!%s@%s (level %d) set access level %d to %s (group %s) on channel %s", s_ChanServ, u->nick, u->username, GetHost(u), ulev, access->level, na->nick, nc->display, ci->name);
notice_lang(s_ChanServ, u, CHAN_ACCESS_LEVEL_CHANGED,
access->nc->display, chan, level);
@@ -4007,7 +4052,6 @@ static int do_access(User * u)
access->in_use = 1;
access->level = level;
access->last_seen = 0;
- rdb_cs_add_access(ci, access);
alog("%s: %s!%s@%s (level %d) set access level %d to %s (group %s) on channel %s", s_ChanServ, u->nick, u->username, GetHost(u), ulev, access->level, na->nick, nc->display, ci->name);
notice_lang(s_ChanServ, u, CHAN_ACCESS_ADDED, nc->display,