mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-03 15:53:54 -06:00
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>
This commit is contained in:
parent
f373431977
commit
a68adc2206
10 changed files with 58 additions and 0 deletions
21
slirp/mbuf.c
21
slirp/mbuf.c
|
@ -32,6 +32,27 @@ m_init(Slirp *slirp)
|
|||
slirp->m_usedlist.m_next = slirp->m_usedlist.m_prev = &slirp->m_usedlist;
|
||||
}
|
||||
|
||||
void m_cleanup(Slirp *slirp)
|
||||
{
|
||||
struct mbuf *m, *next;
|
||||
|
||||
m = slirp->m_usedlist.m_next;
|
||||
while (m != &slirp->m_usedlist) {
|
||||
next = m->m_next;
|
||||
if (m->m_flags & M_EXT) {
|
||||
free(m->m_ext);
|
||||
}
|
||||
free(m);
|
||||
m = next;
|
||||
}
|
||||
m = slirp->m_freelist.m_next;
|
||||
while (m != &slirp->m_freelist) {
|
||||
next = m->m_next;
|
||||
free(m);
|
||||
m = next;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Get an mbuf from the free list, if there are none
|
||||
* malloc one
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue