_("Setup is finished, but the Citadel server failed to start.\n"
"Go back and check your configuration.\n")
);
- display_error(_("Restarting Citadel server to apply changes"));
- display_error(_("Setup failed to restart Citadel server. Please restart it manually."));
+ important_message(_("Setup finished"),
+ _("Setup is finished. You may now start the server.")
+ );
}
check_xinetd_entry(); // Check /etc/xinetd.d/telnet
- important_message(_("Setup finished"),
- _("Setup is finished. You may now start the server.")
- );
+ // Restart citserver
+ activity = _("Restarting Citadel server to apply changes");
+ progress(activity, 0, 51);
+
+ serv_puts("TIME");
+ serv_gets(buf);
+ long original_start_time = extract_long(&buf[4], 3);
+
+ progress(activity, 1, 51);
+ serv_puts("DOWN 1");
+ progress(activity, 2, 51);
+ serv_gets(buf);
+ if (buf[0] != '2') {
+ display_error("%s\n", buf);
+ exit(6);
+ }
+
+ close(serv_sock);
+ serv_sock = (-1);
+
+ for (i=3; i<=6; ++i) { // wait for server to shut down
+ progress(activity, i, 51);
+ sleep(1);
+ }
+
+ 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, 49, 51);
+ serv_gets(buf);
+
+ progress(activity, 50, 51);
+ serv_puts("TIME");
+ serv_gets(buf);
+ long new_start_time = extract_long(&buf[4], 3);
+
+ close(serv_sock);
+ progress(activity, 51, 51);
+
+ if ((original_start_time == new_start_time) || (new_start_time <= 0)) {
+ display_error("%s\n", _("Setup failed to restart Citadel server. Please restart it manually."));
+ exit(7);
+ }
exit(0);
return 0;