If we ourselves are using cr-based overwriting for logging to stderr,
pass -t to the migration receiver so that it knows to do the same
(since its stderr is normally the pipe from sshd).
This requires, of course, that the receiver support that option. This
is OK from a compatibility point of view because we support migration
to newer, but not necessarily to older, versions. (If unsupported
backwards migration is still desired the use of -s "" allows the
remote invocation rune to be overridden by a command of one's choice.)
This fixes a regression introduced in
2f80ac9c0e8f, where migration
messages from the receiver would not use of the overwriting protocol.
CC: Olaf Hering <olaf@aepfle.de>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
domid = find_domain(argv[optind]);
host = argv[optind + 1];
+ bool pass_tty_arg = progress_use_cr || (isatty(2) > 0);
+
if (!ssh_command[0]) {
rune= host;
} else {
- if (asprintf(&rune, "exec %s %s xl migrate-receive%s%s",
+ if (asprintf(&rune, "exec %s %s xl%s migrate-receive%s%s",
ssh_command, host,
+ pass_tty_arg ? " -t" : "",
daemonize ? "" : " -e",
debug ? " -d" : "") < 0)
return 1;