- // 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);
- }