X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Futils%2Fsetup.c;h=27174c69b7598d5127279b42fc782ee43f9e6e6d;hb=c750a06a241dc2737fa68c24b340a1bd82894f74;hp=6eaa957d3d4829c46262adbb39ab49ae186a8bc7;hpb=1a4ec92c7186ed2c0b9b6bf45afc47b69f3a800a;p=citadel.git diff --git a/citadel/utils/setup.c b/citadel/utils/setup.c index 6eaa957d3..27174c69b 100644 --- a/citadel/utils/setup.c +++ b/citadel/utils/setup.c @@ -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 -#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) { @@ -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)