|
Zbigniew Jędrzejewski-Szmek |
f1004d |
From 85614d663e4a09beee1c78aaa67f02943d50d5a0 Mon Sep 17 00:00:00 2001
|
|
Zbigniew Jędrzejewski-Szmek |
f1004d |
From: Tom Gundersen <teg@jklm.no>
|
|
Zbigniew Jędrzejewski-Szmek |
f1004d |
Date: Wed, 8 Oct 2014 15:01:07 +0200
|
|
Zbigniew Jędrzejewski-Szmek |
f1004d |
Subject: [PATCH] nspawn: copy /dev/net/tun from host
|
|
Zbigniew Jędrzejewski-Szmek |
f1004d |
|
|
Zbigniew Jędrzejewski-Szmek |
f1004d |
This enables tuntap support in the container (assumning the necessary capabilities are in place).
|
|
Zbigniew Jędrzejewski-Szmek |
f1004d |
---
|
|
Zbigniew Jędrzejewski-Szmek |
f1004d |
src/nspawn/nspawn.c | 16 ++++++++++++----
|
|
Zbigniew Jędrzejewski-Szmek |
f1004d |
1 file changed, 12 insertions(+), 4 deletions(-)
|
|
Zbigniew Jędrzejewski-Szmek |
f1004d |
|
|
Zbigniew Jędrzejewski-Szmek |
f1004d |
diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c
|
|
Zbigniew Jędrzejewski-Szmek |
f1004d |
index 34436b82a2..da4c116f36 100644
|
|
Zbigniew Jędrzejewski-Szmek |
f1004d |
--- a/src/nspawn/nspawn.c
|
|
Zbigniew Jędrzejewski-Szmek |
f1004d |
+++ b/src/nspawn/nspawn.c
|
|
Zbigniew Jędrzejewski-Szmek |
f1004d |
@@ -1101,7 +1101,8 @@ static int copy_devnodes(const char *dest) {
|
|
Zbigniew Jędrzejewski-Szmek |
f1004d |
"full\0"
|
|
Zbigniew Jędrzejewski-Szmek |
f1004d |
"random\0"
|
|
Zbigniew Jędrzejewski-Szmek |
f1004d |
"urandom\0"
|
|
Zbigniew Jędrzejewski-Szmek |
f1004d |
- "tty\0";
|
|
Zbigniew Jędrzejewski-Szmek |
f1004d |
+ "tty\0"
|
|
Zbigniew Jędrzejewski-Szmek |
f1004d |
+ "net/tun\0";
|
|
Zbigniew Jędrzejewski-Szmek |
f1004d |
|
|
Zbigniew Jędrzejewski-Szmek |
f1004d |
const char *d;
|
|
Zbigniew Jędrzejewski-Szmek |
f1004d |
int r = 0;
|
|
Zbigniew Jędrzejewski-Szmek |
f1004d |
@@ -1132,10 +1133,17 @@ static int copy_devnodes(const char *dest) {
|
|
Zbigniew Jędrzejewski-Szmek |
f1004d |
log_error("%s is not a char or block device, cannot copy", from);
|
|
Zbigniew Jędrzejewski-Szmek |
f1004d |
return -EIO;
|
|
Zbigniew Jędrzejewski-Szmek |
f1004d |
|
|
Zbigniew Jędrzejewski-Szmek |
f1004d |
- } else if (mknod(to, st.st_mode, st.st_rdev) < 0) {
|
|
Zbigniew Jędrzejewski-Szmek |
f1004d |
+ } else {
|
|
Zbigniew Jędrzejewski-Szmek |
f1004d |
+ r = mkdir_parents(to, 0775);
|
|
Zbigniew Jędrzejewski-Szmek |
f1004d |
+ if (r < 0) {
|
|
Zbigniew Jędrzejewski-Szmek |
f1004d |
+ log_error("Failed to create parent directory of %s: %s", to, strerror(-r));
|
|
Zbigniew Jędrzejewski-Szmek |
f1004d |
+ return -r;
|
|
Zbigniew Jędrzejewski-Szmek |
f1004d |
+ }
|
|
Zbigniew Jędrzejewski-Szmek |
f1004d |
|
|
Zbigniew Jędrzejewski-Szmek |
f1004d |
- log_error("mknod(%s) failed: %m", dest);
|
|
Zbigniew Jędrzejewski-Szmek |
f1004d |
- return -errno;
|
|
Zbigniew Jędrzejewski-Szmek |
f1004d |
+ if (mknod(to, st.st_mode, st.st_rdev) < 0) {
|
|
Zbigniew Jędrzejewski-Szmek |
f1004d |
+ log_error("mknod(%s) failed: %m", dest);
|
|
Zbigniew Jędrzejewski-Szmek |
f1004d |
+ return -errno;
|
|
Zbigniew Jędrzejewski-Szmek |
f1004d |
+ }
|
|
Zbigniew Jędrzejewski-Szmek |
f1004d |
}
|
|
Zbigniew Jędrzejewski-Szmek |
f1004d |
}
|
|
Zbigniew Jędrzejewski-Szmek |
f1004d |
|