diff options
author | Daniel Mack <github@zonque.org> | 2015-10-08 16:09:09 +0200 |
---|---|---|
committer | Daniel Mack <github@zonque.org> | 2015-10-08 16:09:09 +0200 |
commit | ad86c1335a2a474f91186a736a5231d0c66313c6 (patch) | |
tree | f3cc983826f4067f8dcb12f4828a2e2c8cc8e64c /src/machine/machine.c | |
parent | 8f3db94d9d905e6c31c1fcd0dcc6be7b78034c5c (diff) | |
parent | 1af1f2f92ef52e3e905b7928d42345d9c48e7e7b (diff) |
Merge pull request #1496 from poettering/stdin-fd
allow passing in fds for stdin/stdout/stderr for transient services
Diffstat (limited to 'src/machine/machine.c')
-rw-r--r-- | src/machine/machine.c | 36 |
1 files changed, 28 insertions, 8 deletions
diff --git a/src/machine/machine.c b/src/machine/machine.c index b52ecd015c..7ab84607fb 100644 --- a/src/machine/machine.c +++ b/src/machine/machine.c @@ -19,23 +19,24 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>. ***/ +#include <errno.h> #include <string.h> #include <unistd.h> -#include <errno.h> #include "sd-messages.h" -#include "util.h" -#include "mkdir.h" -#include "hashmap.h" +#include "bus-error.h" +#include "bus-util.h" #include "fileio.h" +#include "formats-util.h" +#include "hashmap.h" +#include "mkdir.h" #include "special.h" +#include "terminal-util.h" #include "unit-name.h" -#include "bus-util.h" -#include "bus-error.h" -#include "machine.h" +#include "util.h" #include "machine-dbus.h" -#include "formats-util.h" +#include "machine.h" Machine* machine_new(Manager *manager, MachineClass class, const char *name) { Machine *m; @@ -571,6 +572,25 @@ int machine_openpt(Machine *m, int flags) { } } +int machine_open_terminal(Machine *m, const char *path, int mode) { + assert(m); + + switch (m->class) { + + case MACHINE_HOST: + return open_terminal(path, mode); + + case MACHINE_CONTAINER: + if (m->leader <= 0) + return -EINVAL; + + return open_terminal_in_namespace(m->leader, path, mode); + + default: + return -EOPNOTSUPP; + } +} + MachineOperation *machine_operation_unref(MachineOperation *o) { if (!o) return NULL; |