diff options
Diffstat (limited to 'src/tools/config.c')
-rw-r--r-- | src/tools/config.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/tools/config.c b/src/tools/config.c index 1daa5ea..76a74f2 100644 --- a/src/tools/config.c +++ b/src/tools/config.c @@ -19,6 +19,7 @@ #include "containers.h" #include "ipc.h" #include "encoding.h" +#include "netns.h" #define COMMENT_CHAR '#' @@ -392,6 +393,8 @@ static bool process_line(struct config_ctx *ctx, const char *line) if (ctx->is_device_section) { if (key_match("ListenPort")) ret = parse_port(&ctx->device->listen_port, &ctx->device->flags, value); + else if (key_match("TransitNetns")) + ret = netns_parse(&ctx->device->transit_netns, value); else if (key_match("FwMark")) ret = parse_fwmark(&ctx->device->fwmark, &ctx->device->flags, value); else if (key_match("PrivateKey")) { @@ -525,6 +528,11 @@ struct wgdevice *config_read_cmd(char *argv[], int argc) goto error; argv += 2; argc -= 2; + } else if (!strcmp(argv[0], "transit-netns") && argc >= 2 && !peer) { + if (!netns_parse(&device->transit_netns, argv[1])) + goto error; + argv += 2; + argc -= 2; } else if (!strcmp(argv[0], "fwmark") && argc >= 2 && !peer) { if (!parse_fwmark(&device->fwmark, &device->flags, argv[1])) goto error; |