* The scope of this program isn't wide enough to make a difference. If you don't like
* it you can rewrite it.
*
- * Copyright (c) 2009 citadel.org
+ * Copyright (c) 2009-2016 citadel.org
*
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
+ * 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.
*
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
*
* (Note: a useful future enhancement might be to support "-h" on both sides)
*
void getz(char *buf) {
char *ptr;
- ptr = fgets(buf, 32767, stdin);
+ ptr = fgets(buf, SIZ, stdin);
if (!ptr) {
buf[0] = 0;
return;
char cmd[PATH_MAX];
char buf[PATH_MAX];
char socket_path[PATH_MAX];
- char remote_user[256];
- char remote_host[256];
+ char remote_user[SIZ];
+ char remote_host[SIZ];
char remote_sendcommand[PATH_MAX];
FILE *sourcefp = NULL;
FILE *targetfp = NULL;
"(example: ctdl.foo.org)\n"
"--> ");
getz(remote_host);
+
+get_remote_user:
printf("\nEnter the name of a user on %s who has full access to Citadel files\n"
"(usually root)\n--> ",
remote_host);
getz(remote_user);
+ if (IsEmptyStr(remote_user))
+ goto get_remote_user;
printf("\nEstablishing an SSH connection to the source system...\n\n");
unlink(socket_path);
}
printf("ctdlmigrate will now begin a database migration...\n");
+ printf(" if the system doesn't start working, \n");
+ printf(" have a look at the syslog for pending jobs needing to be terminated.\n");
snprintf(cmd, sizeof cmd, "ssh -S %s %s@%s %s -w3600 MIGR export",
socket_path, remote_user, remote_host, remote_sendcommand);
snprintf(cmd, sizeof cmd, "rsync -va --rsh='ssh -S %s' %s@%s:%s/ %s/",
socket_path, remote_user, remote_host, &buf[9], ctdl_message_dir);
}
- else if (!strncasecmp(buf, "netconfigs|", 11)) {
- snprintf(cmd, sizeof cmd, "rsync -va --rsh='ssh -S %s' %s@%s:%s/ %s/",
- socket_path, remote_user, remote_host, &buf[11], ctdl_netcfg_dir);
- }
else if (!strncasecmp(buf, "keys|", 5)) {
snprintf(cmd, sizeof cmd, "rsync -va --rsh='ssh -S %s' %s@%s:%s/ %s/",
socket_path, remote_user, remote_host, &buf[5], ctdl_key_dir);