summaryrefslogtreecommitdiffstats
path: root/MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Config2Impl.c
diff options
context:
space:
mode:
Diffstat (limited to 'MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Config2Impl.c')
-rw-r--r--MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Config2Impl.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Config2Impl.c b/MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Config2Impl.c
index 028c61de06..f91a935634 100644
--- a/MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Config2Impl.c
+++ b/MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Config2Impl.c
@@ -1060,7 +1060,6 @@ Ip4Config2GetIfInfo (
IN VOID *Data OPTIONAL
)
{
-
IP4_SERVICE *IpSb;
UINTN Length;
IP4_CONFIG2_DATA_ITEM *Item;
@@ -1179,6 +1178,7 @@ Ip4Config2SetPolicy (
DataItem->Data.Ptr = NULL;
DataItem->DataSize = 0;
DataItem->Status = EFI_NOT_FOUND;
+ SET_DATA_ATTRIB (DataItem->Attribute, DATA_ATTRIB_VOLATILE);
NetMapIterate (&DataItem->EventMap, Ip4Config2SignalEvent, NULL);
} else {
//
@@ -1459,10 +1459,20 @@ Ip4Config2SetDnsServer (
IN VOID *Data
)
{
+ IP4_CONFIG2_DATA_ITEM *Item;
+
+ Item = NULL;
+
if (Instance->Policy != Ip4Config2PolicyStatic) {
return EFI_WRITE_PROTECTED;
}
+ Item = &Instance->DataItem[Ip4Config2DataTypeDnsServer];
+
+ if (DATA_ATTRIB_SET (Item->Attribute, DATA_ATTRIB_VOLATILE)) {
+ REMOVE_DATA_ATTRIB (Item->Attribute, DATA_ATTRIB_VOLATILE);
+ }
+
return Ip4Config2SetDnsServerWorker (Instance, DataSize, Data);
}