]> code.citadel.org Git - citadel.git/blobdiff - citadel/utils/setup.c
replace strlens by breaks, fix comparison warnings.
[citadel.git] / citadel / utils / setup.c
index a2085028e72f82f0707f7206c3bbc0446c4c34fb..85288088cceaffa123718374f02cd3399945f334 100644 (file)
@@ -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.
@@ -261,8 +261,6 @@ void cit_backtrace(void)
 #endif
 }
 
-int direction;
-
 
 
 void title(const char *text)
@@ -336,7 +334,8 @@ 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:
@@ -950,9 +949,10 @@ void fixnss(void) {
 
        while (fgets(buf, sizeof buf, fp_read) != NULL) {
                strcpy(buf_nc, buf);
-               for (i=0; i<strlen(buf_nc); ++i) {
+               for (i=0; buf_nc[i]; ++i) {
                        if (buf_nc[i] == '#') {
                                buf_nc[i] = 0;
+                               break;
                        }
                }
                for (i=0; i<strlen(buf_nc); ++i) {
@@ -970,7 +970,8 @@ void fixnss(void) {
                                }
                        }
                }
-               if (write(fd_write, buf, strlen(buf)) != strlen(buf)) {
+               long buflen = strlen(buf);
+               if (write(fd_write, buf, buflen) != buflen) {
                        fclose(fp_read);
                        close(fd_write);
                        unlink(new_filename);
@@ -1148,6 +1149,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
 }
 
@@ -1160,8 +1163,9 @@ 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;
@@ -1221,8 +1225,7 @@ int main(int argc, char *argv[])
        enable_home = ( relh | home );
 
        if (chdir(ctdl_run_dir) != 0) {
-               display_error(_("Citadel Setup"), 
-                             "%s: [%s]\n", 
+               display_error("%s: [%s]\n", 
                              _("The directory you specified does not exist"), 
                              ctdl_run_dir);
                exit(errno);
@@ -1232,11 +1235,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);
        }
@@ -1309,6 +1318,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)