X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Fcontrol.c;h=cabf6df1314a3cc439230345db9f0f2798f0b8c9;hb=fdd5004e632b955274b9fdeb9a63223cba7536a8;hp=1184be4a592673365ec68f2c3862ffe356026af7;hpb=8673d150a3439a3e976d8d41d73c9811a76762af;p=citadel.git diff --git a/citadel/control.c b/citadel/control.c index 1184be4a5..cabf6df13 100644 --- a/citadel/control.c +++ b/citadel/control.c @@ -1,7 +1,7 @@ /* * This module handles states which are global to the entire server. * - * Copyright (c) 1987-2018 by the citadel.org team + * Copyright (c) 1987-2019 by the citadel.org team * * This program is open source software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 3. @@ -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) { @@ -91,14 +96,19 @@ void control_find_highest(struct ctdlroom *qrbuf, void *data) /* * Callback to get highest user number. */ -void control_find_user(struct ctdluser *EachUser, void *out_data) -{ - if (EachUser->usernum > CtdlGetConfigLong("MMnextuser")) { +void control_find_user(char *username, void *out_data) { + struct ctdluser EachUser; + + if (CtdlGetUser(&EachUser, username) != 0) { + return; + } + + if (EachUser.usernum > CtdlGetConfigLong("MMnextuser")) { syslog(LOG_DEBUG, "control: fixing MMnextuser %ld > %ld , found in %s", - EachUser->usernum, CtdlGetConfigLong("MMnextuser"), EachUser->fullname + EachUser.usernum, CtdlGetConfigLong("MMnextuser"), EachUser.fullname ); if (!sanity_diag_mode) { - CtdlSetConfigLong("MMnextuser", EachUser->usernum); + CtdlSetConfigLong("MMnextuser", EachUser.usernum); } } } @@ -146,7 +156,7 @@ 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) { + if (sanity_diag_mode == 1) { syslog(LOG_INFO, "control: sanity check diagnostic mode is active - exiting now"); abort(); } @@ -225,10 +235,6 @@ int confbool(char *v) /* * Get or set global configuration options - * - * IF YOU ADD OR CHANGE FIELDS HERE, YOU *MUST* DOCUMENT YOUR CHANGES AT: - * http://www.citadel.org/doku.php/documentation:appproto:system_config - * */ void cmd_conf(char *argbuf) { @@ -306,15 +312,15 @@ void cmd_conf(char *argbuf) cprintf("%s\n", CtdlGetConfigStr("c_journal_dest")); cprintf("%s\n", CtdlGetConfigStr("c_default_cal_zone")); cprintf("%d\n", CtdlGetConfigInt("c_pftcpdict_port")); - cprintf("%d\n", CtdlGetConfigInt("c_managesieve_port")); + cprintf("0\n"); cprintf("%d\n", CtdlGetConfigInt("c_auth_mode")); cprintf("\n"); cprintf("\n"); 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")); @@ -512,7 +518,7 @@ void cmd_conf(char *argbuf) CtdlSetConfigInt("c_pftcpdict_port", atoi(buf)); break; case 51: - CtdlSetConfigInt("c_managesieve_port", atoi(buf)); + /* niu */ break; case 52: CtdlSetConfigInt("c_auth_mode", atoi(buf)); @@ -533,10 +539,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);