Signed-off-by: Anders Selhammer <[email protected]>
---
clock.c | 3 +++
ptp4l.c | 9 ++++++++-
transport.c | 7 +++++++
3 files changed, 18 insertions(+), 1 deletion(-)
diff --git a/clock.c b/clock.c
index 56bc79b..c494200 100644
--- a/clock.c
+++ b/clock.c
@@ -959,6 +959,9 @@ struct clock *clock_create(enum clock_type type, struct
config *config,
c->timestamping = timestamping;
required_modes = clock_required_modes(c);
STAILQ_FOREACH(iface, &config->interfaces, list) {
+ if (sk_reassociate_namespace(config_get_string(config,
iface->name, "network_namespace"))) {
+ return NULL;
+ }
rtnl_get_ts_device(iface->name, iface->ts_label);
ensure_ts_label(iface);
sk_get_ts_info(iface->ts_label, &iface->ts_info);
diff --git a/ptp4l.c b/ptp4l.c
index 3a9f084..598d71d 100644
--- a/ptp4l.c
+++ b/ptp4l.c
@@ -241,6 +241,10 @@ int main(int argc, char *argv[])
goto out;
}
+ if (sk_init_initial_namespace_fd() < 0) {
+ goto out;
+ }
+
clock = clock_create(type, cfg, req_phc);
if (!clock) {
fprintf(stderr, "failed to create a clock\n");
@@ -254,8 +258,11 @@ int main(int argc, char *argv[])
break;
}
out:
- if (clock)
+ if (clock) {
clock_destroy(clock);
+ }
+
+ sk_close_initial_namespace_fd();
config_destroy(cfg);
return err;
}
diff --git a/transport.c b/transport.c
index 9366fbf..4ae22f6 100644
--- a/transport.c
+++ b/transport.c
@@ -21,7 +21,10 @@
#include "transport.h"
#include "transport_private.h"
+#include "config.h"
+#include "print.h"
#include "raw.h"
+#include "sk.h"
#include "udp.h"
#include "udp6.h"
#include "uds.h"
@@ -34,6 +37,10 @@ int transport_close(struct transport *t, struct fdarray *fda)
int transport_open(struct transport *t, struct interface *iface,
struct fdarray *fda, enum timestamp_type tt)
{
+ if (sk_reassociate_namespace(config_get_string(t->cfg, iface->name,
"network_namespace"))) {
+ pr_err("sk_reassociate_namespace failed");
+ return -1;
+ }
return t->open(t, iface, fda, tt);
}
--
1.8.3.1
_______________________________________________
Linuxptp-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linuxptp-devel