Преглед изворни кода

[http] Notify data transfer interface when underlying connection is ready

HTTP implements xfer_window_changed() on the underlying server
connection using http_step(), which does not propagate the window
change notification to the data transfer interface.  This breaks the
multipath-capable SAN boot code, which relies on the window change
notification to discover that the HTTP block device is ready for
commands to be issued.

Fix by sending xfer_window_changed() in http_step() once the
underlying connection has been determined to be ready.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
tags/v1.20.1
Michael Brown пре 8 година
родитељ
комит
c8cae7cc17
1 измењених фајлова са 3 додато и 0 уклоњено
  1. 3
    0
      src/net/tcp/httpcore.c

+ 3
- 0
src/net/tcp/httpcore.c Прегледај датотеку

352
 	if ( ! xfer_window ( &http->conn ) )
352
 	if ( ! xfer_window ( &http->conn ) )
353
 		return;
353
 		return;
354
 
354
 
355
+	/* Notify data transfer interface that window may have changed */
356
+	xfer_window_changed ( &http->xfer );
357
+
355
 	/* Do nothing until data transfer interface is ready */
358
 	/* Do nothing until data transfer interface is ready */
356
 	if ( ! xfer_window ( &http->xfer ) )
359
 	if ( ! xfer_window ( &http->xfer ) )
357
 		return;
360
 		return;

Loading…
Откажи
Сачувај