When we create a HTTP driver service binding private
instance, there may be different DriverBindingHandle
for Ipv4 or Ipv6, so it is essential to distinguish
the HttpService image which will be used in open
protocol or close protocol.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Zhang Lubo <lubo.zhang@intel.com>
Cc: Sriram Subramanian <sriram-s@hpe.com>
Cc: Ye Ting <ting.ye@intel.com>
Cc: Fu Siyuan <siyuan.fu@intel.com>
Cc: Wu Jiaxin <jiaxin.wu@intel.com>
Reviewed-by: Sriram Subramanian <sriram-s@hpe.com>
Reviewed-by: Wu Jiaxin <jiaxin.wu@intel.com>
Reviewed-by: Fu Siyuan <siyuan.fu@intel.com>
/** @file\r
Routines for HttpDxe driver to perform DNS resolution based on UEFI DNS protocols.\r
\r
/** @file\r
Routines for HttpDxe driver to perform DNS resolution based on UEFI DNS protocols.\r
\r
-Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>\r
This program and the accompanying materials\r
are licensed and made available under the terms and conditions of the BSD License\r
which accompanies this distribution. The full text of the license may be found at\r
This program and the accompanying materials\r
are licensed and made available under the terms and conditions of the BSD License\r
which accompanies this distribution. The full text of the license may be found at\r
//\r
Status = NetLibCreateServiceChild (\r
Service->ControllerHandle,\r
//\r
Status = NetLibCreateServiceChild (\r
Service->ControllerHandle,\r
- Service->ImageHandle,\r
+ Service->Ip4DriverBindingHandle,\r
&gEfiDns4ServiceBindingProtocolGuid,\r
&Dns4Handle\r
);\r
&gEfiDns4ServiceBindingProtocolGuid,\r
&Dns4Handle\r
);\r
Dns4Handle,\r
&gEfiDns4ProtocolGuid,\r
(VOID **) &Dns4,\r
Dns4Handle,\r
&gEfiDns4ProtocolGuid,\r
(VOID **) &Dns4,\r
- Service->ImageHandle,\r
+ Service->Ip4DriverBindingHandle,\r
Service->ControllerHandle,\r
EFI_OPEN_PROTOCOL_BY_DRIVER\r
);\r
Service->ControllerHandle,\r
EFI_OPEN_PROTOCOL_BY_DRIVER\r
);\r
gBS->CloseProtocol (\r
Dns4Handle,\r
&gEfiDns4ProtocolGuid,\r
gBS->CloseProtocol (\r
Dns4Handle,\r
&gEfiDns4ProtocolGuid,\r
- Service->ImageHandle,\r
+ Service->Ip4DriverBindingHandle,\r
Service->ControllerHandle\r
);\r
}\r
Service->ControllerHandle\r
);\r
}\r
if (Dns4Handle != NULL) {\r
NetLibDestroyServiceChild (\r
Service->ControllerHandle,\r
if (Dns4Handle != NULL) {\r
NetLibDestroyServiceChild (\r
Service->ControllerHandle,\r
- Service->ImageHandle,\r
+ Service->Ip4DriverBindingHandle,\r
&gEfiDns4ServiceBindingProtocolGuid,\r
Dns4Handle\r
);\r
&gEfiDns4ServiceBindingProtocolGuid,\r
Dns4Handle\r
);\r
//\r
Status = NetLibCreateServiceChild (\r
Service->ControllerHandle,\r
//\r
Status = NetLibCreateServiceChild (\r
Service->ControllerHandle,\r
- Service->ImageHandle,\r
+ Service->Ip6DriverBindingHandle,\r
&gEfiDns6ServiceBindingProtocolGuid,\r
&Dns6Handle\r
);\r
&gEfiDns6ServiceBindingProtocolGuid,\r
&Dns6Handle\r
);\r
Dns6Handle,\r
&gEfiDns6ProtocolGuid,\r
(VOID **) &Dns6,\r
Dns6Handle,\r
&gEfiDns6ProtocolGuid,\r
(VOID **) &Dns6,\r
- Service->ImageHandle,\r
+ Service->Ip6DriverBindingHandle,\r
Service->ControllerHandle,\r
EFI_OPEN_PROTOCOL_BY_DRIVER\r
);\r
Service->ControllerHandle,\r
EFI_OPEN_PROTOCOL_BY_DRIVER\r
);\r
gBS->CloseProtocol (\r
Dns6Handle,\r
&gEfiDns6ProtocolGuid,\r
gBS->CloseProtocol (\r
Dns6Handle,\r
&gEfiDns6ProtocolGuid,\r
- Service->ImageHandle,\r
+ Service->Ip6DriverBindingHandle,\r
Service->ControllerHandle\r
);\r
}\r
Service->ControllerHandle\r
);\r
}\r
if (Dns6Handle != NULL) {\r
NetLibDestroyServiceChild (\r
Service->ControllerHandle,\r
if (Dns6Handle != NULL) {\r
NetLibDestroyServiceChild (\r
Service->ControllerHandle,\r
- Service->ImageHandle,\r
+ Service->Ip6DriverBindingHandle,\r
&gEfiDns6ServiceBindingProtocolGuid,\r
Dns6Handle\r
);\r
&gEfiDns6ServiceBindingProtocolGuid,\r
Dns6Handle\r
);\r
/** @file\r
The driver binding and service binding protocol for HttpDxe driver.\r
\r
/** @file\r
The driver binding and service binding protocol for HttpDxe driver.\r
\r
- Copyright (c) 2015 - 2016, Intel Corporation. All rights reserved.<BR>\r
+ Copyright (c) 2015 - 2017, Intel Corporation. All rights reserved.<BR>\r
(C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR>\r
\r
This program and the accompanying materials\r
(C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR>\r
\r
This program and the accompanying materials\r
\r
@param[in] Controller The controller that has TCP4 service binding\r
installed.\r
\r
@param[in] Controller The controller that has TCP4 service binding\r
installed.\r
- @param[in] ImageHandle The HTTP driver's image handle.\r
@param[out] ServiceData Point to HTTP driver private instance.\r
\r
@retval EFI_OUT_OF_RESOURCES Failed to allocate some resources.\r
@param[out] ServiceData Point to HTTP driver private instance.\r
\r
@retval EFI_OUT_OF_RESOURCES Failed to allocate some resources.\r
EFI_STATUS\r
HttpCreateService (\r
IN EFI_HANDLE Controller,\r
EFI_STATUS\r
HttpCreateService (\r
IN EFI_HANDLE Controller,\r
- IN EFI_HANDLE ImageHandle,\r
OUT HTTP_SERVICE **ServiceData\r
)\r
{\r
OUT HTTP_SERVICE **ServiceData\r
)\r
{\r
HttpService->Signature = HTTP_SERVICE_SIGNATURE;\r
HttpService->ServiceBinding.CreateChild = HttpServiceBindingCreateChild;\r
HttpService->ServiceBinding.DestroyChild = HttpServiceBindingDestroyChild;\r
HttpService->Signature = HTTP_SERVICE_SIGNATURE;\r
HttpService->ServiceBinding.CreateChild = HttpServiceBindingCreateChild;\r
HttpService->ServiceBinding.DestroyChild = HttpServiceBindingDestroyChild;\r
- HttpService->ImageHandle = ImageHandle;\r
HttpService->ControllerHandle = Controller;\r
HttpService->ChildrenNumber = 0;\r
InitializeListHead (&HttpService->ChildrenList);\r
HttpService->ControllerHandle = Controller;\r
HttpService->ChildrenNumber = 0;\r
InitializeListHead (&HttpService->ChildrenList);\r
gBS->CloseProtocol (\r
HttpService->Tcp4ChildHandle,\r
&gEfiTcp4ProtocolGuid,\r
gBS->CloseProtocol (\r
HttpService->Tcp4ChildHandle,\r
&gEfiTcp4ProtocolGuid,\r
- HttpService->ImageHandle,\r
+ HttpService->Ip4DriverBindingHandle,\r
HttpService->ControllerHandle\r
);\r
\r
NetLibDestroyServiceChild (\r
HttpService->ControllerHandle,\r
HttpService->ControllerHandle\r
);\r
\r
NetLibDestroyServiceChild (\r
HttpService->ControllerHandle,\r
- HttpService->ImageHandle,\r
+ HttpService->Ip4DriverBindingHandle,\r
&gEfiTcp4ServiceBindingProtocolGuid,\r
HttpService->Tcp4ChildHandle\r
);\r
&gEfiTcp4ServiceBindingProtocolGuid,\r
HttpService->Tcp4ChildHandle\r
);\r
gBS->CloseProtocol (\r
HttpService->Tcp6ChildHandle,\r
&gEfiTcp6ProtocolGuid,\r
gBS->CloseProtocol (\r
HttpService->Tcp6ChildHandle,\r
&gEfiTcp6ProtocolGuid,\r
- HttpService->ImageHandle,\r
+ HttpService->Ip6DriverBindingHandle,\r
HttpService->ControllerHandle\r
);\r
\r
NetLibDestroyServiceChild (\r
HttpService->ControllerHandle,\r
HttpService->ControllerHandle\r
);\r
\r
NetLibDestroyServiceChild (\r
HttpService->ControllerHandle,\r
- HttpService->ImageHandle,\r
+ HttpService->Ip6DriverBindingHandle,\r
&gEfiTcp6ServiceBindingProtocolGuid,\r
HttpService->Tcp6ChildHandle\r
);\r
&gEfiTcp6ServiceBindingProtocolGuid,\r
HttpService->Tcp6ChildHandle\r
);\r
if (!EFI_ERROR (Status)) {\r
HttpService = HTTP_SERVICE_FROM_PROTOCOL (ServiceBinding);\r
} else {\r
if (!EFI_ERROR (Status)) {\r
HttpService = HTTP_SERVICE_FROM_PROTOCOL (ServiceBinding);\r
} else {\r
- Status = HttpCreateService (ControllerHandle, This->DriverBindingHandle, &HttpService);\r
+ Status = HttpCreateService (ControllerHandle, &HttpService);\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
}\r
\r
if (IpVersion == IP_VERSION_4) {\r
}\r
\r
if (IpVersion == IP_VERSION_4) {\r
+ HttpService->Ip4DriverBindingHandle = This->DriverBindingHandle;\r
+\r
if (HttpService->Tcp4ChildHandle == NULL) {\r
//\r
// Create a TCP4 child instance, but do not configure it. This will establish the parent-child relationship.\r
if (HttpService->Tcp4ChildHandle == NULL) {\r
//\r
// Create a TCP4 child instance, but do not configure it. This will establish the parent-child relationship.\r
\r
} else {\r
UsingIpv6 = TRUE;\r
\r
} else {\r
UsingIpv6 = TRUE;\r
+ HttpService->Ip6DriverBindingHandle = This->DriverBindingHandle;\r
+\r
if (HttpService->Tcp6ChildHandle == NULL) {\r
//\r
// Create a TCP6 child instance, but do not configure it. This will establish the parent-child relationship.\r
if (HttpService->Tcp6ChildHandle == NULL) {\r
//\r
// Create a TCP6 child instance, but do not configure it. This will establish the parent-child relationship.\r
HTTP_TOKEN_WRAP *Wrap;\r
CHAR8 *FileUrl;\r
UINTN RequestMsgSize;\r
HTTP_TOKEN_WRAP *Wrap;\r
CHAR8 *FileUrl;\r
UINTN RequestMsgSize;\r
+ EFI_HANDLE ImageHandle;\r
\r
//\r
// Initializations\r
\r
//\r
// Initializations\r
//\r
// Use TlsSb to create Tls child and open the TLS protocol.\r
//\r
//\r
// Use TlsSb to create Tls child and open the TLS protocol.\r
//\r
+ if (HttpInstance->LocalAddressIsIPv6) {\r
+ ImageHandle = HttpInstance->Service->Ip6DriverBindingHandle;\r
+ } else {\r
+ ImageHandle = HttpInstance->Service->Ip4DriverBindingHandle;\r
+ }\r
+\r
HttpInstance->TlsChildHandle = TlsCreateChild (\r
HttpInstance->TlsChildHandle = TlsCreateChild (\r
- HttpInstance->Service->ImageHandle,\r
&(HttpInstance->Tls),\r
&(HttpInstance->TlsConfiguration)\r
);\r
&(HttpInstance->Tls),\r
&(HttpInstance->TlsConfiguration)\r
);\r
//\r
Status = NetLibCreateServiceChild (\r
HttpInstance->Service->ControllerHandle,\r
//\r
Status = NetLibCreateServiceChild (\r
HttpInstance->Service->ControllerHandle,\r
- HttpInstance->Service->ImageHandle,\r
+ HttpInstance->Service->Ip4DriverBindingHandle,\r
&gEfiTcp4ServiceBindingProtocolGuid,\r
&HttpInstance->Tcp4ChildHandle\r
);\r
&gEfiTcp4ServiceBindingProtocolGuid,\r
&HttpInstance->Tcp4ChildHandle\r
);\r
HttpInstance->Tcp4ChildHandle,\r
&gEfiTcp4ProtocolGuid,\r
(VOID **) &Interface,\r
HttpInstance->Tcp4ChildHandle,\r
&gEfiTcp4ProtocolGuid,\r
(VOID **) &Interface,\r
- HttpInstance->Service->ImageHandle,\r
+ HttpInstance->Service->Ip4DriverBindingHandle,\r
HttpInstance->Service->ControllerHandle,\r
EFI_OPEN_PROTOCOL_BY_DRIVER\r
);\r
HttpInstance->Service->ControllerHandle,\r
EFI_OPEN_PROTOCOL_BY_DRIVER\r
);\r
HttpInstance->Tcp4ChildHandle,\r
&gEfiTcp4ProtocolGuid,\r
(VOID **) &HttpInstance->Tcp4,\r
HttpInstance->Tcp4ChildHandle,\r
&gEfiTcp4ProtocolGuid,\r
(VOID **) &HttpInstance->Tcp4,\r
- HttpInstance->Service->ImageHandle,\r
+ HttpInstance->Service->Ip4DriverBindingHandle,\r
HttpInstance->Handle,\r
EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER\r
);\r
HttpInstance->Handle,\r
EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER\r
);\r
HttpInstance->Service->Tcp4ChildHandle,\r
&gEfiTcp4ProtocolGuid,\r
(VOID **) &Interface,\r
HttpInstance->Service->Tcp4ChildHandle,\r
&gEfiTcp4ProtocolGuid,\r
(VOID **) &Interface,\r
- HttpInstance->Service->ImageHandle,\r
+ HttpInstance->Service->Ip4DriverBindingHandle,\r
HttpInstance->Handle,\r
EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER\r
);\r
HttpInstance->Handle,\r
EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER\r
);\r
//\r
Status = NetLibCreateServiceChild (\r
HttpInstance->Service->ControllerHandle,\r
//\r
Status = NetLibCreateServiceChild (\r
HttpInstance->Service->ControllerHandle,\r
- HttpInstance->Service->ImageHandle,\r
+ HttpInstance->Service->Ip6DriverBindingHandle,\r
&gEfiTcp6ServiceBindingProtocolGuid,\r
&HttpInstance->Tcp6ChildHandle\r
);\r
&gEfiTcp6ServiceBindingProtocolGuid,\r
&HttpInstance->Tcp6ChildHandle\r
);\r
HttpInstance->Tcp6ChildHandle,\r
&gEfiTcp6ProtocolGuid,\r
(VOID **) &Interface,\r
HttpInstance->Tcp6ChildHandle,\r
&gEfiTcp6ProtocolGuid,\r
(VOID **) &Interface,\r
- HttpInstance->Service->ImageHandle,\r
+ HttpInstance->Service->Ip6DriverBindingHandle,\r
HttpInstance->Service->ControllerHandle,\r
EFI_OPEN_PROTOCOL_BY_DRIVER\r
);\r
HttpInstance->Service->ControllerHandle,\r
EFI_OPEN_PROTOCOL_BY_DRIVER\r
);\r
HttpInstance->Tcp6ChildHandle,\r
&gEfiTcp6ProtocolGuid,\r
(VOID **) &HttpInstance->Tcp6,\r
HttpInstance->Tcp6ChildHandle,\r
&gEfiTcp6ProtocolGuid,\r
(VOID **) &HttpInstance->Tcp6,\r
- HttpInstance->Service->ImageHandle,\r
+ HttpInstance->Service->Ip6DriverBindingHandle,\r
HttpInstance->Handle,\r
EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER\r
);\r
HttpInstance->Handle,\r
EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER\r
);\r
HttpInstance->Service->Tcp6ChildHandle,\r
&gEfiTcp6ProtocolGuid,\r
(VOID **) &Interface,\r
HttpInstance->Service->Tcp6ChildHandle,\r
&gEfiTcp6ProtocolGuid,\r
(VOID **) &Interface,\r
- HttpInstance->Service->ImageHandle,\r
+ HttpInstance->Service->Ip6DriverBindingHandle,\r
HttpInstance->Handle,\r
EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER\r
);\r
HttpInstance->Handle,\r
EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER\r
);\r
gBS->CloseProtocol (\r
HttpInstance->Tcp4ChildHandle,\r
&gEfiTcp4ProtocolGuid,\r
gBS->CloseProtocol (\r
HttpInstance->Tcp4ChildHandle,\r
&gEfiTcp4ProtocolGuid,\r
- HttpInstance->Service->ImageHandle,\r
+ HttpInstance->Service->Ip4DriverBindingHandle,\r
HttpInstance->Service->ControllerHandle\r
);\r
\r
gBS->CloseProtocol (\r
HttpInstance->Tcp4ChildHandle,\r
&gEfiTcp4ProtocolGuid,\r
HttpInstance->Service->ControllerHandle\r
);\r
\r
gBS->CloseProtocol (\r
HttpInstance->Tcp4ChildHandle,\r
&gEfiTcp4ProtocolGuid,\r
- HttpInstance->Service->ImageHandle,\r
+ HttpInstance->Service->Ip4DriverBindingHandle,\r
HttpInstance->Handle\r
); \r
\r
NetLibDestroyServiceChild (\r
HttpInstance->Service->ControllerHandle,\r
HttpInstance->Handle\r
); \r
\r
NetLibDestroyServiceChild (\r
HttpInstance->Service->ControllerHandle,\r
- HttpInstance->Service->ImageHandle,\r
+ HttpInstance->Service->Ip4DriverBindingHandle,\r
&gEfiTcp4ServiceBindingProtocolGuid,\r
HttpInstance->Tcp4ChildHandle\r
);\r
&gEfiTcp4ServiceBindingProtocolGuid,\r
HttpInstance->Tcp4ChildHandle\r
);\r
gBS->CloseProtocol (\r
HttpInstance->Service->Tcp4ChildHandle,\r
&gEfiTcp4ProtocolGuid,\r
gBS->CloseProtocol (\r
HttpInstance->Service->Tcp4ChildHandle,\r
&gEfiTcp4ProtocolGuid,\r
- HttpInstance->Service->ImageHandle,\r
+ HttpInstance->Service->Ip4DriverBindingHandle,\r
HttpInstance->Handle\r
);\r
}\r
HttpInstance->Handle\r
);\r
}\r
gBS->CloseProtocol (\r
HttpInstance->Tcp6ChildHandle,\r
&gEfiTcp6ProtocolGuid,\r
gBS->CloseProtocol (\r
HttpInstance->Tcp6ChildHandle,\r
&gEfiTcp6ProtocolGuid,\r
- HttpInstance->Service->ImageHandle,\r
+ HttpInstance->Service->Ip6DriverBindingHandle,\r
HttpInstance->Service->ControllerHandle\r
);\r
\r
gBS->CloseProtocol (\r
HttpInstance->Tcp6ChildHandle,\r
&gEfiTcp6ProtocolGuid,\r
HttpInstance->Service->ControllerHandle\r
);\r
\r
gBS->CloseProtocol (\r
HttpInstance->Tcp6ChildHandle,\r
&gEfiTcp6ProtocolGuid,\r
- HttpInstance->Service->ImageHandle,\r
+ HttpInstance->Service->Ip6DriverBindingHandle,\r
HttpInstance->Handle\r
);\r
\r
NetLibDestroyServiceChild (\r
HttpInstance->Service->ControllerHandle,\r
HttpInstance->Handle\r
);\r
\r
NetLibDestroyServiceChild (\r
HttpInstance->Service->ControllerHandle,\r
- HttpInstance->Service->ImageHandle,\r
+ HttpInstance->Service->Ip6DriverBindingHandle,\r
&gEfiTcp6ServiceBindingProtocolGuid,\r
HttpInstance->Tcp6ChildHandle\r
);\r
&gEfiTcp6ServiceBindingProtocolGuid,\r
HttpInstance->Tcp6ChildHandle\r
);\r
gBS->CloseProtocol (\r
HttpInstance->Service->Tcp6ChildHandle,\r
&gEfiTcp6ProtocolGuid,\r
gBS->CloseProtocol (\r
HttpInstance->Service->Tcp6ChildHandle,\r
&gEfiTcp6ProtocolGuid,\r
- HttpInstance->Service->ImageHandle,\r
+ HttpInstance->Service->Ip6DriverBindingHandle,\r
HttpInstance->Handle\r
);\r
}\r
HttpInstance->Handle\r
);\r
}\r
gBS->CloseProtocol (\r
HttpInstance->Tcp4ChildHandle,\r
&gEfiTcp4ProtocolGuid,\r
gBS->CloseProtocol (\r
HttpInstance->Tcp4ChildHandle,\r
&gEfiTcp4ProtocolGuid,\r
- HttpInstance->Service->ImageHandle,\r
+ HttpInstance->Service->Ip4DriverBindingHandle,\r
HttpInstance->Service->ControllerHandle\r
);\r
\r
gBS->CloseProtocol (\r
HttpInstance->Tcp4ChildHandle,\r
&gEfiTcp4ProtocolGuid,\r
HttpInstance->Service->ControllerHandle\r
);\r
\r
gBS->CloseProtocol (\r
HttpInstance->Tcp4ChildHandle,\r
&gEfiTcp4ProtocolGuid,\r
- HttpInstance->Service->ImageHandle,\r
+ HttpInstance->Service->Ip4DriverBindingHandle,\r
HttpInstance->Handle\r
);\r
\r
NetLibDestroyServiceChild (\r
HttpInstance->Service->ControllerHandle,\r
HttpInstance->Handle\r
);\r
\r
NetLibDestroyServiceChild (\r
HttpInstance->Service->ControllerHandle,\r
- HttpInstance->Service->ImageHandle,\r
+ HttpInstance->Service->Ip4DriverBindingHandle,\r
&gEfiTcp4ServiceBindingProtocolGuid,\r
HttpInstance->Tcp4ChildHandle\r
);\r
&gEfiTcp4ServiceBindingProtocolGuid,\r
HttpInstance->Tcp4ChildHandle\r
);\r
gBS->CloseProtocol (\r
HttpInstance->Service->Tcp4ChildHandle,\r
&gEfiTcp4ProtocolGuid,\r
gBS->CloseProtocol (\r
HttpInstance->Service->Tcp4ChildHandle,\r
&gEfiTcp4ProtocolGuid,\r
- HttpInstance->Service->ImageHandle,\r
+ HttpInstance->Service->Ip4DriverBindingHandle,\r
HttpInstance->Handle\r
);\r
} \r
HttpInstance->Handle\r
);\r
} \r
gBS->CloseProtocol (\r
HttpInstance->Tcp6ChildHandle,\r
&gEfiTcp6ProtocolGuid,\r
gBS->CloseProtocol (\r
HttpInstance->Tcp6ChildHandle,\r
&gEfiTcp6ProtocolGuid,\r
- HttpInstance->Service->ImageHandle,\r
+ HttpInstance->Service->Ip6DriverBindingHandle,\r
HttpInstance->Service->ControllerHandle\r
);\r
\r
gBS->CloseProtocol (\r
HttpInstance->Tcp6ChildHandle,\r
&gEfiTcp6ProtocolGuid,\r
HttpInstance->Service->ControllerHandle\r
);\r
\r
gBS->CloseProtocol (\r
HttpInstance->Tcp6ChildHandle,\r
&gEfiTcp6ProtocolGuid,\r
- HttpInstance->Service->ImageHandle,\r
+ HttpInstance->Service->Ip6DriverBindingHandle,\r
HttpInstance->Handle\r
);\r
\r
NetLibDestroyServiceChild (\r
HttpInstance->Service->ControllerHandle,\r
HttpInstance->Handle\r
);\r
\r
NetLibDestroyServiceChild (\r
HttpInstance->Service->ControllerHandle,\r
- HttpInstance->Service->ImageHandle,\r
+ HttpInstance->Service->Ip6DriverBindingHandle,\r
&gEfiTcp6ServiceBindingProtocolGuid,\r
HttpInstance->Tcp6ChildHandle\r
);\r
&gEfiTcp6ServiceBindingProtocolGuid,\r
HttpInstance->Tcp6ChildHandle\r
);\r
gBS->CloseProtocol (\r
HttpInstance->Service->Tcp6ChildHandle,\r
&gEfiTcp6ProtocolGuid,\r
gBS->CloseProtocol (\r
HttpInstance->Service->Tcp6ChildHandle,\r
&gEfiTcp6ProtocolGuid,\r
- HttpInstance->Service->ImageHandle,\r
+ HttpInstance->Service->Ip6DriverBindingHandle,\r
HttpInstance->Handle\r
);\r
}\r
HttpInstance->Handle\r
);\r
}\r
/** @file\r
The header files of miscellaneous routines for HttpDxe driver.\r
\r
/** @file\r
The header files of miscellaneous routines for HttpDxe driver.\r
\r
-Copyright (c) 2015 - 2016, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2015 - 2017, Intel Corporation. All rights reserved.<BR>\r
(C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR>\r
This program and the accompanying materials\r
are licensed and made available under the terms and conditions of the BSD License\r
(C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR>\r
This program and the accompanying materials\r
are licensed and made available under the terms and conditions of the BSD License\r
typedef struct _HTTP_SERVICE {\r
UINT32 Signature;\r
EFI_SERVICE_BINDING_PROTOCOL ServiceBinding;\r
typedef struct _HTTP_SERVICE {\r
UINT32 Signature;\r
EFI_SERVICE_BINDING_PROTOCOL ServiceBinding;\r
- EFI_HANDLE ImageHandle;\r
+ EFI_HANDLE Ip4DriverBindingHandle;\r
+ EFI_HANDLE Ip6DriverBindingHandle;\r
EFI_HANDLE ControllerHandle;\r
EFI_HANDLE Tcp4ChildHandle;\r
EFI_HANDLE Tcp6ChildHandle;\r
EFI_HANDLE ControllerHandle;\r
EFI_HANDLE Tcp4ChildHandle;\r
EFI_HANDLE Tcp6ChildHandle;\r