mirror of
https://github.com/reactos/reactos.git
synced 2025-02-23 08:55:19 +00:00
[DHCPCSVC] Add registry key for DHCP domain if present in DHCP reply. By Peter Hater. CORE-10440
svn path=/trunk/; revision=72697
This commit is contained in:
parent
bae3687192
commit
b183bab8f7
1 changed files with 51 additions and 0 deletions
|
@ -447,6 +447,56 @@ void set_name_servers( PDHCP_ADAPTER Adapter, struct client_lease *new_lease ) {
|
|||
|
||||
}
|
||||
|
||||
void
|
||||
set_domain(PDHCP_ADAPTER Adapter,
|
||||
struct client_lease *new_lease)
|
||||
{
|
||||
CHAR Buffer1[MAX_PATH] = "SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters\\Interfaces\\";
|
||||
CHAR Buffer2[MAX_PATH] = "SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters";
|
||||
HKEY RegKey1, RegKey2;
|
||||
|
||||
strcat(Buffer1, Adapter->DhclientInfo.name);
|
||||
|
||||
if (RegOpenKeyExA(HKEY_LOCAL_MACHINE, Buffer1, 0, KEY_WRITE, &RegKey1 ) != ERROR_SUCCESS)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (RegOpenKeyExA(HKEY_LOCAL_MACHINE, Buffer2, 0, KEY_WRITE, &RegKey2 ) != ERROR_SUCCESS)
|
||||
{
|
||||
RegCloseKey(RegKey1);
|
||||
return;
|
||||
}
|
||||
|
||||
if (new_lease->options[DHO_DOMAIN_NAME].len)
|
||||
{
|
||||
DH_DbgPrint(MID_TRACE, ("Setting DhcpDomain: %s\n", new_lease->options[DHO_DOMAIN_NAME].data));
|
||||
|
||||
RegSetValueExA(RegKey1,
|
||||
"DhcpDomain",
|
||||
0,
|
||||
REG_SZ,
|
||||
(LPBYTE)new_lease->options[DHO_DOMAIN_NAME].data,
|
||||
new_lease->options[DHO_DOMAIN_NAME].len);
|
||||
|
||||
RegSetValueExA(RegKey2,
|
||||
"DhcpDomain",
|
||||
0,
|
||||
REG_SZ,
|
||||
(LPBYTE)new_lease->options[DHO_DOMAIN_NAME].data,
|
||||
new_lease->options[DHO_DOMAIN_NAME].len);
|
||||
}
|
||||
else
|
||||
{
|
||||
RegDeleteValueW(RegKey1, L"DhcpDomain");
|
||||
RegDeleteValueW(RegKey2, L"DhcpDomain");
|
||||
}
|
||||
|
||||
RegCloseKey(RegKey1);
|
||||
RegCloseKey(RegKey2);
|
||||
|
||||
}
|
||||
|
||||
void setup_adapter( PDHCP_ADAPTER Adapter, struct client_lease *new_lease ) {
|
||||
CHAR Buffer[200] = "SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters\\Interfaces\\";
|
||||
struct iaddr netmask;
|
||||
|
@ -569,6 +619,7 @@ bind_lease(struct interface_info *ip)
|
|||
return;
|
||||
}
|
||||
set_name_servers( Adapter, new_lease );
|
||||
set_domain( Adapter, new_lease );
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
Loading…
Reference in a new issue