- progress(_("Setting file permissions"), 1, 3);
- rv = chown(file_citadel_config, config.c_ctdluid, gid);
- progress(_("Setting file permissions"), 2, 3);
- rv = chmod(file_citadel_config, S_IRUSR | S_IWUSR);
- progress(_("Setting file permissions"), 3, 3);
+ activity = _("Setting file permissions");
+ progress(activity, 0, 2);
+ //chown(file_citadel_config, config.c_ctdluid, gid);
+ progress(activity, 1, 2);
+ chmod(file_citadel_config, S_IRUSR | S_IWUSR);
+ progress(activity, 2, 2);
+
+ /*
+ * Restart citserver
+ */
+ activity = _("Restarting Citadel server to apply changes");
+ progress(activity, 0, 41);
+
+ serv_puts("TIME");
+ serv_gets(buf);
+ long original_start_time = extract_long(&buf[4], 3);
+
+ progress(activity, 1, 41);
+ serv_puts("DOWN 1");
+ progress(activity, 2, 41);
+ 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) {
+ progress(activity, i, 41);
+ sleep(1);
+ }
+
+ for (i=7; ((i<=38) && (serv_sock < 0)) ; ++i) {
+ progress(activity, i, 41);
+ serv_sock = uds_connectsock(file_citadel_admin_socket);
+ sleep(1);
+ }
+
+ progress(activity, 39, 41);
+ serv_gets(buf);
+
+ progress(activity, 40, 41);
+ serv_puts("TIME");
+ serv_gets(buf);
+ long new_start_time = extract_long(&buf[4], 3);
+
+ close(serv_sock);
+ progress(activity, 41, 41);
+
+ if (original_start_time == new_start_time) {
+ display_error("%s\n",
+ _("Setup failed to restart Citadel server. Please restart it manually.")
+ );
+ exit(7);
+ }