socket: allow wait=false for client socket

Commit 767abe7 ("chardev: forbid 'wait' option with client sockets")
is a bit too strict. Current libvirt always set wait=false, and will
thus fail to add client chardev.

Make the code more permissive, allowing wait=false with client socket
chardevs. Deprecate usage of 'wait' with client sockets.

Fixes: 767abe7f49
Cc: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Message-id: 20190415163337.2795-1-marcandre.lureau@redhat.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
Marc-André Lureau 2019-04-15 18:33:36 +02:00 committed by Peter Maydell
parent 677746b39f
commit a9b305ba29
2 changed files with 13 additions and 4 deletions

View File

@ -1263,10 +1263,14 @@ static bool qmp_chardev_validate_socket(ChardevSocket *sock,
return false; return false;
} }
if (sock->has_wait) { if (sock->has_wait) {
error_setg(errp, "%s", warn_report("'wait' option is deprecated with "
"'wait' option is incompatible with " "socket in client connect mode");
"socket in client connect mode"); if (sock->wait) {
return false; error_setg(errp, "%s",
"'wait' option is incompatible with "
"socket in client connect mode");
return false;
}
} }
} }

View File

@ -105,6 +105,11 @@ details.
The ``query-events'' command has been superseded by the more powerful The ``query-events'' command has been superseded by the more powerful
and accurate ``query-qmp-schema'' command. and accurate ``query-qmp-schema'' command.
@subsection chardev client socket with 'wait' option (since 4.0)
Character devices creating sockets in client mode should not specify
the 'wait' field, which is only applicable to sockets in server mode
@section Human Monitor Protocol (HMP) commands @section Human Monitor Protocol (HMP) commands
@subsection The hub_id parameter of 'hostfwd_add' / 'hostfwd_remove' (since 3.1) @subsection The hub_id parameter of 'hostfwd_add' / 'hostfwd_remove' (since 3.1)