X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Fcontrol.c;h=6f3a1d7ec447bd53b2a92c933db4e79bb9b65c2c;hb=e329db30593524cc2d8851a4500bac41f2340354;hp=ff4c0ea80224f4fc003738b5af5df956f49b41f4;hpb=6f9208392ee576a322edbc389c32d27ceaa3c04f;p=citadel.git diff --git a/citadel/control.c b/citadel/control.c index ff4c0ea80..6f3a1d7ec 100644 --- a/citadel/control.c +++ b/citadel/control.c @@ -42,6 +42,11 @@ struct legacy_ctrl_format { /* * Callback to get highest room number when rebuilding message base metadata + * + * sanity_diag_mode (can be set by -s flag at startup) may be: + * 0 = attempt to fix inconsistencies + * 1 = show inconsistencies but don't repair them, exit after complete + * 2 = show inconsistencies but don't repair them, continue execution */ void control_find_highest(struct ctdlroom *qrbuf, void *data) { @@ -52,8 +57,12 @@ void control_find_highest(struct ctdlroom *qrbuf, void *data) int c; if (qrbuf->QRnumber > CtdlGetConfigLong("MMnextroom")) { - syslog(LOG_DEBUG, "control: fixing MMnextroom %ld > %ld", qrbuf->QRnumber, CtdlGetConfigLong("MMnextroom")); - CtdlSetConfigLong("MMnextroom", qrbuf->QRnumber); + syslog(LOG_DEBUG, "control: fixing MMnextroom %ld > %ld , found in %s", + qrbuf->QRnumber, CtdlGetConfigLong("MMnextroom"), qrbuf->QRname + ); + if (!sanity_diag_mode) { + CtdlSetConfigLong("MMnextroom", qrbuf->QRnumber); + } } CtdlGetRoom(&room, qrbuf->QRname); @@ -70,8 +79,12 @@ void control_find_highest(struct ctdlroom *qrbuf, void *data) if (num_msgs > 0) { for (c=0; c CtdlGetConfigLong("MMhighest")) { - syslog(LOG_DEBUG, "control: fixing MMhighest %ld > %ld", msglist[c], CtdlGetConfigLong("MMhighest")); - CtdlSetConfigLong("MMhighest", msglist[c]); + syslog(LOG_DEBUG, "control: fixing MMhighest %ld > %ld , found in %s", + msglist[c], CtdlGetConfigLong("MMhighest"), qrbuf->QRname + ); + if (!sanity_diag_mode) { + CtdlSetConfigLong("MMhighest", msglist[c]); + } } } } @@ -86,8 +99,12 @@ void control_find_highest(struct ctdlroom *qrbuf, void *data) void control_find_user(struct ctdluser *EachUser, void *out_data) { if (EachUser->usernum > CtdlGetConfigLong("MMnextuser")) { - syslog(LOG_DEBUG, "control: fixing MMnextuser %ld > %ld", EachUser->usernum, CtdlGetConfigLong("MMnextuser")); - CtdlSetConfigLong("MMnextuser", EachUser->usernum); + syslog(LOG_DEBUG, "control: fixing MMnextuser %ld > %ld , found in %s", + EachUser->usernum, CtdlGetConfigLong("MMnextuser"), EachUser->fullname + ); + if (!sanity_diag_mode) { + CtdlSetConfigLong("MMnextuser", EachUser->usernum); + } } } @@ -134,6 +151,10 @@ void check_control(void) syslog(LOG_INFO, "control: sanity checking the recorded highest user number"); ForEachUser(control_find_user, NULL); syslog(LOG_INFO, "control: sanity checks complete"); + if (sanity_diag_mode == 1) { + syslog(LOG_INFO, "control: sanity check diagnostic mode is active - exiting now"); + abort(); + } } @@ -297,8 +318,8 @@ void cmd_conf(char *argbuf) cprintf("\n"); cprintf("\n"); cprintf("%d\n", CtdlGetConfigInt("c_rbl_at_greeting")); - cprintf("%s\n", CtdlGetConfigStr("c_master_user")); - cprintf("%s\n", CtdlGetConfigStr("c_master_pass")); + cprintf("\n"); + cprintf("\n"); cprintf("%s\n", CtdlGetConfigStr("c_pager_program")); cprintf("%d\n", CtdlGetConfigInt("c_imap_keep_from")); cprintf("%d\n", CtdlGetConfigInt("c_xmpp_c2s_port")); @@ -517,10 +538,10 @@ void cmd_conf(char *argbuf) CtdlSetConfigInt("c_rbl_at_greeting", confbool(buf)); break; case 58: - CtdlSetConfigStr("c_master_user", buf); + /* niu */ break; case 59: - CtdlSetConfigStr("c_master_pass", buf); + /* niu */ break; case 60: CtdlSetConfigStr("c_pager_program", buf);