From 05c6d372d72a1a1cebc31a5cf11a7479c05a684b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hubert=20Figui=C3=A8re?= Date: Fri, 13 Sep 2024 19:11:45 -0400 Subject: [PATCH] usb: If not sandboxed, assume all devices MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Hubert Figuière --- src/xdp-app-info-host.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/src/xdp-app-info-host.c b/src/xdp-app-info-host.c index 4520d800c..83839152c 100644 --- a/src/xdp-app-info-host.c +++ b/src/xdp-app-info-host.c @@ -23,14 +23,25 @@ #endif #include "xdp-app-info-host-private.h" +#include "xdp-usb-query.h" struct _XdpAppInfoHost { XdpAppInfo parent; + + GPtrArray *usb_queries; }; G_DEFINE_FINAL_TYPE (XdpAppInfoHost, xdp_app_info_host, XDP_TYPE_APP_INFO) +static const GPtrArray * +xdp_app_info_host_get_usb_queries (XdpAppInfo *app_info) +{ + XdpAppInfoHost *app_info_host = XDP_APP_INFO_HOST (app_info); + + return app_info_host->usb_queries; +} + gboolean xdp_app_info_host_validate_autostart (XdpAppInfo *app_info, GKeyFile *keyfile, @@ -49,12 +60,26 @@ xdp_app_info_host_validate_dynamic_launcher (XdpAppInfo *app_info, return TRUE; } +static void +xdp_app_info_host_dispose (GObject *object) +{ + XdpAppInfoHost *app_info = XDP_APP_INFO_HOST (object); + + g_clear_pointer (&app_info->usb_queries, g_ptr_array_unref); + + G_OBJECT_CLASS (xdp_app_info_host_parent_class)->dispose (object); +} static void xdp_app_info_host_class_init (XdpAppInfoHostClass *klass) { XdpAppInfoClass *app_info_class = XDP_APP_INFO_CLASS (klass); + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + object_class->dispose = xdp_app_info_host_dispose; + app_info_class->get_usb_queries = + xdp_app_info_host_get_usb_queries; app_info_class->validate_autostart = xdp_app_info_host_validate_autostart; app_info_class->validate_dynamic_launcher = @@ -64,6 +89,11 @@ xdp_app_info_host_class_init (XdpAppInfoHostClass *klass) static void xdp_app_info_host_init (XdpAppInfoHost *app_info_host) { + app_info_host->usb_queries = g_ptr_array_new_with_free_func ((GDestroyNotify) xdp_usb_query_free); + g_autoptr(XdpUsbQuery) query = + xdp_usb_query_from_string (XDP_USB_QUERY_TYPE_ENUMERABLE, "all"); + if (query) + g_ptr_array_add (app_info_host->usb_queries, g_steal_pointer (&query)); } #ifdef HAVE_LIBSYSTEMD