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
bootp.c
bootp.h
cksum.c
debug.h
if.c
if.h
ip.h
ip_icmp.c
ip_icmp.h
ip_input.c
ip_output.c
libslirp.h
main.h
mbuf.c
mbuf.h
misc.c slirp/misc.c: fix warning with _FORTIFY_SOURCE 2009-12-25 18:19:18 +00:00
misc.h
sbuf.c
sbuf.h
slirp.c
slirp.h
slirp_config.h
socket.c
socket.h
tcp.h
tcp_input.c
tcp_output.c
tcp_subr.c
tcp_timer.c
tcp_timer.h
tcp_var.h
tcpip.h
tftp.c Handle TFTP ERROR from client 2010-01-11 13:41:00 -06:00
tftp.h
udp.c
udp.h