From 395616868f51df1aba68c6ae692b56082d754c10 Mon Sep 17 00:00:00 2001 From: jiaxinwu Date: Wed, 8 Jul 2015 03:09:28 +0000 Subject: [PATCH 1/1] NetworkPkg: Remove IpSecDxe and Ip4Config Protocol dependency. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: jiaxinwu Reviewed-by: Ye Ting git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17874 6f19259b-4bc3-4df7-8a09-765794883524 --- NetworkPkg/IpSecDxe/IkeCommon.h | 2 +- NetworkPkg/IpSecDxe/IkeService.c | 51 +++++++++++++++++++++----------- NetworkPkg/IpSecDxe/IpSecDxe.inf | 4 +-- 3 files changed, 37 insertions(+), 20 deletions(-) diff --git a/NetworkPkg/IpSecDxe/IkeCommon.h b/NetworkPkg/IpSecDxe/IkeCommon.h index b88331cd86..714ecaa8e3 100644 --- a/NetworkPkg/IpSecDxe/IkeCommon.h +++ b/NetworkPkg/IpSecDxe/IkeCommon.h @@ -18,7 +18,7 @@ #include #include -#include +#include #include #include diff --git a/NetworkPkg/IpSecDxe/IkeService.c b/NetworkPkg/IpSecDxe/IkeService.c index 8e2c794dc3..6594963f5d 100644 --- a/NetworkPkg/IpSecDxe/IkeService.c +++ b/NetworkPkg/IpSecDxe/IkeService.c @@ -1,7 +1,7 @@ /** @file Provide IPsec Key Exchange (IKE) service general interfaces. - Copyright (c) 2010 - 2013, Intel Corporation. All rights reserved.
+ Copyright (c) 2010 - 2015, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License @@ -212,15 +212,15 @@ IkeOpenOutputUdp ( IN EFI_IP_ADDRESS *RemoteIp ) { - EFI_STATUS Status; - EFI_IP4_CONFIG_PROTOCOL *Ip4Cfg; - EFI_IP4_IPCONFIG_DATA *Ip4CfgData; - UINTN BufSize; - EFI_IP6_MODE_DATA Ip6ModeData; - EFI_UDP6_PROTOCOL *Udp6; + EFI_STATUS Status; + EFI_IP4_CONFIG2_PROTOCOL *Ip4Cfg2; + EFI_IP4_CONFIG2_INTERFACE_INFO *IfInfo; + UINTN BufSize; + EFI_IP6_MODE_DATA Ip6ModeData; + EFI_UDP6_PROTOCOL *Udp6; Status = EFI_SUCCESS; - Ip4CfgData = NULL; + IfInfo = NULL; BufSize = 0; // @@ -236,35 +236,52 @@ IkeOpenOutputUdp ( // Status = gBS->HandleProtocol ( UdpService->NicHandle, - &gEfiIp4ConfigProtocolGuid, - (VOID **) &Ip4Cfg + &gEfiIp4Config2ProtocolGuid, + (VOID **) &Ip4Cfg2 ); if (EFI_ERROR (Status)) { goto ON_EXIT; } - Status = Ip4Cfg->GetData (Ip4Cfg, &BufSize, NULL); + // + // Get the interface information size. + // + Status = Ip4Cfg2->GetData ( + Ip4Cfg2, + Ip4Config2DataTypeInterfaceInfo, + &BufSize, + NULL + ); if (EFI_ERROR (Status) && Status != EFI_BUFFER_TOO_SMALL) { goto ON_EXIT; } - Ip4CfgData = AllocateZeroPool (BufSize); + IfInfo = AllocateZeroPool (BufSize); - if (Ip4CfgData == NULL) { + if (IfInfo == NULL) { Status = EFI_OUT_OF_RESOURCES; goto ON_EXIT; } - Status = Ip4Cfg->GetData (Ip4Cfg, &BufSize, Ip4CfgData); + // + // Get the interface info. + // + Status = Ip4Cfg2->GetData ( + Ip4Cfg2, + Ip4Config2DataTypeInterfaceInfo, + &BufSize, + IfInfo + ); + if (EFI_ERROR (Status)) { goto ON_EXIT; } CopyMem ( &UdpService->DefaultAddress.v4, - &Ip4CfgData->StationAddress, + &IfInfo->StationAddress, sizeof (EFI_IPv4_ADDRESS) ); @@ -331,8 +348,8 @@ IkeOpenOutputUdp ( UdpService->IsConfigured = TRUE; ON_EXIT: - if (Ip4CfgData != NULL) { - FreePool (Ip4CfgData); + if (IfInfo != NULL) { + FreePool (IfInfo); } return Status; diff --git a/NetworkPkg/IpSecDxe/IpSecDxe.inf b/NetworkPkg/IpSecDxe/IpSecDxe.inf index c587c8ca8d..583305b4f8 100644 --- a/NetworkPkg/IpSecDxe/IpSecDxe.inf +++ b/NetworkPkg/IpSecDxe/IpSecDxe.inf @@ -6,7 +6,7 @@ # packet-level security for IP datagram. It provides the IP packet protection via # ESP and it supports IKEv2 for key negotiation. # -# Copyright (c) 2009 - 2014, Intel Corporation. All rights reserved.
+# Copyright (c) 2009 - 2015, Intel Corporation. All rights reserved.
# # This program and the accompanying materials # are licensed and made available under the terms and conditions of the BSD License @@ -89,7 +89,7 @@ PcdLib [Protocols] - gEfiIp4ConfigProtocolGuid ## SOMETIMES_CONSUMES + gEfiIp4Config2ProtocolGuid ## SOMETIMES_CONSUMES gEfiUdp4ServiceBindingProtocolGuid ## SOMETIMES_CONSUMES gEfiUdp4ProtocolGuid ## SOMETIMES_CONSUMES gEfiUdp6ServiceBindingProtocolGuid ## SOMETIMES_CONSUMES -- 2.39.2