diff options
author | Jan Kiszka <jan.kiszka@siemens.com> | 2011-08-05 14:05:53 +0200 |
---|---|---|
committer | Jan Kiszka <jan.kiszka@siemens.com> | 2011-08-05 14:05:53 +0200 |
commit | 14bf0c9f507611699d94c0e94ba7c4ecd834590b (patch) | |
tree | b7e0687da2a21efbff53f19ff93e19f4872997a2 /slirp.c | |
parent | 1fd00111b5de256f71b94fad9769acda6ac944c2 (diff) | |
download | slirp-14bf0c9f507611699d94c0e94ba7c4ecd834590b.zip slirp-14bf0c9f507611699d94c0e94ba7c4ecd834590b.tar.gz slirp-14bf0c9f507611699d94c0e94ba7c4ecd834590b.tar.bz2 |
slirp: Only start packet expiration for delayed ones
The expiration timeout must only affect packets that are queued due to
pending ARP resolutions. The old version broke ping e.g.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Diffstat (limited to 'slirp.c')
-rw-r--r-- | slirp.c | 3 |
1 files changed, 3 insertions, 0 deletions
@@ -735,6 +735,9 @@ int if_encap(Slirp *slirp, struct mbuf *ifm) slirp->client_ipaddr = iph->ip_dst; slirp_output(slirp->opaque, arp_req, sizeof(arp_req)); ifm->arp_requested = true; + + /* Expire request and drop outgoing packet after 1 second */ + ifm->expiration_date = qemu_get_clock_ns(rt_clock) + 1000000000ULL; } return 0; } else { |