[Spice-devel] [spice-gtk] spice-option: warn on command line failures of usbredir
Frediano Ziglio
fziglio at redhat.com
Thu Jul 25 10:32:28 UTC 2019
>
> From: Victor Toso <me at victortoso.com>
>
> As spice_usb_device_manager_get() can fail for different reasons, we
> should silently ignore it and its error.
>
> Signed-off-by: Victor Toso <victortoso at redhat.com>
> ---
> src/spice-option.c | 18 ++++++++++++++----
> 1 file changed, 14 insertions(+), 4 deletions(-)
>
> diff --git a/src/spice-option.c b/src/spice-option.c
> index c2b059e..c6c51a9 100644
> --- a/src/spice-option.c
> +++ b/src/spice-option.c
> @@ -261,16 +261,26 @@ void spice_set_session_option(SpiceSession *session)
> g_object_set(session, "smartcard-db", smartcard_db, NULL);
> }
> if (usbredir_auto_redirect_filter) {
> - SpiceUsbDeviceManager *m = spice_usb_device_manager_get(session,
> NULL);
> - if (m)
> + GError *err = NULL;
> + SpiceUsbDeviceManager *m = spice_usb_device_manager_get(session,
> &err);
> + if (m) {
> g_object_set(m, "auto-connect-filter",
> usbredir_auto_redirect_filter, NULL);
> + } else {
> + g_warning("Option --spice-usbredir-auto-redirect-filter is set
> but failed: %s", err->message);
> + g_error_free(err);
> + }
> }
> if (usbredir_redirect_on_connect) {
> - SpiceUsbDeviceManager *m = spice_usb_device_manager_get(session,
> NULL);
> - if (m)
> + GError *err = NULL;
> + SpiceUsbDeviceManager *m = spice_usb_device_manager_get(session,
> &err);
> + if (m) {
> g_object_set(m, "redirect-on-connect",
> usbredir_redirect_on_connect, NULL);
> + } else {
> + g_warning("Option --spice-usbredir-redirect-on-connect is set
> but failed: %s", err->message);
> + g_error_free(err);
> + }
> }
> if (disable_usbredir)
> g_object_set(session, "enable-usbredir", FALSE, NULL);
g_warning to me does not mean "silently", it was more silent before.
Code looks a bit a copy&paste, maybe add a function
SpiceUsbDeviceManager *
spice_usb_device_manager_get_for_option(SpiceSession *session, const char *option)
{
GError *err = NULL;
SpiceUsbDeviceManager *m = spice_usb_device_manager_get(session, &err);
if (!m) {
g_warning("Option %s is set but failed: %s", option, err->message);
g_error_free(err);
}
return m;
}
(I didn't check it)
Frediano
More information about the Spice-devel
mailing list