diff options
author | Mikael Magnusson <mikma@users.sourceforge.net> | 2019-04-11 01:26:03 +0200 |
---|---|---|
committer | Mikael Magnusson <mikma@users.sourceforge.net> | 2020-09-13 18:05:34 +0200 |
commit | 28e3973e0a652fef3499c6f5ca89755d960376fe (patch) | |
tree | 24cf230bacd94ff8cc3ee450d194a9feeffeadd3 /proto/wireguard | |
parent | c1a3b147131d6c26000bebf87674c8368b6abc1e (diff) |
Wireguard: Fixes
Diffstat (limited to 'proto/wireguard')
-rw-r--r-- | proto/wireguard/wireguard.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/proto/wireguard/wireguard.c b/proto/wireguard/wireguard.c index e4efdd66..f0ac45e6 100644 --- a/proto/wireguard/wireguard.c +++ b/proto/wireguard/wireguard.c @@ -210,7 +210,7 @@ user_put_device(wg_device *dev, byte **buf, uint *size) } wg_puts("\n", buf, size); - if (size > 0) + if (*size > 0) return 0; else return -1; @@ -280,7 +280,7 @@ int get_device(struct wg_proto *p, wg_device **pdev, const char *device_name) wg_key_from_base64(dev->private_key, c->private_key); wg_generate_public_key(dev->public_key, dev->private_key); } - if (dev->listen_port) + if (c->listen_port) dev->flags |= WGDEVICE_HAS_LISTEN_PORT; dev->listen_port = c->listen_port; debug("listen port %d\n", c->listen_port); @@ -371,6 +371,14 @@ wg_if_notify(struct proto *P, unsigned flags, struct iface *i) debug("WG: found ifname\n"); p->iface = i; } + + if (flags & IF_CHANGE_UP) + { + debug("WG: IF_CHANGE_UP %s\n", i->name); + + int res = set_device(p); + log(L_TRACE "WG: wg_set_device %d", res); + } } static void @@ -956,6 +964,8 @@ wg_shutdown(struct proto *P) int res = set_device(p); log(L_TRACE "WG: flush wg_set_device %d", res); } + + return PS_DOWN; } static void |