mirror of
https://github.com/OpenVPN/openvpn.git
synced 2025-05-09 05:31:05 +08:00
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
This commit is contained in:
parent
dc85dae67f
commit
75dfe3d7f7
10
error.c
10
error.c
@ -477,14 +477,16 @@ redirect_stdout_stderr (const char *file, bool append)
|
||||
{
|
||||
HANDLE log_handle;
|
||||
int log_fd;
|
||||
struct security_attributes sa;
|
||||
|
||||
init_security_attributes_allow_all (&sa);
|
||||
SECURITY_ATTRIBUTES saAttr;
|
||||
saAttr.nLength = sizeof(SECURITY_ATTRIBUTES);
|
||||
saAttr.bInheritHandle = TRUE;
|
||||
saAttr.lpSecurityDescriptor = NULL;
|
||||
|
||||
log_handle = CreateFile (file,
|
||||
GENERIC_WRITE,
|
||||
FILE_SHARE_READ,
|
||||
&sa.sa,
|
||||
&saAttr,
|
||||
append ? OPEN_ALWAYS : CREATE_ALWAYS,
|
||||
FILE_ATTRIBUTE_NORMAL,
|
||||
NULL);
|
||||
@ -505,10 +507,12 @@ redirect_stdout_stderr (const char *file, bool append)
|
||||
/* save original stderr for password prompts */
|
||||
orig_stderr = GetStdHandle (STD_ERROR_HANDLE);
|
||||
|
||||
#if 0 /* seems not be necessary with stdout/stderr redirection below*/
|
||||
/* set up for redirection */
|
||||
if (!SetStdHandle (STD_OUTPUT_HANDLE, log_handle)
|
||||
|| !SetStdHandle (STD_ERROR_HANDLE, log_handle))
|
||||
msg (M_ERR, "Error: cannot redirect stdout/stderr to --log file: %s", file);
|
||||
#endif
|
||||
|
||||
/* direct stdout/stderr to point to log_handle */
|
||||
log_fd = _open_osfhandle ((intptr_t)log_handle, _O_TEXT);
|
||||
|
@ -4750,8 +4750,9 @@ above.
|
||||
.\"*********************************************************
|
||||
.TP
|
||||
.B --register-dns
|
||||
Run ipconfig /flushdns and ipconfig /registerdns on
|
||||
connection initiation. This is known to kick Windows into
|
||||
Run net stop dnscache, net start dnscache, ipconfig /flushdns
|
||||
and ipconfig /registerdns on connection initiation.
|
||||
This is known to kick Windows into
|
||||
recognizing pushed DNS servers.
|
||||
.\"*********************************************************
|
||||
.TP
|
||||
|
@ -615,8 +615,8 @@ static const char usage_message[] =
|
||||
"--dhcp-pre-release : Ask Windows to release the previous TAP adapter lease on\n"
|
||||
" startup.\n"
|
||||
"--dhcp-release : Ask Windows to release the TAP adapter lease on shutdown.\n"
|
||||
"--register-dns : Run ipconfig /flushdns and ipconfig /registerdns on\n"
|
||||
" connection initiation.\n"
|
||||
"--register-dns : Run net stop dnscache, net start dnscache, ipconfig /flushdns\n"
|
||||
" and ipconfig /registerdns on connection initiation.\n"
|
||||
"--tap-sleep n : Sleep for n seconds after TAP adapter open before\n"
|
||||
" attempting to set adapter properties.\n"
|
||||
"--pause-exit : When run from a console window, pause before exiting.\n"
|
||||
|
20
tun.c
20
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 ();
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
dnl define the OpenVPN version
|
||||
define(PRODUCT_VERSION,[2.1.1n])
|
||||
define(PRODUCT_VERSION,[2.1.1o])
|
||||
dnl define the TAP version
|
||||
define(PRODUCT_TAP_ID,[tap0901])
|
||||
define(PRODUCT_TAP_WIN32_MIN_MAJOR,[9])
|
||||
|
1
win32.h
1
win32.h
@ -34,6 +34,7 @@
|
||||
#define NETSH_PATH_SUFFIX "\\system32\\netsh.exe"
|
||||
#define WIN_ROUTE_PATH_SUFFIX "\\system32\\route.exe"
|
||||
#define WIN_IPCONFIG_PATH_SUFFIX "\\system32\\ipconfig.exe"
|
||||
#define WIN_NET_PATH_SUFFIX "\\system32\\net.exe"
|
||||
|
||||
/*
|
||||
* Win32-specific OpenVPN code, targetted at the mingw
|
||||
|
Loading…
x
Reference in New Issue
Block a user