diff options
author | Jan Kiszka <jan.kiszka@siemens.com> | 2012-02-29 19:14:23 +0100 |
---|---|---|
committer | Jan Kiszka <jan.kiszka@siemens.com> | 2012-03-13 14:05:49 +0100 |
commit | a68adc220603baffc355ecea8865b3ea9707ab00 (patch) | |
tree | f2f2c89ddcae603aff1cb0bd44ab169f4d06f4c4 /slirp/ip_icmp.c | |
parent | f37343197708d90f119007ce5ecc2503be9c04c1 (diff) | |
download | qemu-a68adc220603baffc355ecea8865b3ea9707ab00.zip qemu-a68adc220603baffc355ecea8865b3ea9707ab00.tar.gz qemu-a68adc220603baffc355ecea8865b3ea9707ab00.tar.bz2 |
slirp: Cleanup resources on instance removal
Close & free sockets when shutting down a slirp instance, also release
all buffers.
CC: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Diffstat (limited to 'slirp/ip_icmp.c')
-rw-r--r-- | slirp/ip_icmp.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/slirp/ip_icmp.c b/slirp/ip_icmp.c index 5dbf21d..d571fd0 100644 --- a/slirp/ip_icmp.c +++ b/slirp/ip_icmp.c @@ -66,6 +66,13 @@ void icmp_init(Slirp *slirp) slirp->icmp_last_so = &slirp->icmp; } +void icmp_cleanup(Slirp *slirp) +{ + while (slirp->icmp.so_next != &slirp->icmp) { + icmp_detach(slirp->icmp.so_next); + } +} + static int icmp_send(struct socket *so, struct mbuf *m, int hlen) { struct ip *ip = mtod(m, struct ip *); |