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