aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2018-05-31 16:38:06 +0200
committerJason A. Donenfeld <Jason@zx2c4.com>2018-05-31 16:38:08 +0200
commit2044bb026d7af480bc00e7849803f0229641e82a (patch)
tree78e5214231913f384337d3a47fe1a79d980629c7 /src
parentwg: constanter time encoding (diff)
downloadwireguard-tools-2044bb026d7af480bc00e7849803f0229641e82a.tar.xz
wireguard-tools-2044bb026d7af480bc00e7849803f0229641e82a.zip
wg-quick: android: delay setting users until end
`ndc users add` eventually invokes SOCK_DESTROY on user sockets, causing them to reconnect. By delaying this until after routes are set, we ensure that the sockets reconnect using the tunnel, rather than the old route. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to 'src')
-rw-r--r--src/wg-quick/android.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/wg-quick/android.c b/src/wg-quick/android.c
index 25f8f5f..cd43a13 100644
--- a/src/wg-quick/android.c
+++ b/src/wg-quick/android.c
@@ -280,7 +280,11 @@ static void up_if(unsigned int *netid, const char *iface)
cndc("interface setcfg %s up", iface);
cndc("network create %u vpn 1 1", *netid);
cndc("network interface add %u %s", *netid, iface);
- cndc("network users add %u 0-99999", *netid);
+}
+
+static void set_users(unsigned int netid)
+{
+ cndc("network users add %u 0-99999", netid);
}
static void set_dnses(unsigned int netid, const char *dnses)
@@ -510,6 +514,7 @@ static void cmd_up(const char *iface, const char *config, unsigned int mtu, cons
set_dnses(netid, dnses);
set_routes(iface, netid);
set_mtu(iface, mtu);
+ set_users(netid);
broadcast_change();
free(cleanup_iface);