X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=NetworkPkg%2FHttpDxe%2FHttpDns.c;h=59a2784e6a40ade69481e8da558f05bed7837717;hb=d1050b9dff1cace252aff86630bfdb59dff5f507;hp=5f092c00e300837098393d5230b1331252bf82b4;hpb=2f88bd3a1296c522317f1c21377876de63de5be7;p=mirror_edk2.git diff --git a/NetworkPkg/HttpDxe/HttpDns.c b/NetworkPkg/HttpDxe/HttpDns.c index 5f092c00e3..59a2784e6a 100644 --- a/NetworkPkg/HttpDxe/HttpDns.c +++ b/NetworkPkg/HttpDxe/HttpDns.c @@ -23,23 +23,22 @@ SPDX-License-Identifier: BSD-2-Clause-Patent **/ EFI_STATUS HttpDns4 ( - IN HTTP_PROTOCOL *HttpInstance, - IN CHAR16 *HostName, - OUT EFI_IPv4_ADDRESS *IpAddress + IN HTTP_PROTOCOL *HttpInstance, + IN CHAR16 *HostName, + OUT EFI_IPv4_ADDRESS *IpAddress ) { - EFI_STATUS Status; - EFI_DNS4_PROTOCOL *Dns4; - EFI_DNS4_CONFIG_DATA Dns4CfgData; - EFI_DNS4_COMPLETION_TOKEN Token; - BOOLEAN IsDone; - HTTP_SERVICE *Service; - EFI_HANDLE Dns4Handle; - EFI_IP4_CONFIG2_PROTOCOL *Ip4Config2; - UINTN DnsServerListCount; - EFI_IPv4_ADDRESS *DnsServerList; - UINTN DataSize; - + EFI_STATUS Status; + EFI_DNS4_PROTOCOL *Dns4; + EFI_DNS4_CONFIG_DATA Dns4CfgData; + EFI_DNS4_COMPLETION_TOKEN Token; + BOOLEAN IsDone; + HTTP_SERVICE *Service; + EFI_HANDLE Dns4Handle; + EFI_IP4_CONFIG2_PROTOCOL *Ip4Config2; + UINTN DnsServerListCount; + EFI_IPv4_ADDRESS *DnsServerList; + UINTN DataSize; Service = HttpInstance->Service; ASSERT (Service != NULL); @@ -51,7 +50,7 @@ HttpDns4 ( // // Get DNS server list from EFI IPv4 Configuration II protocol. // - Status = gBS->HandleProtocol (Service->ControllerHandle, &gEfiIp4Config2ProtocolGuid, (VOID **) &Ip4Config2); + Status = gBS->HandleProtocol (Service->ControllerHandle, &gEfiIp4Config2ProtocolGuid, (VOID **)&Ip4Config2); if (!EFI_ERROR (Status)) { // // Get the required size. @@ -64,7 +63,7 @@ HttpDns4 ( return EFI_OUT_OF_RESOURCES; } - Status = Ip4Config2->GetData (Ip4Config2, Ip4Config2DataTypeDnsServer, &DataSize, DnsServerList); + Status = Ip4Config2->GetData (Ip4Config2, Ip4Config2DataTypeDnsServer, &DataSize, DnsServerList); if (EFI_ERROR (Status)) { FreePool (DnsServerList); DnsServerList = NULL; @@ -93,7 +92,7 @@ HttpDns4 ( Status = gBS->OpenProtocol ( Dns4Handle, &gEfiDns4ProtocolGuid, - (VOID **) &Dns4, + (VOID **)&Dns4, Service->Ip4DriverBindingHandle, Service->ControllerHandle, EFI_OPEN_PROTOCOL_BY_DRIVER @@ -113,12 +112,13 @@ HttpDns4 ( IP4_COPY_ADDRESS (&Dns4CfgData.StationIp, &HttpInstance->IPv4Node.LocalAddress); IP4_COPY_ADDRESS (&Dns4CfgData.SubnetMask, &HttpInstance->IPv4Node.LocalSubnet); } - Dns4CfgData.EnableDnsCache = TRUE; - Dns4CfgData.Protocol = EFI_IP_PROTO_UDP; - Status = Dns4->Configure ( - Dns4, - &Dns4CfgData - ); + + Dns4CfgData.EnableDnsCache = TRUE; + Dns4CfgData.Protocol = EFI_IP_PROTO_UDP; + Status = Dns4->Configure ( + Dns4, + &Dns4CfgData + ); if (EFI_ERROR (Status)) { goto Exit; } @@ -143,7 +143,7 @@ HttpDns4 ( // Token.Status = EFI_NOT_READY; IsDone = FALSE; - Status = Dns4->HostNameToIp (Dns4, HostName, &Token); + Status = Dns4->HostNameToIp (Dns4, HostName, &Token); if (EFI_ERROR (Status)) { goto Exit; } @@ -161,10 +161,12 @@ HttpDns4 ( Status = EFI_DEVICE_ERROR; goto Exit; } - if (Token.RspData.H2AData->IpCount == 0 || Token.RspData.H2AData->IpList == NULL) { + + if ((Token.RspData.H2AData->IpCount == 0) || (Token.RspData.H2AData->IpList == NULL)) { Status = EFI_DEVICE_ERROR; goto Exit; } + // // We just return the first IP address from DNS protocol. // @@ -177,10 +179,12 @@ Exit: if (Token.Event != NULL) { gBS->CloseEvent (Token.Event); } + if (Token.RspData.H2AData != NULL) { if (Token.RspData.H2AData->IpList != NULL) { FreePool (Token.RspData.H2AData->IpList); } + FreePool (Token.RspData.H2AData); } @@ -226,43 +230,42 @@ Exit: **/ EFI_STATUS HttpDns6 ( - IN HTTP_PROTOCOL *HttpInstance, - IN CHAR16 *HostName, - OUT EFI_IPv6_ADDRESS *IpAddress + IN HTTP_PROTOCOL *HttpInstance, + IN CHAR16 *HostName, + OUT EFI_IPv6_ADDRESS *IpAddress ) { - EFI_STATUS Status; - HTTP_SERVICE *Service; - EFI_DNS6_PROTOCOL *Dns6; - EFI_DNS6_CONFIG_DATA Dns6ConfigData; - EFI_DNS6_COMPLETION_TOKEN Token; - EFI_HANDLE Dns6Handle; - EFI_IP6_CONFIG_PROTOCOL *Ip6Config; - EFI_IPv6_ADDRESS *DnsServerList; - UINTN DnsServerListCount; - UINTN DataSize; - BOOLEAN IsDone; - + EFI_STATUS Status; + HTTP_SERVICE *Service; + EFI_DNS6_PROTOCOL *Dns6; + EFI_DNS6_CONFIG_DATA Dns6ConfigData; + EFI_DNS6_COMPLETION_TOKEN Token; + EFI_HANDLE Dns6Handle; + EFI_IP6_CONFIG_PROTOCOL *Ip6Config; + EFI_IPv6_ADDRESS *DnsServerList; + UINTN DnsServerListCount; + UINTN DataSize; + BOOLEAN IsDone; Service = HttpInstance->Service; ASSERT (Service != NULL); - DnsServerList = NULL; - DnsServerListCount = 0; - Dns6 = NULL; - Dns6Handle = NULL; + DnsServerList = NULL; + DnsServerListCount = 0; + Dns6 = NULL; + Dns6Handle = NULL; ZeroMem (&Token, sizeof (EFI_DNS6_COMPLETION_TOKEN)); // // Get DNS server list from EFI IPv6 Configuration protocol. // - Status = gBS->HandleProtocol (Service->ControllerHandle, &gEfiIp6ConfigProtocolGuid, (VOID **) &Ip6Config); + Status = gBS->HandleProtocol (Service->ControllerHandle, &gEfiIp6ConfigProtocolGuid, (VOID **)&Ip6Config); if (!EFI_ERROR (Status)) { // // Get the required size. // DataSize = 0; - Status = Ip6Config->GetData (Ip6Config, Ip6ConfigDataTypeDnsServer, &DataSize, NULL); + Status = Ip6Config->GetData (Ip6Config, Ip6ConfigDataTypeDnsServer, &DataSize, NULL); if (Status == EFI_BUFFER_TOO_SMALL) { DnsServerList = AllocatePool (DataSize); if (DnsServerList == NULL) { @@ -295,7 +298,7 @@ HttpDns6 ( Status = gBS->OpenProtocol ( Dns6Handle, &gEfiDns6ProtocolGuid, - (VOID **) &Dns6, + (VOID **)&Dns6, Service->Ip6DriverBindingHandle, Service->ControllerHandle, EFI_OPEN_PROTOCOL_BY_DRIVER @@ -358,10 +361,12 @@ HttpDns6 ( Status = EFI_DEVICE_ERROR; goto Exit; } - if (Token.RspData.H2AData->IpCount == 0 || Token.RspData.H2AData->IpList == NULL) { + + if ((Token.RspData.H2AData->IpCount == 0) || (Token.RspData.H2AData->IpList == NULL)) { Status = EFI_DEVICE_ERROR; goto Exit; } + // // We just return the first IPv6 address from DNS protocol. // @@ -374,10 +379,12 @@ Exit: if (Token.Event != NULL) { gBS->CloseEvent (Token.Event); } + if (Token.RspData.H2AData != NULL) { if (Token.RspData.H2AData->IpList != NULL) { FreePool (Token.RspData.H2AData->IpList); } + FreePool (Token.RspData.H2AData); }