qemu/slirp
Thomas Horsten bfe4e17242 Handle TFTP ERROR from client
If a PXE client only wants to find out the size of a file, it will
open the file and then abort the transfer by sending a TFTP ERROR packet.

The ERROR packet should cause qemu to terminate the session. If not,
the sessions will soon run out and cause timeouts in the client.

Also, if a TFTP session already exists with same IP/UDP port, it
should be terminated when a new RRQ is received, instead of creating a
duplicate (which will never be used).

A patch for gPXE to send the ERROR packet is also being submitted to
gPXE. Together they resolve slowness/hanging when booting pxegrub from
qemu's internal TFTP server. The patch from Milan Plzik to return
after sending OACK is also required for a complete fix.

Signed-off-by: Thomas Horsten <thomas@horsten.com>
Signed-off-by: Milan Plzik <milan.plzik@gmail.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2010-01-11 13:41:00 -06:00
..
COPYRIGHT Remove the advertising clause from the slirp license 2009-01-26 19:37:41 +00:00
bootp.c slirp: Factor out internal state structure 2009-06-29 08:52:49 -05:00
bootp.h slirp: Factor out internal state structure 2009-06-29 08:52:49 -05:00
cksum.c Remove the advertising clause from the slirp license 2009-01-26 19:37:41 +00:00
debug.h slirp: Cleanup and basic reanimation of debug code 2009-06-29 08:52:46 -05:00
if.c slirp: Use internal state in interface 2009-06-29 08:52:49 -05:00
if.h slirp: Factor out internal state structure 2009-06-29 08:52:49 -05:00
ip.h fix networking on win32 host 2009-12-18 23:23:56 +01:00
ip_icmp.c slirp: Read host DNS config on demand 2009-08-27 20:46:58 -05:00
ip_icmp.h Fix breakage by obsolete _P() for good 2009-07-01 19:11:17 +00:00
ip_input.c slirp: fix unmatched bracket in if 0 2009-09-30 18:56:44 +00:00
ip_output.c slirp: Factor out internal state structure 2009-06-29 08:52:49 -05:00
libslirp.h slirp: Read host DNS config on demand 2009-08-27 20:46:58 -05:00
main.h slirp: Read host DNS config on demand 2009-08-27 20:46:58 -05:00
mbuf.c slirp: fix use-after-free 2009-11-21 00:34:04 +01:00
mbuf.h Fix breakage by obsolete _P() for good 2009-07-01 19:11:17 +00:00
misc.c slirp/misc.c: fix warning with _FORTIFY_SOURCE 2009-12-25 18:19:18 +00:00
misc.h slirp: Remove UDP protocol emulation (talk, cuseeme) 2009-07-27 14:09:15 -05:00
sbuf.c slirp: Drop dead code 2009-06-29 08:52:46 -05:00
sbuf.h Fix breakage by obsolete _P() for good 2009-07-01 19:11:17 +00:00
slirp.c Fix sys-queue.h conflict for good 2009-09-12 07:36:22 +00:00
slirp.h Don't leak file descriptors 2009-12-03 11:45:50 -06:00
slirp_config.h rename WORDS_BIGENDIAN to HOST_WORDS_BIGENDIAN 2009-07-27 14:09:21 -05:00
socket.c Don't leak file descriptors 2009-12-03 11:45:50 -06:00
socket.h Fix breakage by obsolete _P() for good 2009-07-01 19:11:17 +00:00
tcp.h rename WORDS_BIGENDIAN to HOST_WORDS_BIGENDIAN 2009-07-27 14:09:21 -05:00
tcp_input.c slirp: Factor out internal state structure 2009-06-29 08:52:49 -05:00
tcp_output.c slirp: Factor out internal state structure 2009-06-29 08:52:49 -05:00
tcp_subr.c Don't leak file descriptors 2009-12-03 11:45:50 -06:00
tcp_timer.c More NULL pointer fixes 2009-08-01 10:13:20 +00:00
tcp_timer.h Fix breakage by obsolete _P() for good 2009-07-01 19:11:17 +00:00
tcp_var.h slirp: Factor out internal state structure 2009-06-29 08:52:49 -05:00
tcpip.h Remove the advertising clause from the slirp license 2009-01-26 19:37:41 +00:00
tftp.c Handle TFTP ERROR from client 2010-01-11 13:41:00 -06:00
tftp.h slirp: Factor out internal state structure 2009-06-29 08:52:49 -05:00
udp.c Don't leak file descriptors 2009-12-03 11:45:50 -06:00
udp.h Fix breakage by obsolete _P() for good 2009-07-01 19:11:17 +00:00