X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Futils%2Fsetup.c;h=5934563160b72ebbf8d6e73e3794e85680323010;hb=6050cb23108ee10dafcceb65b9cafab51c013ae0;hp=98fab1fd65fdc57b6bfd4e8f758b98b9ef861ad3;hpb=dbebe0b18421f635c0cded24c7194be47b03bc9d;p=citadel.git diff --git a/citadel/utils/setup.c b/citadel/utils/setup.c index 98fab1fd6..593456316 100644 --- a/citadel/utils/setup.c +++ b/citadel/utils/setup.c @@ -1,7 +1,7 @@ /* * Citadel setup utility * - * Copyright (c) 1987-2012 by the citadel.org team + * Copyright (c) 1987-2014 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. @@ -103,6 +103,7 @@ char configs[NUM_CONFIGS][1024]; const char *setup_titles[eMaxQuestions]; const char *setup_text[eMaxQuestions]; +char *program_title; void SetTitles(void) { @@ -260,8 +261,6 @@ void cit_backtrace(void) #endif } -int direction; - void title(const char *text) @@ -305,8 +304,9 @@ int yesno(const char *question, int default_value) break; case UI_DIALOG: - snprintf(buf, sizeof buf, "exec %s %s --yesno '%s' 15 75", + snprintf(buf, sizeof buf, "exec %s --backtitle '%s' %s --yesno '%s' 15 75", getenv("CTDL_DIALOG"), + program_title, ( default_value ? "" : "--defaultno" ), question); i = system(buf); @@ -334,12 +334,14 @@ void important_message(const char *title, const char *msgtext) printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"); printf(" %s \n\n%s\n\n", title, msgtext); printf("%s", _("Press return to continue...")); - if (fgets(buf, sizeof buf, stdin)); + if (fgets(buf, sizeof buf, stdin)) + ; break; case UI_DIALOG: - snprintf(buf, sizeof buf, "exec %s --msgbox '%s' 19 72", + snprintf(buf, sizeof buf, "exec %s --backtitle '%s' --msgbox '%s' 19 72", getenv("CTDL_DIALOG"), + program_title, msgtext); int rv = system(buf); if (rv != 0) { @@ -402,8 +404,9 @@ void progress(char *text, long int curr, long int cmax) case UI_DIALOG: if (curr == 0) { - snprintf(buf, sizeof buf, "exec %s --gauge '%s' 7 72 0", + snprintf(buf, sizeof buf, "exec %s --backtitle '%s' --gauge '%s' 7 72 0", getenv("CTDL_DIALOG"), + program_title, text); fp = popen(buf, "w"); if (fp != NULL) { @@ -723,8 +726,9 @@ void strprompt(const char *prompt_title, const char *prompt_text, char *Target, case UI_DIALOG: CtdlMakeTempFileName(dialog_result, sizeof dialog_result); - snprintf(buf, sizeof buf, "exec %s --nocancel --inputbox '%s' 19 72 '%s' 2>%s", + snprintf(buf, sizeof buf, "exec %s --backtitle '%s' --nocancel --inputbox '%s' 19 72 '%s' 2>%s", getenv("CTDL_DIALOG"), + program_title, prompt_text, Target, dialog_result); @@ -1143,6 +1147,8 @@ void set_default_values(void) GetDefaultVALINT(c_managesieve_port, 2020); GetDefaultVALINT(c_xmpp_c2s_port, 5222); GetDefaultVALINT(c_xmpp_s2s_port, 5269); + GetDefaultVALINT(c_nntp_port, 119); + GetDefaultVALINT(c_nntps_port, 563); #endif } @@ -1155,14 +1161,18 @@ int main(int argc, char *argv[]) char buf[1024]; char aaa[128]; int info_only = 0; - int relh=0; - int home=0; + int relh = 0; + int home = 0; + int nRetries = 0; char relhome[PATH_MAX]=""; char ctdldir[PATH_MAX]=CTDLDIR; struct passwd *pw; gid_t gid; char *activity = NULL; + /* Keep a mild groove on */ + program_title = _("Citadel setup program"); + /* set an invalid setup type */ setup_type = (-1); @@ -1224,11 +1234,17 @@ int main(int argc, char *argv[]) /* * Connect to the running Citadel server. */ - serv_sock = uds_connectsock(file_citadel_admin_socket); + while ((serv_sock < 0) && (nRetries < 10)) { + serv_sock = uds_connectsock(file_citadel_admin_socket); + nRetries ++; + if (serv_sock < 0) + sleep(1); + } if (serv_sock < 0) { display_error( - "%s\n", - _("Setup could not connect to a running Citadel server.") + "%s: %s %s\n", + _("Setup could not connect to a running Citadel server."), + strerror(errno), file_citadel_admin_socket ); exit(1); } @@ -1289,7 +1305,7 @@ int main(int argc, char *argv[]) /* _("Citadel Setup"), */ if (setup_type == UI_TEXT) { - printf("\n\n\n *** %s ***\n\n", _("Citadel setup program")); + printf("\n\n\n *** %s ***\n\n", program_title); } if (setup_type == UI_DIALOG) { @@ -1301,6 +1317,7 @@ int main(int argc, char *argv[]) /* Go through a series of dialogs prompting for config info */ for (curr = 1; curr < eMaxQuestions; ++curr) { edit_value(curr); + if ( (curr == 6) && (atoi(configs[52]) != AUTHMODE_LDAP) && (atoi(configs[52]) != AUTHMODE_LDAP_AD)