From ed671b33199dfcd0290c768e43c8e10f507485fd Mon Sep 17 00:00:00 2001 From: Mikael Magnusson Date: Wed, 13 May 2020 17:34:23 +0200 Subject: Wg-user: Work-around listen_port mutex dead lock Problem with listen_port dead lock in wireguard-go. --- sysdep/unix/wg_user.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'sysdep/unix') diff --git a/sysdep/unix/wg_user.c b/sysdep/unix/wg_user.c index 9192f952..df2dafa6 100644 --- a/sysdep/unix/wg_user.c +++ b/sysdep/unix/wg_user.c @@ -212,8 +212,13 @@ static int user_put_device(wg_device *dev, byte **buf, uint *size) { wg_put_u16("set", 1, buf, size); - wg_put_key("private_key", dev->private_key, buf, size); - wg_put_u16("listen_port", dev->listen_port, buf, size); + if (dev->flags & WGDEVICE_HAS_PRIVATE_KEY) + wg_put_key("private_key", dev->private_key, buf, size); +#if 0 + /* Setting listen_port causes dead-lock in wireguard-go. */ + if (dev->flags & WGDEVICE_HAS_LISTEN_PORT) + wg_put_u16("listen_port", dev->listen_port, buf, size); +#endif wg_put_bool("replace_peers", dev->flags & WGDEVICE_REPLACE_PEERS, buf, size); wg_peer *peer = NULL; -- cgit v1.2.3