[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 06/40] char-socket: convert to finalize
From: |
Marc-André Lureau |
Subject: |
[Qemu-devel] [PATCH 06/40] char-socket: convert to finalize |
Date: |
Wed, 11 Jan 2017 18:29:22 +0100 |
Notice that finalize() will be run after a failure to open(), so cleanup
code must be adjusted.
Signed-off-by: Marc-André Lureau <address@hidden>
---
qemu-char.c | 12 +++++-------
1 file changed, 5 insertions(+), 7 deletions(-)
diff --git a/qemu-char.c b/qemu-char.c
index 7e2a412954..b9f14d7070 100644
--- a/qemu-char.c
+++ b/qemu-char.c
@@ -3447,9 +3447,10 @@ int qemu_chr_fe_wait_connected(CharBackend *be, Error
**errp)
return qemu_chr_wait_connected(be->chr, errp);
}
-static void tcp_chr_free(Chardev *chr)
+static void char_socket_finalize(Object *obj)
{
- SocketChardev *s = SOCKET_CHARDEV(chr);
+ Chardev *chr = CHARDEV(obj);
+ SocketChardev *s = SOCKET_CHARDEV(obj);
tcp_chr_free_connection(chr);
@@ -4884,7 +4885,7 @@ static void qmp_chardev_open_socket(Chardev *chr,
s->listen_ioc = sioc;
if (is_waitconnect &&
qemu_chr_wait_connected(chr, errp) < 0) {
- goto error;
+ return;
}
if (!s->ioc) {
s->listen_tag = qio_channel_add_watch(
@@ -4902,9 +4903,6 @@ error:
if (sioc) {
object_unref(OBJECT(sioc));
}
- if (s->tls_creds) {
- object_unref(OBJECT(s->tls_creds));
- }
}
static const CharDriver socket_driver = {
@@ -4926,13 +4924,13 @@ static void char_socket_class_init(ObjectClass *oc,
void *data)
cc->chr_add_client = tcp_chr_add_client;
cc->chr_add_watch = tcp_chr_add_watch;
cc->chr_update_read_handler = tcp_chr_update_read_handler;
- cc->chr_free = tcp_chr_free;
}
static const TypeInfo char_socket_type_info = {
.name = TYPE_CHARDEV_SOCKET,
.parent = TYPE_CHARDEV,
.instance_size = sizeof(SocketChardev),
+ .instance_finalize = char_socket_finalize,
.class_init = char_socket_class_init,
};
--
2.11.0
- [Qemu-devel] [PATCH 00/40] chardev: qom clean-up and split in various backend files, Marc-André Lureau, 2017/01/11
- [Qemu-devel] [PATCH 01/40] spice-qemu-char: convert to finalize, Marc-André Lureau, 2017/01/11
- [Qemu-devel] [PATCH 02/40] baum: convert to finalize, Marc-André Lureau, 2017/01/11
- [Qemu-devel] [PATCH 03/40] msmouse: convert to finalize, Marc-André Lureau, 2017/01/11
- [Qemu-devel] [PATCH 04/40] mux: convert to finalize, Marc-André Lureau, 2017/01/11
- [Qemu-devel] [PATCH 05/40] char-udp: convert to finalize, Marc-André Lureau, 2017/01/11
- [Qemu-devel] [PATCH 07/40] char-pty: convert to finalize, Marc-André Lureau, 2017/01/11
- [Qemu-devel] [PATCH 06/40] char-socket: convert to finalize,
Marc-André Lureau <=
- [Qemu-devel] [PATCH 08/40] char-ringbuf: convert to finalize, Marc-André Lureau, 2017/01/11
- [Qemu-devel] [PATCH 10/40] char-stdio: convert to finalize, Marc-André Lureau, 2017/01/11
- [Qemu-devel] [PATCH 09/40] char-parallel: convert parallel to finalize, Marc-André Lureau, 2017/01/11
- [Qemu-devel] [PATCH 13/40] char-win: convert to finalize, Marc-André Lureau, 2017/01/11
- [Qemu-devel] [PATCH 11/40] char-win-stdio: convert to finalize, Marc-André Lureau, 2017/01/11
- [Qemu-devel] [PATCH 14/40] char-fd: convert to finalize, Marc-André Lureau, 2017/01/11
- [Qemu-devel] [PATCH 12/40] char-win: do not override chr_free, Marc-André Lureau, 2017/01/11