diff options
| author | Michael Brown | 2009-03-30 14:24:56 +0200 |
|---|---|---|
| committer | Michael Brown | 2009-03-30 14:24:56 +0200 |
| commit | 323cdf8c4c510fc6da081b96994d0131c11a29dd (patch) | |
| tree | 268806d5d1de34a96a446356a065057b060c7282 /src/net | |
| parent | [bzimage] Support old (pre-2.00 bootloader) Linux kernel formats (diff) | |
| download | ipxe-323cdf8c4c510fc6da081b96994d0131c11a29dd.tar.gz ipxe-323cdf8c4c510fc6da081b96994d0131c11a29dd.tar.xz ipxe-323cdf8c4c510fc6da081b96994d0131c11a29dd.zip | |
[xfer] Implement xfer_vreopen() to properly handle redirections
When handling a redirection event, we need to close the existing
connection before opening the new connection.
Diffstat (limited to 'src/net')
| -rw-r--r-- | src/net/tcp/ftp.c | 4 | ||||
| -rw-r--r-- | src/net/tcp/http.c | 2 | ||||
| -rw-r--r-- | src/net/tcp/iscsi.c | 2 | ||||
| -rw-r--r-- | src/net/tls.c | 2 | ||||
| -rw-r--r-- | src/net/udp/dhcp.c | 2 | ||||
| -rw-r--r-- | src/net/udp/dns.c | 2 | ||||
| -rw-r--r-- | src/net/udp/slam.c | 4 | ||||
| -rw-r--r-- | src/net/udp/tftp.c | 4 |
8 files changed, 11 insertions, 11 deletions
diff --git a/src/net/tcp/ftp.c b/src/net/tcp/ftp.c index 445e32bb4..0719bf728 100644 --- a/src/net/tcp/ftp.c +++ b/src/net/tcp/ftp.c @@ -335,7 +335,7 @@ static int ftp_control_deliver_raw ( struct xfer_interface *control, /** FTP control channel operations */ static struct xfer_interface_operations ftp_control_operations = { .close = ftp_control_close, - .vredirect = xfer_vopen, + .vredirect = xfer_vreopen, .window = unlimited_xfer_window, .alloc_iob = default_xfer_alloc_iob, .deliver_iob = xfer_deliver_as_raw, @@ -402,7 +402,7 @@ static int ftp_data_deliver_iob ( struct xfer_interface *data, /** FTP data channel operations */ static struct xfer_interface_operations ftp_data_operations = { .close = ftp_data_closed, - .vredirect = xfer_vopen, + .vredirect = xfer_vreopen, .window = unlimited_xfer_window, .alloc_iob = default_xfer_alloc_iob, .deliver_iob = ftp_data_deliver_iob, diff --git a/src/net/tcp/http.c b/src/net/tcp/http.c index 93ccfd3bd..b7cbea465 100644 --- a/src/net/tcp/http.c +++ b/src/net/tcp/http.c @@ -464,7 +464,7 @@ static void http_socket_close ( struct xfer_interface *socket, int rc ) { /** HTTP socket operations */ static struct xfer_interface_operations http_socket_operations = { .close = http_socket_close, - .vredirect = xfer_vopen, + .vredirect = xfer_vreopen, .window = unlimited_xfer_window, .alloc_iob = default_xfer_alloc_iob, .deliver_iob = http_socket_deliver_iob, diff --git a/src/net/tcp/iscsi.c b/src/net/tcp/iscsi.c index 45519e667..51c2beeaa 100644 --- a/src/net/tcp/iscsi.c +++ b/src/net/tcp/iscsi.c @@ -1514,7 +1514,7 @@ static int iscsi_vredirect ( struct xfer_interface *socket, int type, va_end ( tmp ); } - return xfer_vopen ( socket, type, args ); + return xfer_vreopen ( socket, type, args ); } diff --git a/src/net/tls.c b/src/net/tls.c index 73f9ad062..25f18f79b 100644 --- a/src/net/tls.c +++ b/src/net/tls.c @@ -1625,7 +1625,7 @@ static int tls_cipherstream_deliver_raw ( struct xfer_interface *xfer, /** TLS ciphertext stream operations */ static struct xfer_interface_operations tls_cipherstream_operations = { .close = tls_cipherstream_close, - .vredirect = xfer_vopen, + .vredirect = xfer_vreopen, .window = filter_window, .alloc_iob = default_xfer_alloc_iob, .deliver_iob = xfer_deliver_as_raw, diff --git a/src/net/udp/dhcp.c b/src/net/udp/dhcp.c index 97e64617f..289e41ade 100644 --- a/src/net/udp/dhcp.c +++ b/src/net/udp/dhcp.c @@ -1107,7 +1107,7 @@ static int dhcp_deliver_iob ( struct xfer_interface *xfer, /** DHCP data transfer interface operations */ static struct xfer_interface_operations dhcp_xfer_operations = { .close = ignore_xfer_close, - .vredirect = xfer_vopen, + .vredirect = xfer_vreopen, .window = unlimited_xfer_window, .alloc_iob = default_xfer_alloc_iob, .deliver_iob = dhcp_deliver_iob, diff --git a/src/net/udp/dns.c b/src/net/udp/dns.c index a498aefc0..c1da454b7 100644 --- a/src/net/udp/dns.c +++ b/src/net/udp/dns.c @@ -459,7 +459,7 @@ static void dns_xfer_close ( struct xfer_interface *socket, int rc ) { /** DNS socket operations */ static struct xfer_interface_operations dns_socket_operations = { .close = dns_xfer_close, - .vredirect = xfer_vopen, + .vredirect = xfer_vreopen, .window = unlimited_xfer_window, .alloc_iob = default_xfer_alloc_iob, .deliver_iob = xfer_deliver_as_raw, diff --git a/src/net/udp/slam.c b/src/net/udp/slam.c index 6add99bc2..71043f45a 100644 --- a/src/net/udp/slam.c +++ b/src/net/udp/slam.c @@ -614,7 +614,7 @@ static void slam_socket_close ( struct xfer_interface *socket, int rc ) { /** SLAM unicast socket data transfer operations */ static struct xfer_interface_operations slam_socket_operations = { .close = slam_socket_close, - .vredirect = xfer_vopen, + .vredirect = xfer_vreopen, .window = unlimited_xfer_window, .alloc_iob = default_xfer_alloc_iob, .deliver_iob = slam_socket_deliver, @@ -640,7 +640,7 @@ static void slam_mc_socket_close ( struct xfer_interface *mc_socket, int rc ){ /** SLAM multicast socket data transfer operations */ static struct xfer_interface_operations slam_mc_socket_operations = { .close = slam_mc_socket_close, - .vredirect = xfer_vopen, + .vredirect = xfer_vreopen, .window = unlimited_xfer_window, .alloc_iob = default_xfer_alloc_iob, .deliver_iob = slam_mc_socket_deliver, diff --git a/src/net/udp/tftp.c b/src/net/udp/tftp.c index 19525f79a..be7e58afc 100644 --- a/src/net/udp/tftp.c +++ b/src/net/udp/tftp.c @@ -934,7 +934,7 @@ static int tftp_socket_deliver_iob ( struct xfer_interface *socket, /** TFTP socket operations */ static struct xfer_interface_operations tftp_socket_operations = { .close = ignore_xfer_close, - .vredirect = xfer_vopen, + .vredirect = xfer_vreopen, .window = unlimited_xfer_window, .alloc_iob = default_xfer_alloc_iob, .deliver_iob = tftp_socket_deliver_iob, @@ -961,7 +961,7 @@ static int tftp_mc_socket_deliver_iob ( struct xfer_interface *mc_socket, /** TFTP multicast socket operations */ static struct xfer_interface_operations tftp_mc_socket_operations = { .close = ignore_xfer_close, - .vredirect = xfer_vopen, + .vredirect = xfer_vreopen, .window = unlimited_xfer_window, .alloc_iob = default_xfer_alloc_iob, .deliver_iob = tftp_mc_socket_deliver_iob, |
