summaryrefslogtreecommitdiff
path: root/main/openvpn/src/openvpn/manage.c
diff options
context:
space:
mode:
Diffstat (limited to 'main/openvpn/src/openvpn/manage.c')
-rw-r--r--main/openvpn/src/openvpn/manage.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/main/openvpn/src/openvpn/manage.c b/main/openvpn/src/openvpn/manage.c
index 561c252b..855ed042 100644
--- a/main/openvpn/src/openvpn/manage.c
+++ b/main/openvpn/src/openvpn/manage.c
@@ -1105,6 +1105,19 @@ man_remote (struct management *man, const char **p)
}
}
+#ifdef TARGET_ANDROID
+static void
+man_network_change (struct management *man)
+{
+ if (man->persist.callback.network_change)
+ {
+ int fd = (*man->persist.callback.network_change)(man->persist.callback.arg);
+ man->connection.fdtosend = fd;
+ msg (M_CLIENT, "PROTECTFD: fd '%d' sent to be protected", fd);
+ }
+}
+#endif
+
static void
man_dispatch_command (struct management *man, struct status_output *so, const char **p, const int nparms)
{
@@ -1148,6 +1161,10 @@ man_dispatch_command (struct management *man, struct status_output *so, const ch
if (man_need (man, p, 1, 0))
man_signal (man, p[1]);
}
+ else if (streq (p[0], "network-change"))
+ {
+ man_network_change(man);
+ }
else if (streq (p[0], "load-stats"))
{
man_load_stats (man);