summaryrefslogtreecommitdiff
path: root/src/nickserv.c
diff options
context:
space:
mode:
authorgeniusdex geniusdex@31f1291d-b8d6-0310-a050-a5561fc1590b <geniusdex geniusdex@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864>2006-12-24 17:51:32 +0000
committergeniusdex geniusdex@31f1291d-b8d6-0310-a050-a5561fc1590b <geniusdex geniusdex@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864>2006-12-24 17:51:32 +0000
commit4e409e31cb648962372b4b2b7315ab4e4f5478de (patch)
treeee535e4c04e4a18bc1db163a129830232f10e052 /src/nickserv.c
parent6e7add309dd9d985666e1107bd5c840faa881137 (diff)
BUILD : 1.7.17 (1210) BUGS : 645 646 647 NOTES : Fixed anoperc restart, nickchanges on TS6, typo in CHAN_REGISTER_NONE_CHANNEL; added error messages when RDB functions fail (thx heinz)
git-svn-id: svn://svn.anope.org/anope/trunk@1210 31f1291d-b8d6-0310-a050-a5561fc1590b git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@929 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'src/nickserv.c')
-rw-r--r--src/nickserv.c95
1 files changed, 69 insertions, 26 deletions
diff --git a/src/nickserv.c b/src/nickserv.c
index 7193fc9e9..88e686bbd 100644
--- a/src/nickserv.c
+++ b/src/nickserv.c
@@ -844,29 +844,57 @@ void save_ns_rdb_dbase(void)
if (!rdb_open())
return;
- rdb_tag_table("anope_ns_core");
- rdb_tag_table("anope_ns_alias");
- rdb_tag_table("anope_ns_access");
- rdb_tag_table_where("anope_ms_info", "serv='NICK'");
+ if (rdb_tag_table("anope_ns_core") == 0) {
+ alog("Unable to tag 'anope_ns_core' - NickServ RDB save failed.");
+ return;
+ }
+ if (rdb_tag_table("anope_ns_alias") == 0) {
+ alog("Unable to tag 'anope_ns_alias' - NickServ RDB save failed.");
+ return;
+ }
+ if (rdb_tag_table("anope_ns_access") == 0) {
+ alog("Unable to tag 'anope_ns_access' - NickServ RDB save failed.");
+ return;
+ }
+ if (rdb_tag_table_where("anope_ms_info", "serv='NICK'") == 0) {
+ alog("Unable to tag 'anope_ms_info' - NickServ RDB save failed.");
+ return;
+ }
for (i = 0; i < 1024; i++) {
for (nc = nclists[i]; nc; nc = nc->next) {
- rdb_save_ns_core(nc);
-
+ if (rdb_save_ns_core(nc) == 0) {
+ alog("Unable to save NickCore for '%s' - NickServ RDB save failed.", nc->display);
+ return;
+ }
} /* for (nc) */
} /* for (i) */
for (i = 0; i < 1024; i++) {
for (na = nalists[i]; na; na = na->next) {
- rdb_save_ns_alias(na);
-
+ if (rdb_save_ns_alias(na) == 0) {
+ alog("Unable to save NickAlias for '%s' - NickServ RDB save failed.", na->nick);
+ return;
+ }
} /* for (na) */
} /* for (i) */
- rdb_clean_table("anope_ns_core");
- rdb_clean_table("anope_ns_alias");
- rdb_clean_table("anope_ns_access");
- rdb_clean_table_where("anope_ms_info", "serv='NICK'");
+ if (rdb_clean_table("anope_ns_core") == 0) {
+ alog("Unable to clean table 'anope_ns_core' - NickServ RDB save failed.");
+ return;
+ }
+ if (rdb_clean_table("anope_ns_alias") == 0) {
+ alog("Unable to clean table 'anope_ns_alias' - NickServ RDB save failed.");
+ return;
+ }
+ if (rdb_clean_table("anope_ns_access") == 0) {
+ alog("Unable to clean table 'anope_ns_access' - NickServ RDB save failed.");
+ return;
+ }
+ if (rdb_clean_table_where("anope_ms_info", "serv='NICK'") == 0) {
+ alog("Unable to clean table 'anope_ms_info' - NickServ RDB save failed.");
+ return;
+ }
rdb_close();
#endif
@@ -881,19 +909,25 @@ void save_ns_req_rdb_dbase(void)
if (!rdb_open())
return;
- rdb_tag_table("anope_ns_request");
+ if (rdb_tag_table("anope_ns_request") == 0) {
+ alog("Unable to tag table 'anope_ns_request' - NickServ Request RDB save failed.");
+ return;
+ }
for (i = 0; i < 1024; i++) {
for (nr = nrlists[i]; nr; nr = nr->next) {
- if (!rdb_save_ns_req(nr)) {
+ if (rdb_save_ns_req(nr) == 0) {
/* Something went wrong - abort saving */
- alog("Unable to save NickRequest (nick '%s')", nr->nick);
+ alog("Unable to save NickRequest (nick '%s') - NickServ Request RDB save failed.", nr->nick);
return;
}
}
}
- rdb_clean_table("anope_ns_request");
+ if (rdb_clean_table("anope_ns_request") == 0) {
+ alog("Unable to clean table 'anope_ns_request' - NickServ Request RDB save failed.");
+ return;
+ }
rdb_close();
#endif
@@ -1346,7 +1380,9 @@ void change_core_display(NickCore * nc, char *newdisplay)
* on the next /OS UPDATE might need it on /NS DROP too...
*/
if (rdb_open()) {
- rdb_ns_set_display(newdisplay, nc->display);
+ if (rdb_ns_set_display(newdisplay, nc->display) == 0) {
+ alog("Unable to update display for %s - Nick Display RDB update failed.", nc->display);
+ }
rdb_close();
}
#endif
@@ -1399,14 +1435,20 @@ static int delcore(NickCore * nc)
if (rdb_open()) {
q_display = rdb_quote(nc->display);
snprintf(clause, sizeof(clause), "display='%s'", q_display);
- rdb_scrub_table("anope_ns_access", clause);
- rdb_scrub_table("anope_ns_core", clause);
- rdb_scrub_table("anope_cs_access", clause);
- /* I'm unsure how to clean up the OS ADMIN/OPER list on the db */
- /* I wish the "display" primary key would be the same on all tables */
- snprintf(clause, sizeof(clause), "receiver='%s' AND serv='NICK'",
- q_display);
- rdb_scrub_table("anope_ms_info", clause);
+ if (rdb_scrub_table("anope_ns_access", clause) == 0)
+ alog("Unable to scrub table 'anope_ns_access' - RDB update failed.");
+ else if (rdb_scrub_table("anope_ns_core", clause) == 0)
+ alog("Unable to scrub table 'anope_ns_core' - RDB update failed.");
+ else if (rdb_scrub_table("anope_cs_access", clause) == 0)
+ alog("Unable to scrub table 'anope_cs_access' - RDB update failed.");
+ else {
+ /* I'm unsure how to clean up the OS ADMIN/OPER list on the db */
+ /* I wish the "display" primary key would be the same on all tables */
+ snprintf(clause, sizeof(clause),
+ "receiver='%s' AND serv='NICK'", q_display);
+ if (rdb_scrub_table("anope_ms_info", clause) == 0)
+ alog("Unable to scrub table 'anope_ms_info' - RDB update failed.");
+ }
rdb_close();
free(q_display);
}
@@ -1528,7 +1570,8 @@ int delnick(NickAlias * na)
if (rdb_open()) {
q_nick = rdb_quote(na->nick);
snprintf(clause, sizeof(clause), "nick='%s'", q_nick);
- rdb_scrub_table("anope_ns_alias", clause);
+ if (rdb_scrub_table("anope_ns_alias", clause) == 0)
+ alog("Unable to scrub table 'anope_ns_alias' - RDB update failed");
rdb_close();
free(q_nick);
}