Removed chdir() from setup.c - this program requires no run directory.
[citadel.git] / citadel / utils / setup.c
index 1cbc777417dee56b5904c6171802006723da7260..09ae02b3d0ae0998b19ea70fa6c021f06e3fc9f4 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Citadel setup utility
  *
- * Copyright (c) 1987-2019 by the citadel.org team
+ * Copyright (c) 1987-2021 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.
@@ -128,7 +128,6 @@ void SetTitles(void)
 "specify the -h flag to the server when you start it up.\n"
 "note that it may not have a leading /");
 
-
        setup_titles[eSysAdminName] = _("Citadel administrator username:");
        setup_text[eSysAdminName] = _(
 "Please enter the name of the Citadel user account that should be granted "
@@ -136,7 +135,6 @@ void SetTitles(void)
 "this user account will be created if it does not exist. For external "
 "authentication this user account has to exist.");
 
-
        setup_titles[eSysAdminPW] = _("Administrator password:");
        setup_text[eSysAdminPW] = _(
 "Enter a password for the system administrator. When setup\n"
@@ -520,15 +518,6 @@ void check_xinetd_entry(void)
 }
 
 
-void disable_other_mtas(void)
-{
-       if ((getenv("ACT_AS_MTA") == NULL) || (getenv("ACT_AS_MTA") && strcasecmp(getenv("ACT_AS_MTA"), "yes") == 0)) {
-               /* Offer to disable other MTA's on the system. */
-               /* FIXME this has to be rewritten to work in the new systemd-based world. */
-       }
-}
-
-
 void strprompt(const char *prompt_title, const char *prompt_text, char *Target, char *DefValue)
 {
        char buf[SIZ] = "";
@@ -681,96 +670,6 @@ void edit_value(int curr)
 }
 
 
-/*
- * Strip "db" entries out of /etc/nsswitch.conf
- */
-void fixnss(void) {
-       FILE *fp_read;
-       int fd_write;
-       char buf[256];
-       char buf_nc[256];
-       char question[512];
-       int i;
-       int file_changed = 0;
-       char new_filename[64];
-       int rv;
-
-       fp_read = fopen(NSSCONF, "r");
-       if (fp_read == NULL) {
-               return;
-       }
-
-       strcpy(new_filename, "/tmp/ctdl_fixnss_XXXXXX");
-       fd_write = mkstemp(new_filename);
-       if (fd_write < 0) {
-               fclose(fp_read);
-               return;
-       }
-
-       while (fgets(buf, sizeof buf, fp_read) != NULL) {
-               strcpy(buf_nc, buf);
-               for (i=0; buf_nc[i]; ++i) {
-                       if (buf_nc[i] == '#') {
-                               buf_nc[i] = 0;
-                               break;
-                       }
-               }
-               for (i=0; i<strlen(buf_nc); ++i) {
-                       if (!strncasecmp(&buf_nc[i], "db", 2)) {
-                               if (i > 0) {
-                                       if ((isspace(buf_nc[i+2])) || (buf_nc[i+2]==0)) {
-                                               file_changed = 1;
-                                               strcpy(&buf_nc[i], &buf_nc[i+2]);
-                                               strcpy(&buf[i], &buf[i+2]);
-                                               if (buf[i]==32) {
-                                                       strcpy(&buf_nc[i], &buf_nc[i+1]);
-                                                       strcpy(&buf[i], &buf[i+1]);
-                                               }
-                                       }
-                               }
-                       }
-               }
-               long buflen = strlen(buf);
-               if (write(fd_write, buf, buflen) != buflen) {
-                       fclose(fp_read);
-                       close(fd_write);
-                       unlink(new_filename);
-                       return;
-               }
-       }
-
-       fclose(fp_read);
-       
-       if (!file_changed) {
-               unlink(new_filename);
-               return;
-       }
-
-       snprintf(question, sizeof question,
-                _(
-                        "\n"
-                        "/etc/nsswitch.conf is configured to use the 'db' module for\n"
-                        "one or more services.  This is not necessary on most systems,\n"
-                        "and it is known to crash the Citadel server when delivering\n"
-                        "mail to the Internet.\n"
-                        "\n"
-                        "Do you want this module to be automatically disabled?\n"
-                        "\n"
-                        )
-       );
-
-       if (yesno(question, 1)) {
-               snprintf(buf, sizeof buf, "/bin/mv -f %s %s", new_filename, NSSCONF);
-               rv = system(buf);
-               if (rv != 0) {
-                       fprintf(stderr, "failed to edit %s.\n", NSSCONF);
-               }
-               chmod(NSSCONF, 0644);
-       }
-       unlink(new_filename);
-}
-
-
 /*
  * Messages that are no longer in use.
  * We keep them here so we don't lose the translations if we need them later.
@@ -832,12 +731,6 @@ int main(int argc, char *argv[])
 
        enable_home = ( relh | home );
 
-       if (chdir(ctdl_run_dir) != 0) {
-               display_error("%s: [%s]\n", _("The directory you specified does not exist"), ctdl_run_dir);
-               exit(errno);
-       }
-
-
        /*
         * Connect to the running Citadel server.
         */
@@ -966,8 +859,6 @@ int main(int argc, char *argv[])
        progress(activity, 5, 5);
 
        check_xinetd_entry();   /* Check /etc/xinetd.d/telnet */
-       disable_other_mtas();   /* Offer to disable other MTAs */
-       fixnss();               /* Check for the 'db' nss and offer to disable it */
 
        /*
         * Restart citserver