From 88cf839c90e59823c4fee1e70e5525b943287a10 Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Mon, 23 Apr 2018 16:37:42 +0200 Subject: Update application state based on wg-quick Signed-off-by: Jason A. Donenfeld --- app/tools/wg-quick.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'app/tools/wg-quick.c') diff --git a/app/tools/wg-quick.c b/app/tools/wg-quick.c index 204c3c0f..0610d12f 100644 --- a/app/tools/wg-quick.c +++ b/app/tools/wg-quick.c @@ -446,6 +446,14 @@ static void set_config(const char *iface, const char *config) exit(WIFEXITED(ret) ? WEXITSTATUS(ret) : EIO); } +static void broadcast_change(void) +{ + const char *pkg = getenv("CALLING_PACKAGE"); + + if (!pkg || strcmp(pkg, "com.wireguard.android")) + cmd("am broadcast -a com.wireguard.android.WGQUICK_CHANGE com.wireguard.android"); +} + static void print_search_paths(FILE *file, const char *prefix) { _cleanup_free_ char *paths = strdup(WG_CONFIG_SEARCH_PATHS); @@ -502,6 +510,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); + broadcast_change(); free(cleanup_iface); cleanup_iface = NULL; @@ -528,6 +537,7 @@ static void cmd_down(const char *iface) } del_if(iface); + broadcast_change(); exit(EXIT_SUCCESS); } -- cgit v1.2.3