]> git.proxmox.com Git - mirror_edk2.git/commitdiff
MdeModulePkg: Clean the previous address since the policy changed
authorJiaxin Wu <jiaxin.wu@intel.com>
Wed, 21 Sep 2016 07:12:21 +0000 (15:12 +0800)
committerJiaxin Wu <jiaxin.wu@intel.com>
Mon, 26 Sep 2016 13:25:16 +0000 (21:25 +0800)
The previous DNS server data will be retained after the policy
changes from Dhcp to Static. This patch is used to clean the
previous dhcp configuration data.

Cc: Hegde Nagaraj P <nagaraj-p.hegde@hpe.com>
Cc: Subramanian Sriram <sriram-s@hpe.com>
Cc: Ye Ting <ting.ye@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jiaxin Wu <jiaxin.wu@intel.com>
Reviewed-by: Sriram Subramanian <sriram-s@hpe.com>
Reviewed-by: Hegde Nagaraj P <nagaraj-p.hegde@hpe.com>
Tested-by: Hegde Nagaraj P <nagaraj-p.hegde@hpe.com>
MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Config2Impl.c

index 75ad3011d0bcc9546e4a47d568addb1168cc499c..97b555b5fe8bfe15b2a1dc27683ac00ad67baf34 100644 (file)
@@ -1146,39 +1146,39 @@ Ip4Config2SetPolicy (
       return EFI_ABORTED;\r
     }\r
   } else {\r
+    //\r
+    // The policy is changed. Clean the ManualAddress, Gateway and DnsServers, \r
+    // shrink the variable data size, and fire up all the related events.\r
+    //\r
+    DataItem           = &Instance->DataItem[Ip4Config2DataTypeManualAddress];\r
+    if (DataItem->Data.Ptr != NULL) {\r
+      FreePool (DataItem->Data.Ptr);\r
+    }\r
+    DataItem->Data.Ptr = NULL;\r
+    DataItem->DataSize = 0;\r
+    DataItem->Status   = EFI_NOT_FOUND;\r
+    NetMapIterate (&DataItem->EventMap, Ip4Config2SignalEvent, NULL);\r
+\r
+    DataItem           = &Instance->DataItem[Ip4Config2DataTypeGateway];\r
+    if (DataItem->Data.Ptr != NULL) {\r
+      FreePool (DataItem->Data.Ptr);\r
+    }\r
+    DataItem->Data.Ptr = NULL;\r
+    DataItem->DataSize = 0;\r
+    DataItem->Status   = EFI_NOT_FOUND;\r
+    NetMapIterate (&DataItem->EventMap, Ip4Config2SignalEvent, NULL);\r
+\r
+    DataItem           = &Instance->DataItem[Ip4Config2DataTypeDnsServer];\r
+    if (DataItem->Data.Ptr != NULL) {\r
+      FreePool (DataItem->Data.Ptr);\r
+    }\r
+    DataItem->Data.Ptr = NULL;\r
+    DataItem->DataSize = 0;\r
+    DataItem->Status   = EFI_NOT_FOUND;\r
+    NetMapIterate (&DataItem->EventMap, Ip4Config2SignalEvent, NULL);\r
+    \r
     if (NewPolicy == Ip4Config2PolicyDhcp) {\r
-      //\r
-      // The policy is changed from static to dhcp:\r
-      // Clean the ManualAddress, Gateway and DnsServers, shrink the variable\r
-      // data size, and fire up all the related events.\r
-      //\r
-      DataItem           = &Instance->DataItem[Ip4Config2DataTypeManualAddress];\r
-      if (DataItem->Data.Ptr != NULL) {\r
-        FreePool (DataItem->Data.Ptr);\r
-      }\r
-      DataItem->Data.Ptr = NULL;\r
-      DataItem->DataSize = 0;\r
-      DataItem->Status   = EFI_NOT_FOUND;\r
-      NetMapIterate (&DataItem->EventMap, Ip4Config2SignalEvent, NULL);\r
-\r
-      DataItem           = &Instance->DataItem[Ip4Config2DataTypeGateway];\r
-      if (DataItem->Data.Ptr != NULL) {\r
-        FreePool (DataItem->Data.Ptr);\r
-      }\r
-      DataItem->Data.Ptr = NULL;\r
-      DataItem->DataSize = 0;\r
-      DataItem->Status   = EFI_NOT_FOUND;\r
-      NetMapIterate (&DataItem->EventMap, Ip4Config2SignalEvent, NULL);\r
-\r
-      DataItem           = &Instance->DataItem[Ip4Config2DataTypeDnsServer];\r
-      if (DataItem->Data.Ptr != NULL) {\r
-        FreePool (DataItem->Data.Ptr);\r
-      }\r
-      DataItem->Data.Ptr = NULL;\r
-      DataItem->DataSize = 0;\r
-      DataItem->Status   = EFI_NOT_FOUND;\r
       SET_DATA_ATTRIB (DataItem->Attribute, DATA_ATTRIB_VOLATILE);\r
-      NetMapIterate (&DataItem->EventMap, Ip4Config2SignalEvent, NULL);\r
     } else {\r
       //\r
       // The policy is changed from dhcp to static. Stop the DHCPv4 process\r