char-socket: make 'fd' incompatible with 'reconnect'
A chardev socket created with the 'fd=' argument is not going to handle reconnection properly by recycling the same fd (or not in a supported way). Let's forbid this case. Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
parent
3b023756b1
commit
4591bd46e6
@ -997,6 +997,10 @@ static void qmp_chardev_open_socket(Chardev *chr,
|
|||||||
|
|
||||||
s->addr = addr = socket_address_flatten(sock->addr);
|
s->addr = addr = socket_address_flatten(sock->addr);
|
||||||
|
|
||||||
|
if (sock->has_reconnect && addr->type == SOCKET_ADDRESS_TYPE_FD) {
|
||||||
|
error_setg(errp, "'reconnect' option is incompatible with 'fd'");
|
||||||
|
goto error;
|
||||||
|
}
|
||||||
qemu_chr_set_feature(chr, QEMU_CHAR_FEATURE_RECONNECTABLE);
|
qemu_chr_set_feature(chr, QEMU_CHAR_FEATURE_RECONNECTABLE);
|
||||||
/* TODO SOCKET_ADDRESS_FD where fd has AF_UNIX */
|
/* TODO SOCKET_ADDRESS_FD where fd has AF_UNIX */
|
||||||
if (addr->type == SOCKET_ADDRESS_TYPE_UNIX) {
|
if (addr->type == SOCKET_ADDRESS_TYPE_UNIX) {
|
||||||
|
Loading…
Reference in New Issue
Block a user