ports/emulators/qemu-devel/files/patch-slirp-udp.c
Juergen Lock 8598b8520e Update qemu to 2007-01-11 snapshot:
- add slirp udp fix
  [this should fix the dns problems with some guests]
- document slirp problems on recent -current (I don't have a -current box
  so if someone wants to help debug this you are most welcome!)
- memsave monitor command
- Dynamic handling of guest mice, by Lonnie Mendez.
- PPC32 Trace Exception and Trap instruction, by Jason Wessel.
- Add -option-rom option to allow loading of PCI option ROMs, by
  Anthony Liguori.
- Add -boot n option for x86 using PXE, by Anthony Liguori.
  [for use with tuntap]
- Support for Bochs "growing" images, by Volker Ruppert.
- Japanese keyboard patch (kazu)
- Revert -disk patch, as requested by Fabrice. The general idea of this
  patch is sound, but the implementation is just too ugly.
  [this should fix the hanging linux guests]
- Devfn number for the PIIX3 southbridge, by Aurelien Jarno.
- Increase MIPS BIOS from 128kB to 4MB, by Aurelien Jarno.
- And some more bugfixes.

Approved by:	miwi (mentor)
2007-01-12 00:13:58 +00:00

26 lines
693 B
C

Index: qemu/slirp/udp.c
@@ -205,8 +208,6 @@
/* udp_last_so = so; */
so->so_laddr = ip->ip_src;
so->so_lport = uh->uh_sport;
- so->so_faddr = ip->ip_dst; /* XXX */
- so->so_fport = uh->uh_dport; /* XXX */
if ((so->so_iptos = udp_tos(so)) == 0)
so->so_iptos = ip->ip_tos;
@@ -216,6 +217,15 @@
* and if it is, do the fork_exec() etc.
*/
}
+
+ /*
+ * Assign destination unconditionally
+ *
+ * This fixes the case where packets are sent from the same
+ * source ip/port to different destination ips/ports
+ */
+ so->so_faddr = ip->ip_dst; /* XXX */
+ so->so_fport = uh->uh_dport; /* XXX */
iphlen += sizeof(struct udphdr);
m->m_len -= iphlen;