X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=textclient%2Ftuiconfig.c;h=28a10ed15748772d5808a44bde2da45c30949b42;hb=HEAD;hp=efc7affc5a03c83fcf663ff36c87b30413c46cd0;hpb=2dfd5bee542a9d635e380097e63c307bd6c27d65;p=citadel.git diff --git a/textclient/tuiconfig.c b/textclient/tuiconfig.c index efc7affc5..28a10ed15 100644 --- a/textclient/tuiconfig.c +++ b/textclient/tuiconfig.c @@ -1,16 +1,8 @@ -/* - * Configuration screens that are part of the text mode client. - * - * Copyright (c) 1987-2018 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. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ +// Configuration screens that are part of the text mode client. +// +// Copyright (c) 1987-2022 by the citadel.org team +// +// This program is open source software. Use, duplication, or disclosure is subject to the GNU General Public License version 3. #include "textclient.h" @@ -24,14 +16,8 @@ extern int screenwidth; char editor_path[PATH_MAX]; -/* - * General system configuration command - */ -void do_system_configuration(CtdlIPC *ipc) -{ - - /* NUM_CONFIGS is now defined in citadel.h */ - +// General system configuration command +void do_system_configuration(CtdlIPC * ipc) { char buf[256]; char sc[NUM_CONFIGS][256]; char *resp = NULL; @@ -39,32 +25,32 @@ void do_system_configuration(CtdlIPC *ipc) struct ExpirePolicy *mbx_expirepolicy = NULL; int a; int logpages = 0; - int r; /* IPC response code */ + int r; // IPC response code int server_configs = 0; - /* Clear out the config buffers */ + // Clear out the config buffers memset(&sc[0][0], 0, sizeof(sc)); - /* Fetch the current config */ + // Fetch the current config r = CtdlIPCGetSystemConfig(ipc, &resp, buf); if (r / 100 == 1) { server_configs = num_tokens(resp, '\n'); - for (a=0; aServInfo.supports_ldap) { a = strlen(&sc[32][0]); - a = (a ? 1 : 0); /* Set only to 1 or 0 */ + a = (a ? 1 : 0); // Set only to 1 or 0 a = boolprompt("Do you want to configure LDAP authentication?", a); if (a) { strprompt("Host name of LDAP server", &sc[32][0], 127); @@ -192,25 +148,23 @@ void do_system_configuration(CtdlIPC *ipc) } } - /* Expiry settings */ + // Expiry settings strprompt("Default user purge time (days)", &sc[16][0], 5); strprompt("Default room purge time (days)", &sc[17][0], 5); - /* Angels and demons dancing in my head... */ + // Angels and demons dancing in my head... do { snprintf(buf, sizeof buf, "%d", site_expirepolicy->expire_mode); - strprompt("System default message expire policy (? for list)", - buf, 1); + strprompt("System default message expire policy (? for list)", buf, 1); if (buf[0] == '?') { scr_printf("\n" - "1. Never automatically expire messages\n" - "2. Expire by message count\n" - "3. Expire by message age\n"); + "1. Never automatically expire messages\n" + "2. Expire by message count\n" "3. Expire by message age\n"); } } while ((buf[0] < '1') || (buf[0] > '3')); site_expirepolicy->expire_mode = buf[0] - '0'; - /* ...lunatics and monsters underneath my bed */ + // ...lunatics and monsters underneath my bed if (site_expirepolicy->expire_mode == 2) { snprintf(buf, sizeof buf, "%d", site_expirepolicy->expire_value); strprompt("Keep how many messages online?", buf, 10); @@ -222,22 +176,20 @@ void do_system_configuration(CtdlIPC *ipc) site_expirepolicy->expire_value = atol(buf); } - /* Media messiahs preying on my fears... */ + // Media messiahs preying on my fears... do { snprintf(buf, sizeof buf, "%d", mbx_expirepolicy->expire_mode); - strprompt("Mailbox default message expire policy (? for list)", - buf, 1); + strprompt("Mailbox default message expire policy (? for list)", buf, 1); if (buf[0] == '?') { scr_printf("\n" - "0. Go with the system default\n" - "1. Never automatically expire messages\n" - "2. Expire by message count\n" - "3. Expire by message age\n"); + "0. Go with the system default\n" + "1. Never automatically expire messages\n" + "2. Expire by message count\n" "3. Expire by message age\n"); } } while ((buf[0] < '0') || (buf[0] > '3')); mbx_expirepolicy->expire_mode = buf[0] - '0'; - /* ...Pop culture prophets playing in my ears */ + // ...Pop culture prophets playing in my ears if (mbx_expirepolicy->expire_mode == 2) { snprintf(buf, sizeof buf, "%d", mbx_expirepolicy->expire_value); strprompt("Keep how many messages online?", buf, 10); @@ -253,30 +205,25 @@ void do_system_configuration(CtdlIPC *ipc) strprompt("Default frequency to run POP3 collection (in seconds)", &sc[64][0], 5); strprompt("Fastest frequency to run POP3 collection (in seconds)", &sc[65][0], 5); strprompt("Hour to run purges (0-23)", &sc[31][0], 2); - snprintf(sc[42], sizeof sc[42], "%d", (boolprompt( - "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); - } - - /* No more Funambol */ + snprintf(sc[42], sizeof sc[42], "%d", + (boolprompt("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); + } + + // No more Funambol sc[53][0] = 0; sc[54][0] = 0; sc[55][0] = 0; sc[56][0] = 0; - /* External pager stuff */ + // External pager stuff int yes_pager = 0; - if (strlen(sc[60]) > 0) yes_pager = 1; + if (strlen(sc[60]) > 0) { + yes_pager = 1; + } yes_pager = boolprompt("Configure an external pager tool", yes_pager); if (yes_pager) { strprompt("External pager tool", &sc[60][0], 255); @@ -285,27 +232,14 @@ void do_system_configuration(CtdlIPC *ipc) sc[60][0] = 0; } - /* Master user account */ - int yes_muacct = 0; - if (strlen(sc[58]) > 0) yes_muacct = 1; - yes_muacct = boolprompt("Enable a 'master user' account", yes_muacct); - if (yes_muacct) { - strprompt("Master user name", &sc[58][0], 31); - strprompt("Master user password", &sc[59][0], -31); - } - else { - strcpy(&sc[58][0], ""); - strcpy(&sc[59][0], "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"); - } - - /* Save it */ + // Save it scr_printf("Save this configuration? "); if (yesno()) { r = 1; for (a = 0; a < NUM_CONFIGS; a++) { r += 1 + strlen(sc[a]); } - resp = (char *)calloc(1, r); + resp = (char *) calloc(1, r); if (!resp) { scr_printf("Can't save config - out of memory!\n"); logoff(ipc, 1); @@ -331,15 +265,15 @@ void do_system_configuration(CtdlIPC *ipc) } } - if (site_expirepolicy) free(site_expirepolicy); - if (mbx_expirepolicy) free(mbx_expirepolicy); + if (site_expirepolicy) + free(site_expirepolicy); + if (mbx_expirepolicy) + free(mbx_expirepolicy); } -/* - * support function for do_internet_configuration() - */ -void get_inet_rec_type(CtdlIPC *ipc, char *buf) { +// support function for do_internet_configuration() +void get_inet_rec_type(CtdlIPC * ipc, char *buf) { int sel; keyopt(" <1> localhost (Alias for this computer)\n"); @@ -350,30 +284,34 @@ void get_inet_rec_type(CtdlIPC *ipc, char *buf) { keyopt(" <6> masq domains (Domains as which users are allowed to masquerade)\n"); keyopt(" <7> ClamAV (Address of ClamAV clamd server)\n"); sel = intprompt("Which one", 1, 1, 8); - switch(sel) { - case 1: strcpy(buf, "localhost"); - return; - case 2: strcpy(buf, "smarthost"); - return; - case 3: strcpy(buf, "fallbackhost"); - return; - case 4: strcpy(buf, "spamassassin"); - return; - case 5: strcpy(buf, "rbl"); - return; - case 6: strcpy(buf, "masqdomain"); - return; - case 7: strcpy(buf, "clamav"); - return; + switch (sel) { + case 1: + strcpy(buf, "localhost"); + return; + case 2: + strcpy(buf, "smarthost"); + return; + case 3: + strcpy(buf, "fallbackhost"); + return; + case 4: + strcpy(buf, "spamassassin"); + return; + case 5: + strcpy(buf, "rbl"); + return; + case 6: + strcpy(buf, "masqdomain"); + return; + case 7: + strcpy(buf, "clamav"); + return; } } -/* - * Internet mail configuration - */ -void do_internet_configuration(CtdlIPC *ipc) -{ +// Internet mail configuration +void do_internet_configuration(CtdlIPC * ipc) { char buf[256]; char *resp = NULL; int num_recs = 0; @@ -383,27 +321,31 @@ void do_internet_configuration(CtdlIPC *ipc) int quitting = 0; int modified = 0; int r; - + r = CtdlIPCGetSystemConfigByType(ipc, INTERNETCFG, &resp, buf); if (r / 100 == 1) { while (!IsEmptyStr(resp)) { extract_token(buf, resp, 0, '\n', sizeof buf); remove_token(resp, 0, '\n'); - // VILE SLEAZY HACK: replace obsolete "directory" domains with "localhost" + // "directory" is no longer used. replace it with "localhost" char *d = strstr(buf, "|directory"); if (d != NULL) { strcpy(d, "|localhost"); } ++num_recs; - if (num_recs == 1) recs = malloc(sizeof(char *)); - else recs = realloc(recs, (sizeof(char *)) * num_recs); - recs[num_recs-1] = malloc(strlen(buf) + 1); - strcpy(recs[num_recs-1], buf); + if (num_recs == 1) + recs = malloc(sizeof(char *)); + else + recs = realloc(recs, (sizeof(char *)) * num_recs); + recs[num_recs - 1] = malloc(strlen(buf) + 1); + strcpy(recs[num_recs - 1], buf); } } - if (resp) free(resp); + if (resp) { + free(resp); + } do { scr_printf("\n"); @@ -411,90 +353,89 @@ void do_internet_configuration(CtdlIPC *ipc) scr_printf("### Host or domain Record type \n"); color(DIM_WHITE); scr_printf("--- -------------------------------------------------- --------------------\n"); - for (i=0; idd|elete|ave|uit"); - switch(ch) { - case 'a': - newprompt("Enter host name: ", buf, 50); - striplt(buf); - if (!IsEmptyStr(buf)) { - ++num_recs; - if (num_recs == 1) { - recs = malloc(sizeof(char *)); - } - else { - recs = realloc(recs, (sizeof(char *)) * num_recs); - } - strcat(buf, "|"); - get_inet_rec_type(ipc, &buf[strlen(buf)]); - recs[num_recs-1] = strdup(buf); - } - modified = 1; - break; - case 'd': - i = intprompt("Delete which one", 1, 1, num_recs) - 1; - free(recs[i]); - --num_recs; - for (j=i; j= 0)); - editor_pid = (-1); - stty_ctdl(0); + editor_pid = (-1); + stty_ctdl(0); } if (file_checksum(filename) == cksum) { @@ -577,13 +517,13 @@ void network_config_management(CtdlIPC *ipc, char *entrytype, char *comment) e_ex_code = 1; } - if (e_ex_code == 0) { /* Save changes */ + if (e_ex_code == 0) { // Save changes changefp = fopen(changefile, "w"); - /* Load all netconfig entries that are *not* of the type we are editing */ + // Load all netconfig entries that are *not* of the type we are editing r = CtdlIPCGetRoomNetworkConfig(ipc, &listing, buf); if (r / 100 == 1) { - while(listing && !IsEmptyStr(listing)) { + while (listing && !IsEmptyStr(listing)) { extract_token(buf, listing, 0, '\n', sizeof buf); remove_token(listing, 0, '\n'); extract_token(instr, buf, 0, '|', sizeof instr); @@ -597,13 +537,14 @@ void network_config_management(CtdlIPC *ipc, char *entrytype, char *comment) listing = NULL; } - /* ...and merge that with the data we just edited */ + // ...and merge that with the data we just edited tempfp = fopen(filename, "r"); while (fgets(buf, sizeof buf, tempfp) != NULL) { - for (i=0; idd|elete|ave|uit"); - switch(ch) { - case 'a': - ++num_recs; - if (num_recs == 1) { - recs = malloc(sizeof(char *)); - } - else { - recs = realloc(recs, (sizeof(char *)) * num_recs); - } - strcpy(buf, "pop3client|"); - newprompt("Enter host name: ", &buf[strlen(buf)], 28); - strcat(buf, "|"); - newprompt("Enter user name: ", &buf[strlen(buf)], 28); - strcat(buf, "|"); - newprompt("Enter password : ", &buf[strlen(buf)], 16); - strcat(buf, "|"); - scr_printf("Keep messages on server instead of deleting them? "); - sprintf(&buf[strlen(buf)], "%d", yesno()); - strcat(buf, "|"); - recs[num_recs-1] = strdup(buf); - modified = 1; - break; - case 'd': - i = intprompt("Delete which one", - 1, 1, num_recs) - 1; - free(recs[i]); - --num_recs; - for (j=i; jdd|elete|ave|uit"); - switch(ch) { - case 'a': - ++num_recs; - if (num_recs == 1) { - recs = malloc(sizeof(char *)); - } - else { - recs = realloc(recs, (sizeof(char *)) * num_recs); - } - strcpy(buf, "rssclient|"); - newprompt("Enter feed URL: ", &buf[strlen(buf)], 75); - strcat(buf, "|"); - recs[num_recs-1] = strdup(buf); - modified = 1; - break; - case 'd': - i = intprompt("Delete which one", 1, 1, num_recs) - 1; - free(recs[i]); - --num_recs; - for (j=i; j