Revision 819f56b7 qemu-char.c
b/qemu-char.c | ||
---|---|---|
929 | 929 |
|
930 | 930 |
qemu_set_fd_handler2(s->fd, NULL, NULL, NULL, NULL); |
931 | 931 |
close(s->fd); |
932 |
qemu_del_timer(s->timer); |
|
933 |
qemu_free_timer(s->timer); |
|
932 | 934 |
qemu_free(s); |
933 | 935 |
} |
934 | 936 |
|
... | ... | |
1758 | 1760 |
} |
1759 | 1761 |
} |
1760 | 1762 |
|
1763 |
static void udp_chr_close(CharDriverState *chr) |
|
1764 |
{ |
|
1765 |
NetCharDriver *s = chr->opaque; |
|
1766 |
if (s->fd >= 0) { |
|
1767 |
qemu_set_fd_handler(s->fd, NULL, NULL, NULL); |
|
1768 |
closesocket(s->fd); |
|
1769 |
} |
|
1770 |
qemu_free(s); |
|
1771 |
} |
|
1772 |
|
|
1761 | 1773 |
static CharDriverState *qemu_chr_open_udp(const char *def) |
1762 | 1774 |
{ |
1763 | 1775 |
CharDriverState *chr = NULL; |
... | ... | |
1791 | 1803 |
chr->opaque = s; |
1792 | 1804 |
chr->chr_write = udp_chr_write; |
1793 | 1805 |
chr->chr_update_read_handler = udp_chr_update_read_handler; |
1806 |
chr->chr_close = udp_chr_close; |
|
1794 | 1807 |
return chr; |
1795 | 1808 |
|
1796 | 1809 |
return_err: |
... | ... | |
1993 | 2006 |
static void tcp_chr_close(CharDriverState *chr) |
1994 | 2007 |
{ |
1995 | 2008 |
TCPCharDriver *s = chr->opaque; |
1996 |
if (s->fd >= 0) |
|
2009 |
if (s->fd >= 0) { |
|
2010 |
qemu_set_fd_handler(s->fd, NULL, NULL, NULL); |
|
1997 | 2011 |
closesocket(s->fd); |
1998 |
if (s->listen_fd >= 0) |
|
2012 |
} |
|
2013 |
if (s->listen_fd >= 0) { |
|
2014 |
qemu_set_fd_handler(s->listen_fd, NULL, NULL, NULL); |
|
1999 | 2015 |
closesocket(s->listen_fd); |
2016 |
} |
|
2000 | 2017 |
qemu_free(s); |
2001 | 2018 |
} |
2002 | 2019 |
|
Also available in: Unified diff