summaryrefslogtreecommitdiffstats
path: root/tun.c
diff options
context:
space:
mode:
authorJames Yonan <james@openvpn.net>2010-07-27 21:46:34 +0000
committerJames Yonan <james@openvpn.net>2010-07-27 21:46:34 +0000
commit75dfe3d7f73279ddefb533f2e3b4a4cce4e9802a (patch)
tree817f286a4c36cf37c1f05547b22260f5ff5518fd /tun.c
parentdc85dae67ff8afcce2bb07cdbd7bf1750525820a (diff)
downloadopenvpn-75dfe3d7f73279ddefb533f2e3b4a4cce4e9802a.tar.gz
openvpn-75dfe3d7f73279ddefb533f2e3b4a4cce4e9802a.tar.xz
openvpn-75dfe3d7f73279ddefb533f2e3b4a4cce4e9802a.zip
Added "net stop dnscache" and "net start dnscache" in front
of existing --register-dns commands. git-svn-id: http://svn.openvpn.net/projects/openvpn/branches/BETA21/openvpn@6352 e7ae566f-a301-0410-adde-c780ea21d3b5
Diffstat (limited to 'tun.c')
-rw-r--r--tun.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/tun.c b/tun.c
index b05fcf8..7a87256 100644
--- a/tun.c
+++ b/tun.c
@@ -3390,17 +3390,37 @@ ipconfig_register_dns (const struct env_set *es)
const char err[] = "ERROR: Windows ipconfig command failed";
netcmd_semaphore_lock ();
+
argv_init (&argv);
+
+ argv_printf (&argv, "%s%sc stop dnscache",
+ get_win_sys_path(),
+ WIN_NET_PATH_SUFFIX);
+ argv_msg (D_TUNTAP_INFO, &argv);
+ status = openvpn_execve_check (&argv, es, 0, err);
+ argv_reset(&argv);
+
+ argv_printf (&argv, "%s%sc start dnscache",
+ get_win_sys_path(),
+ WIN_NET_PATH_SUFFIX);
+ argv_msg (D_TUNTAP_INFO, &argv);
+ status = openvpn_execve_check (&argv, es, 0, err);
+ argv_reset(&argv);
+
argv_printf (&argv, "%s%sc /flushdns",
get_win_sys_path(),
WIN_IPCONFIG_PATH_SUFFIX);
+ argv_msg (D_TUNTAP_INFO, &argv);
status = openvpn_execve_check (&argv, es, 0, err);
argv_reset(&argv);
+
argv_printf (&argv, "%s%sc /registerdns",
get_win_sys_path(),
WIN_IPCONFIG_PATH_SUFFIX);
+ argv_msg (D_TUNTAP_INFO, &argv);
status = openvpn_execve_check (&argv, es, 0, err);
argv_reset(&argv);
+
netcmd_semaphore_release ();
}