diff options
Diffstat (limited to 'chardev/char-socket.c')
| -rw-r--r-- | chardev/char-socket.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/chardev/char-socket.c b/chardev/char-socket.c index 9061981f6d..06a37c0cc8 100644 --- a/chardev/char-socket.c +++ b/chardev/char-socket.c @@ -387,6 +387,9 @@ static ssize_t tcp_chr_recv(Chardev *chr, char *buf, size_t len) static GSource *tcp_chr_add_watch(Chardev *chr, GIOCondition cond) { SocketChardev *s = SOCKET_CHARDEV(chr); + if (!s->ioc) { + return NULL; + } return qio_channel_create_watch(s->ioc, cond); } @@ -449,7 +452,7 @@ static char *qemu_chr_socket_address(SocketChardev *s, const char *prefix) qemu_chr_socket_protocol(s), s->addr->u.inet.host, s->addr->u.inet.port, - s->is_listen ? ",server" : ""); + s->is_listen ? ",server=on" : ""); break; case SOCKET_ADDRESS_TYPE_UNIX: { @@ -467,12 +470,12 @@ static char *qemu_chr_socket_address(SocketChardev *s, const char *prefix) return g_strdup_printf("%sunix:%s%s%s%s", prefix, sa->path, abstract, tight, - s->is_listen ? ",server" : ""); + s->is_listen ? ",server=on" : ""); break; } case SOCKET_ADDRESS_TYPE_FD: return g_strdup_printf("%sfd:%s%s", prefix, s->addr->u.fd.str, - s->is_listen ? ",server" : ""); + s->is_listen ? ",server=on" : ""); break; case SOCKET_ADDRESS_TYPE_VSOCK: return g_strdup_printf("%svsock:%s:%s", prefix, @@ -604,7 +607,7 @@ static char *qemu_chr_compute_filename(SocketChardev *s) case AF_UNIX: return g_strdup_printf("unix:%s%s", ((struct sockaddr_un *)(ss))->sun_path, - s->is_listen ? ",server" : ""); + s->is_listen ? ",server=on" : ""); #endif case AF_INET6: left = "["; @@ -618,7 +621,7 @@ static char *qemu_chr_compute_filename(SocketChardev *s) return g_strdup_printf("%s:%s%s%s:%s%s <-> %s%s%s:%s", qemu_chr_socket_protocol(s), left, shost, right, sserv, - s->is_listen ? ",server" : "", + s->is_listen ? ",server=on" : "", left, phost, right, pserv); default: |