remove unused trace function
[citadel.git] / citadel / utils / setup.c
index edb0a0ab2dffc032884416f5bb70bbd4622bbec2..27174c69b7598d5127279b42fc782ee43f9e6e6d 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Citadel setup utility
  *
- * Copyright (c) 1987-2016 by the citadel.org team
+ * 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.
@@ -36,9 +36,6 @@
 #include "axdefs.h"
 #include "sysdep.h"
 #include "citadel_dirs.h"
-#if HAVE_BACKTRACE
-#include <execinfo.h>
-#endif
 
 #ifdef ENABLE_NLS
 #ifdef HAVE_XLOCALE_H
@@ -192,8 +189,8 @@ void SetTitles(void)
 "\n"
 " 0. Self contained authentication\n"
 " 1. Host system integrated authentication\n"
-" 2. External LDAP - RFC 2307 compliant directory\n"
-" 3. External LDAP - nonstandard MS Active Directory\n"
+" 2. External LDAP - RFC 2307 POSIX schema\n"
+" 3. External LDAP - MS Active Directory schema\n"
 "\n"
 "For help: http://www.citadel.org/doku.php/faq:installation:authmodes\n"
 "\n"
@@ -415,7 +412,6 @@ void progress(char *text, long int curr, long int cmax)
 }
 
 
-
 int uds_connectsock(char *sockpath)
 {
        int s;
@@ -618,18 +614,21 @@ void check_xinetd_entry(void)
                "       server_args     = -h -L %s/citadel\n"
                "       log_on_failure  += USERID\n"
                "}\n",
-               ctdl_bin_dir);
+               ctdl_bin_dir
+       );
        fclose(fp);
 
-       /* Now try to restart the service */
-       rv = system("/etc/init.d/xinetd restart >/dev/null 2>&1");
+       /* Now try to restart the service.  This will not have the intended effect on Solaris, but who the hell uses Solaris anymore? */
+       rv = system("systemctl restart xinetd >/dev/null 2>&1");
+       if (rv != 0) {
+               rv = system("service xinetd restart >/dev/null 2>&1");
+       }
        if (rv != 0) {
                display_error(_("failed to restart xinetd.\n"));
        }
 }
 
 
-
 /*
  * Offer to disable other MTA's
  */
@@ -841,7 +840,7 @@ void edit_value(int curr)
                break;
        
        case eUID:
-
+               ctdluid = getconf_int("c_ctdluid");
                if (setup_type == UI_SILENT)
                {               
                        if (default_value) {
@@ -863,7 +862,7 @@ void edit_value(int curr)
                                pw = getpwnam(ctdluidname);
                                if (pw != NULL) {
                                        ctdluid = pw->pw_uid;
-                               
+                               }
                                else if (atoi(ctdluidname) > 0) {
                                        ctdluid = atoi(ctdluidname);
                                }
@@ -1235,29 +1234,33 @@ int main(int argc, char *argv[])
        /*
         * Create the administrator account.  It's ok if the command fails if this user already exists.
         */
-       progress(activity, 1, 5);
-       snprintf(buf, sizeof buf, "CREU %s|%s", admin_name, admin_pass);
-       serv_puts(buf);
-       progress(activity, 2, 5);
-       serv_gets(buf);
+       if (getconf_int("c_auth_mode") == AUTHMODE_NATIVE) {
+               progress(activity, 1, 5);
+               snprintf(buf, sizeof buf, "CREU %s|%s", admin_name, admin_pass);
+               serv_puts(buf);
+               progress(activity, 2, 5);
+               serv_gets(buf);
+       }
        progress(activity, 3, 5);
 
        /*
         * Assign the desired password and access level to the administrator account.
         */
-       snprintf(buf, sizeof buf, "AGUP %s", admin_name);
-       serv_puts(buf);
-       progress(activity, 4, 5);
-       serv_gets(buf);
-       if (buf[0] == '2') {
-               int admin_flags = extract_int(&buf[4], 2);
-               int admin_times_called = extract_int(&buf[4], 3);
-               int admin_msgs_posted = extract_int(&buf[4], 4);
-               snprintf(buf, sizeof buf, "ASUP %s|%s|%d|%d|%d|6",
-                       admin_name, admin_pass, admin_flags, admin_times_called, admin_msgs_posted
-               );
+       if (getconf_int("c_auth_mode") == AUTHMODE_NATIVE) {
+               snprintf(buf, sizeof buf, "AGUP %s", admin_name);
                serv_puts(buf);
+               progress(activity, 4, 5);
                serv_gets(buf);
+               if (buf[0] == '2') {
+                       int admin_flags = extract_int(&buf[4], 2);
+                       int admin_times_called = extract_int(&buf[4], 3);
+                       int admin_msgs_posted = extract_int(&buf[4], 4);
+                       snprintf(buf, sizeof buf, "ASUP %s|%s|%d|%d|%d|6",
+                               admin_name, admin_pass, admin_flags, admin_times_called, admin_msgs_posted
+                       );
+                       serv_puts(buf);
+                       serv_gets(buf);
+               }
        }
        progress(activity, 5, 5);
 
@@ -1271,15 +1274,15 @@ int main(int argc, char *argv[])
         * Restart citserver
         */
        activity = _("Restarting Citadel server to apply changes");
-       progress(activity, 0, 41);
+       progress(activity, 0, 51);
 
        serv_puts("TIME");
        serv_gets(buf);
        long original_start_time = extract_long(&buf[4], 3);
 
-       progress(activity, 1, 41);
+       progress(activity, 1, 51);
        serv_puts("DOWN 1");
-       progress(activity, 2, 41);
+       progress(activity, 2, 51);
        serv_gets(buf);
        if (buf[0] != '2') {
                display_error("%s\n", buf);
@@ -1290,26 +1293,26 @@ int main(int argc, char *argv[])
        serv_sock = (-1);
 
        for (i=3; i<=6; ++i) {                                  /* wait for server to shut down */
-               progress(activity, i, 41);
+               progress(activity, i, 51);
                sleep(1);
        }
 
-       for (i=7; ((i<=38) && (serv_sock < 0)) ; ++i) {         /* wait for server to start up */
-               progress(activity, i, 41);
+       for (i=7; ((i<=48) && (serv_sock < 0)) ; ++i) {         /* wait for server to start up */
+               progress(activity, i, 51);
                serv_sock = uds_connectsock(file_citadel_admin_socket);
                sleep(1);
        }
 
-       progress(activity, 39, 41);
+       progress(activity, 49, 51);
        serv_gets(buf);
 
-       progress(activity, 40, 41);
+       progress(activity, 50, 51);
        serv_puts("TIME");
        serv_gets(buf);
        long new_start_time = extract_long(&buf[4], 3);
 
        close(serv_sock);
-       progress(activity, 41, 41);
+       progress(activity, 51, 51);
 
        if (    (original_start_time == new_start_time)
                || (new_start_time <= 0)