more diags
[citadel.git] / citadel / control.c
index ff4c0ea80224f4fc003738b5af5df956f49b41f4..1184be4a592673365ec68f2c3862ffe356026af7 100644 (file)
@@ -52,8 +52,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 +74,12 @@ void control_find_highest(struct ctdlroom *qrbuf, void *data)
        if (num_msgs > 0) {
                for (c=0; c<num_msgs; c++) {
                        if (msglist[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 +94,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 +146,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) {
+               syslog(LOG_INFO, "control: sanity check diagnostic mode is active - exiting now");
+               abort();
+       }
 }