From 152f2d5e4546b43f5e842d8538c90055c36dcd19 Mon Sep 17 00:00:00 2001 From: fanwang2 Date: Mon, 18 Dec 2017 09:20:26 +0800 Subject: NetworkPkg: Update Api from NetLibDetectMedia to NetLibDetectMediaWaitTimeout. Since new Api NetLibDetectMediaWaitTimeout was involved to support connecting state handling, and it is forward compatible. So apply this Api in NetworkPkg. V2: *Define time period in a macro instead of hard code. Cc: Ye Ting Cc: Fu Siyuan Cc: Wu Jiaxin Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Wang Fan Reviewed-by: Fu Siyuan Signed-off-by: fanwang2 --- NetworkPkg/DnsDxe/DnsDhcp.c | 16 ++++++++-------- NetworkPkg/DnsDxe/DnsDhcp.h | 2 ++ 2 files changed, 10 insertions(+), 8 deletions(-) (limited to 'NetworkPkg/DnsDxe') diff --git a/NetworkPkg/DnsDxe/DnsDhcp.c b/NetworkPkg/DnsDxe/DnsDhcp.c index 93779befa7..951477b78c 100644 --- a/NetworkPkg/DnsDxe/DnsDhcp.c +++ b/NetworkPkg/DnsDxe/DnsDhcp.c @@ -269,7 +269,7 @@ GetDns4ServerFromDhcp4 ( EFI_STATUS Status; EFI_HANDLE Image; EFI_HANDLE Controller; - BOOLEAN MediaPresent; + EFI_STATUS MediaStatus; EFI_HANDLE MnpChildHandle; EFI_MANAGED_NETWORK_PROTOCOL *Mnp; EFI_MANAGED_NETWORK_CONFIG_DATA MnpConfigData; @@ -316,9 +316,9 @@ GetDns4ServerFromDhcp4 ( // // Check media. // - MediaPresent = TRUE; - NetLibDetectMedia (Controller, &MediaPresent); - if (!MediaPresent) { + MediaStatus = EFI_SUCCESS; + NetLibDetectMediaWaitTimeout (Controller, DNS_CHECK_MEDIA_GET_DHCP_WAITING_TIME, &MediaStatus); + if (MediaStatus != EFI_SUCCESS) { return EFI_NO_MEDIA; } @@ -620,7 +620,7 @@ GetDns6ServerFromDhcp6 ( EFI_DHCP6_PACKET_OPTION *Oro; EFI_DHCP6_RETRANSMISSION InfoReqReXmit; EFI_EVENT Timer; - BOOLEAN MediaPresent; + EFI_STATUS MediaStatus; DNS6_SERVER_INFOR DnsServerInfor; Dhcp6Handle = NULL; @@ -635,9 +635,9 @@ GetDns6ServerFromDhcp6 ( // // Check media status before doing DHCP. // - MediaPresent = TRUE; - NetLibDetectMedia (Controller, &MediaPresent); - if (!MediaPresent) { + MediaStatus = EFI_SUCCESS; + NetLibDetectMediaWaitTimeout (Controller, DNS_CHECK_MEDIA_GET_DHCP_WAITING_TIME, &MediaStatus); + if (MediaStatus != EFI_SUCCESS) { return EFI_NO_MEDIA; } diff --git a/NetworkPkg/DnsDxe/DnsDhcp.h b/NetworkPkg/DnsDxe/DnsDhcp.h index 62bf7174e1..9c61f84c5c 100644 --- a/NetworkPkg/DnsDxe/DnsDhcp.h +++ b/NetworkPkg/DnsDxe/DnsDhcp.h @@ -37,6 +37,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. #define DHCP6_TAG_DNS_REQUEST 6 #define DHCP6_TAG_DNS_SERVER 23 +#define DNS_CHECK_MEDIA_GET_DHCP_WAITING_TIME EFI_TIMER_PERIOD_SECONDS(20) + // // The required Dns4 server information. // -- cgit v1.2.3