pprintf("%s\n", buf);
return;
}
- while (strlen(resp)) {
+ while (resp && strlen(resp)) {
extract_token(buf, resp, 0, '\n', sizeof buf);
remove_token(resp, 0, '\n');
if ((pos + strlen(buf) + 5) > screenwidth) {
void do_system_configuration(CtdlIPC *ipc)
{
-#define NUM_CONFIGS 46
+#define NUM_CONFIGS 52
char buf[SIZ];
char sc[NUM_CONFIGS][256];
strprompt("Node name", &sc[0][0], 15);
strprompt("Fully qualified domain name", &sc[1][0], 63);
strprompt("Human readable node name", &sc[2][0], 20);
- strprompt("Modem dialup number", &sc[3][0], 15);
+ strprompt("Telephone number", &sc[3][0], 15);
strprompt("Geographic location of this system", &sc[12][0], 31);
strprompt("Name of system administrator", &sc[13][0], 25);
strprompt("Paginator prompt", &sc[10][0], 79);
strprompt("SMTP MTA server port (-1 to disable)", &sc[24][0], 5);
strprompt("SMTP MSA server port (-1 to disable)", &sc[38][0], 5);
strprompt("SMTPS server port (-1 to disable)", &sc[41][0], 5);
+ strprompt("Postfix TCP Dictionary Port server port (-1 to disable)", &sc[50][0], 5);
+ strprompt("ManageSieve server port (-1 to disable)", &sc[51][0], 5);
/* This logic flips the question around, because it's one of those
* situations where 0=yes and 1=no
"Enable full text search index (warning: resource intensive)",
atoi(&sc[42][0]))));
+ snprintf(sc[46], sizeof sc[46], "%d", (boolprompt(
+ "Perform journaling of email messages",
+ atoi(&sc[46][0]))));
+ snprintf(sc[47], sizeof sc[47], "%d", (boolprompt(
+ "Perform journaling of non-email messages",
+ atoi(&sc[47][0]))));
+ if ( (atoi(&sc[46][0])) || (atoi(&sc[47][0])) ) {
+ strprompt("Email destination of journalized messages",
+ &sc[48][0], 127);
+ }
+
/* Save it */
scr_printf("Save this configuration? ");
if (yesno()) {
return;
}
- snprintf(filename, sizeof filename, "%s.listedit", tmpnam(NULL));
- snprintf(changefile, sizeof changefile, "%s.listedit", tmpnam(NULL));
+ CtdlMakeTempFileName(filename, sizeof filename);
+ CtdlMakeTempFileName(changefile, sizeof changefile);
tempfp = fopen(filename, "w");
if (tempfp == NULL) {
}
if (file_checksum(filename) == cksum) {
- err_printf("*** Not saving changes.\n");
+ err_printf("*** No changes to save.\n");
e_ex_code = 1;
}
if (e_ex_code == 0) { /* Save changes */
changefp = fopen(changefile, "w");
+ /* This appears completely unnecessary; why was it here? -IO
r = CtdlIPCGetRoomNetworkConfig(ipc, &listing, buf);
if (r / 100 == 1) {
while(listing && strlen(listing)) {
extract_token(buf, listing, 0, '\n', sizeof buf);
remove_token(listing, 0, '\n');
extract_token(instr, buf, 0, '|', sizeof instr);
- if (strcasecmp(instr, entrytype)) {
+ if (!strcasecmp(instr, entrytype)) {
fprintf(changefp, "%s\n", buf);
}
}
free(listing);
listing = NULL;
}
+ */
tempfp = fopen(filename, "r");
while (fgets(buf, sizeof buf, tempfp) != NULL) {
for (i=0; i<strlen(buf); ++i) {