mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 07:22:58 +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 ) {
|
void setup_adapter( PDHCP_ADAPTER Adapter, struct client_lease *new_lease ) {
|
||||||
CHAR Buffer[200] = "SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters\\Interfaces\\";
|
CHAR Buffer[200] = "SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters\\Interfaces\\";
|
||||||
struct iaddr netmask;
|
struct iaddr netmask;
|
||||||
|
@ -569,6 +619,7 @@ bind_lease(struct interface_info *ip)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
set_name_servers( Adapter, new_lease );
|
set_name_servers( Adapter, new_lease );
|
||||||
|
set_domain( Adapter, new_lease );
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue