summaryrefslogtreecommitdiffstats
path: root/NetworkPkg/HttpBootDxe
diff options
context:
space:
mode:
authorFu Siyuan <siyuan.fu@intel.com>2016-06-28 11:30:04 +0800
committerFu Siyuan <siyuan.fu@intel.com>2016-06-30 09:36:56 +0800
commit287f05cd1f8cc7ae693868b4882d4cebd87ff6dc (patch)
treefd977bcc429aad016ce1e2c6e9f6bdf0956a8efb /NetworkPkg/HttpBootDxe
parent89b206573965e9604c534cc1ef468ecd58e1b4d4 (diff)
downloadedk2-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>
Diffstat (limited to 'NetworkPkg/HttpBootDxe')
-rw-r--r--NetworkPkg/HttpBootDxe/HttpBootImpl.c6
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;
}