X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;ds=sidebyside;f=citadel%2Fctdlmigrate.c;h=5d86011797e8dbdee25896c0b68be0126642e72f;hb=29054912680f4f66a84ac947de38b8e99a1c4d80;hp=d18707a27319dece1fac47bf3314214783739100;hpb=068d33e5d8569b2c4a2c8582178427892b0a8dee;p=citadel.git diff --git a/citadel/ctdlmigrate.c b/citadel/ctdlmigrate.c index d18707a27..5d8601179 100644 --- a/citadel/ctdlmigrate.c +++ b/citadel/ctdlmigrate.c @@ -37,7 +37,7 @@ #include "citadel_dirs.h" -// yeah, this wouldn't work in a multithreaded program. +// support for getz() -- (globals would not be appropriate in a multithreaded program) static int gmaxlen = 0; static char *gdeftext = NULL; @@ -304,7 +304,7 @@ int main(int argc, char *argv[]) { getz(yesno, 1, NULL, "Do you wish to continue? "); puts(yesno); if (tolower(yesno[0]) != 'y') { - cmdexit = 1; + cmdexit = 101; } if (!cmdexit) { @@ -321,7 +321,7 @@ int main(int argc, char *argv[]) { printf("Checking connectivity to Citadel in %s...\n", ctdldir); local_admin_socket = uds_connectsock("citadel-admin.socket"); if (local_admin_socket < 0) { - cmdexit = 1; + cmdexit = 102; } } @@ -329,7 +329,7 @@ int main(int argc, char *argv[]) { serv_gets(local_admin_socket, buf); puts(buf); if (buf[0] != '2') { - cmdexit = 1; + cmdexit = 103; } } @@ -338,7 +338,7 @@ int main(int argc, char *argv[]) { serv_gets(local_admin_socket, buf); puts(buf); if (buf[0] != '2') { - cmdexit = 1; + cmdexit = 104; } } @@ -352,7 +352,7 @@ int main(int argc, char *argv[]) { remote_server_socket = tcp_connectsock(remote_host, remote_port); if (remote_server_socket < 0) { - cmdexit = 1; + cmdexit = 105; } } @@ -360,7 +360,7 @@ int main(int argc, char *argv[]) { serv_gets(remote_server_socket, buf); puts(buf); if (buf[0] != '2') { - cmdexit = 1; + cmdexit = 106; } } @@ -369,7 +369,7 @@ int main(int argc, char *argv[]) { serv_gets(remote_server_socket, buf); puts(buf); if (buf[0] != '3') { - cmdexit = 1; + cmdexit = 107; } } @@ -378,7 +378,7 @@ int main(int argc, char *argv[]) { serv_gets(remote_server_socket, buf); puts(buf); if (buf[0] != '2') { - cmdexit = 1; + cmdexit = 108; } } @@ -402,7 +402,7 @@ int main(int argc, char *argv[]) { serv_gets(remote_server_socket, buf); if (buf[0] != '1') { printf("\n\033[31m%s\033[0m\n", buf); - cmdexit = 3; + cmdexit = 109; } } @@ -411,7 +411,7 @@ int main(int argc, char *argv[]) { serv_gets(local_admin_socket, buf); if (buf[0] != '4') { printf("\n\033[31m%s\033[0m\n", buf); - cmdexit = 3; + cmdexit = 110; } } @@ -439,10 +439,17 @@ int main(int argc, char *argv[]) { if ( (cmdexit == 0) && (progress < 100) ) { printf("\033[31mERROR: source stream ended before 100 percent of data was received.\033[0m\n"); - ctdlmigrate_exit(86); + cmdexit = 111; } - // FIXME restart the local server here + if (!cmdexit) { + printf("\033[36mMigration is complete. Restarting the target server.\033[0m\n"); + serv_puts(local_admin_socket, "DOWN 1"); + serv_gets(local_admin_socket, buf); + puts(buf); + printf("\033[36mIt is recommended that you shut down the source server now.\033[0m\n"); + printf("\033[36mRemember to copy over your SSL keys and file libraries if appropriate.\033[0m\n"); + } close(remote_server_socket); close(local_admin_socket);