X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=NetworkPkg%2FDnsDxe%2FDnsDhcp.c;h=c4add702ea7ad6cda02e3a9262f93b967bb0ec6d;hp=6b409ba5e3cc6ec545c1b35cdb4c779da7fb34c6;hb=e19ce3a2772d5a373279d02d43a3864400339b09;hpb=4720106b99f76d32f71ad52f77bf79b60e070128 diff --git a/NetworkPkg/DnsDxe/DnsDhcp.c b/NetworkPkg/DnsDxe/DnsDhcp.c index 6b409ba5e3..c4add702ea 100644 --- a/NetworkPkg/DnsDxe/DnsDhcp.c +++ b/NetworkPkg/DnsDxe/DnsDhcp.c @@ -14,152 +14,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. #include "DnsImpl.h" -/** - The callback function for the timer event used to get map. - - @param[in] Event The event this function is registered to. - @param[in] Context The context registered to the event. -**/ -VOID -EFIAPI -TimeoutToGetMap ( - IN EFI_EVENT Event, - IN VOID *Context - ) -{ - *((BOOLEAN *) Context) = TRUE; - return ; -} - -/** - Create an IP child, use it to start the auto configuration, then destroy it. - - @param[in] Controller The controller which has the service installed. - @param[in] Image The image handle used to open service. - - @retval EFI_SUCCESS The configuration is done. - @retval Others Other errors as indicated. -**/ -EFI_STATUS -EFIAPI -DnsStartIp4( - IN EFI_HANDLE Controller, - IN EFI_HANDLE Image - ) -{ - EFI_IP4_PROTOCOL *Ip4; - EFI_HANDLE Ip4Handle; - EFI_EVENT TimerToGetMap; - EFI_IP4_CONFIG_DATA Ip4ConfigData; - EFI_IP4_MODE_DATA Ip4Mode; - EFI_STATUS Status; - - BOOLEAN Timeout; - - // - // Get the Ip4ServiceBinding Protocol - // - Ip4Handle = NULL; - Ip4 = NULL; - TimerToGetMap = NULL; - - Timeout = FALSE; - - Status = NetLibCreateServiceChild ( - Controller, - Image, - &gEfiIp4ServiceBindingProtocolGuid, - &Ip4Handle - ); - - if (EFI_ERROR (Status)) { - return Status; - } - - Status = gBS->OpenProtocol ( - Ip4Handle, - &gEfiIp4ProtocolGuid, - (VOID **) &Ip4, - Controller, - Image, - EFI_OPEN_PROTOCOL_GET_PROTOCOL - ); - - if (EFI_ERROR (Status)) { - goto ON_EXIT; - } - - Ip4ConfigData.DefaultProtocol = EFI_IP_PROTO_ICMP; - Ip4ConfigData.AcceptAnyProtocol = FALSE; - Ip4ConfigData.AcceptIcmpErrors = FALSE; - Ip4ConfigData.AcceptBroadcast = FALSE; - Ip4ConfigData.AcceptPromiscuous = FALSE; - Ip4ConfigData.UseDefaultAddress = TRUE; - ZeroMem (&Ip4ConfigData.StationAddress, sizeof (EFI_IPv4_ADDRESS)); - ZeroMem (&Ip4ConfigData.SubnetMask, sizeof (EFI_IPv4_ADDRESS)); - Ip4ConfigData.TypeOfService = 0; - Ip4ConfigData.TimeToLive = 1; - Ip4ConfigData.DoNotFragment = FALSE; - Ip4ConfigData.RawData = FALSE; - Ip4ConfigData.ReceiveTimeout = 0; - Ip4ConfigData.TransmitTimeout = 0; - - Status = Ip4->Configure (Ip4, &Ip4ConfigData); - - if (Status == EFI_NO_MAPPING) { - Status = gBS->CreateEvent ( - EVT_NOTIFY_SIGNAL | EVT_TIMER, - TPL_CALLBACK, - TimeoutToGetMap, - &Timeout, - &TimerToGetMap - ); - - if (EFI_ERROR (Status)) { - goto ON_EXIT; - } - - Status = gBS->SetTimer ( - TimerToGetMap, - TimerRelative, - MultU64x32 (10000000, 5) - ); - - if (EFI_ERROR (Status)) { - goto ON_EXIT; - } - - while (!Timeout) { - Ip4->Poll (Ip4); - - if (!EFI_ERROR (Ip4->GetModeData (Ip4, &Ip4Mode, NULL, NULL)) && - Ip4Mode.IsConfigured) { - break; - } - } - - if (Timeout) { - Status = EFI_DEVICE_ERROR; - } - } - -ON_EXIT: - - if (TimerToGetMap != NULL) { - gBS->SetTimer (TimerToGetMap, TimerCancel, 0); - gBS->CloseEvent (TimerToGetMap); - } - - NetLibDestroyServiceChild ( - Controller, - Image, - &gEfiIp4ServiceBindingProtocolGuid, - Ip4Handle - ); - - return Status; -} - /** This function initialize the DHCP4 message instance. @@ -468,16 +322,6 @@ GetDns4ServerFromDhcp4 ( return EFI_NO_MEDIA; } - // - // Start the auto configuration if UseDefaultSetting. - // - if (Instance->Dns4CfgData.UseDefaultSetting) { - Status = DnsStartIp4 (Controller, Image); - if (EFI_ERROR(Status)) { - return Status; - } - } - // // Create a Mnp child instance, get the protocol and config for it. //