diff options
author | Fu Siyuan <siyuan.fu@intel.com> | 2016-06-28 11:30:04 +0800 |
---|---|---|
committer | Fu Siyuan <siyuan.fu@intel.com> | 2016-06-30 09:36:56 +0800 |
commit | 287f05cd1f8cc7ae693868b4882d4cebd87ff6dc (patch) | |
tree | fd977bcc429aad016ce1e2c6e9f6bdf0956a8efb | |
parent | 89b206573965e9604c534cc1ef468ecd58e1b4d4 (diff) | |
download | edk2-287f05cd1f8cc7ae693868b4882d4cebd87ff6dc.tar.gz edk2-287f05cd1f8cc7ae693868b4882d4cebd87ff6dc.tar.bz2 edk2-287f05cd1f8cc7ae693868b4882d4cebd87ff6dc.zip |
NetworkPkg: Stop the HTTP Boot service after the boot image download complete.
After boot image has been downloaded, the HTTP boot driver leaves the service
in the started state, with an active TCP child. This may cause some problems:
1. The HTTP session may become unavaiable after a while, then a following HTTP
Boot will fail.
2. An active TCP child will send RST to any incoming TCP message, which may
break other driver which tries to setup a TCP connection.
The HTTP boot driver doesn't provide any interface to the boot loader, so it's
unnecessary to keep the service running after a boot image is downloaded.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Fu Siyuan <siyuan.fu@intel.com>
Reviewed-by: Ye Ting <ting.ye@intel.com>
Reviewed-By: Wu Jiaxin <jiaxin.wu@intel.com>
-rw-r--r-- | NetworkPkg/HttpBootDxe/HttpBootImpl.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/NetworkPkg/HttpBootDxe/HttpBootImpl.c b/NetworkPkg/HttpBootDxe/HttpBootImpl.c index 4b850b6628..babd3e6194 100644 --- a/NetworkPkg/HttpBootDxe/HttpBootImpl.c +++ b/NetworkPkg/HttpBootDxe/HttpBootImpl.c @@ -505,7 +505,11 @@ HttpBootDxeLoadFile ( Status = EFI_WARN_FILE_SYSTEM;
}
}
-
+
+ //
+ // Stop the HTTP Boot service after the boot image is downloaded.
+ //
+ HttpBootStop (Private);
return Status;
}
|