systemd-run: support -t mode when combined with -M

For that, ask machined for a container PTY and use that.
This commit is contained in:
Lennart Poettering
2014-12-23 03:26:24 +01:00
parent 40205d706e
commit ee451d766a
5 changed files with 103 additions and 32 deletions
+6 -1
View File
@@ -404,6 +404,7 @@ int bus_machine_method_open_pty(sd_bus *bus, sd_bus_message *message, void *user
.msg_controllen = sizeof(control),
};
Machine *m = userdata;
_cleanup_free_ char *pty_name = NULL;
struct cmsghdr *cmsg;
siginfo_t si;
pid_t child;
@@ -479,11 +480,15 @@ int bus_machine_method_open_pty(sd_bus *bus, sd_bus_message *message, void *user
if (master < 0)
return -EIO;
r = ptsname_malloc(master, &pty_name);
if (r < 0)
return r;
r = sd_bus_message_new_method_return(message, &reply);
if (r < 0)
return r;
r = sd_bus_message_append(reply, "hs", master, ptsname(master));
r = sd_bus_message_append(reply, "hs", master, pty_name);
if (r < 0)
return r;
+1 -1
View File
@@ -1053,7 +1053,7 @@ static int login_machine(int argc, char *argv[], void *userdata) {
r = sd_bus_message_read(reply, "hs", &master, &pty);
if (r < 0)
return r;
return bus_log_parse_error(r);
p = startswith(pty, "/dev/pts/");
if (!p) {