mirror of
https://github.com/brl/mutter.git
synced 2024-11-23 16:40:41 -05:00
launcher: Remove open/close restricted file API
It has since some time been replaced with MetaDevicePool, and isn't used by anything anymore, so remove it. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1929>
This commit is contained in:
parent
0555a5bbc1
commit
23b79f33fa
@ -276,120 +276,6 @@ get_seat_proxy (gchar *seat_id,
|
|||||||
return seat;
|
return seat;
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
|
||||||
take_device (MetaDbusLogin1Session *session_proxy,
|
|
||||||
int dev_major,
|
|
||||||
int dev_minor,
|
|
||||||
int *out_fd,
|
|
||||||
GCancellable *cancellable,
|
|
||||||
GError **error)
|
|
||||||
{
|
|
||||||
g_autoptr (GVariant) fd_variant = NULL;
|
|
||||||
g_autoptr (GUnixFDList) fd_list = NULL;
|
|
||||||
int fd = -1;
|
|
||||||
|
|
||||||
if (!meta_dbus_login1_session_call_take_device_sync (session_proxy,
|
|
||||||
dev_major,
|
|
||||||
dev_minor,
|
|
||||||
NULL,
|
|
||||||
&fd_variant,
|
|
||||||
NULL, /* paused */
|
|
||||||
&fd_list,
|
|
||||||
cancellable,
|
|
||||||
error))
|
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
fd = g_unix_fd_list_get (fd_list, g_variant_get_handle (fd_variant), error);
|
|
||||||
if (fd == -1)
|
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
*out_fd = fd;
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static gboolean
|
|
||||||
get_device_info_from_path (const char *path,
|
|
||||||
int *out_major,
|
|
||||||
int *out_minor)
|
|
||||||
{
|
|
||||||
int r;
|
|
||||||
struct stat st;
|
|
||||||
|
|
||||||
r = stat (path, &st);
|
|
||||||
if (r < 0 || !S_ISCHR (st.st_mode))
|
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
*out_major = major (st.st_rdev);
|
|
||||||
*out_minor = minor (st.st_rdev);
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static gboolean
|
|
||||||
get_device_info_from_fd (int fd,
|
|
||||||
int *out_major,
|
|
||||||
int *out_minor)
|
|
||||||
{
|
|
||||||
int r;
|
|
||||||
struct stat st;
|
|
||||||
|
|
||||||
r = fstat (fd, &st);
|
|
||||||
if (r < 0 || !S_ISCHR (st.st_mode))
|
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
*out_major = major (st.st_rdev);
|
|
||||||
*out_minor = minor (st.st_rdev);
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
meta_launcher_open_restricted (MetaLauncher *launcher,
|
|
||||||
const char *path,
|
|
||||||
GError **error)
|
|
||||||
{
|
|
||||||
int fd;
|
|
||||||
int major, minor;
|
|
||||||
|
|
||||||
if (!get_device_info_from_path (path, &major, &minor))
|
|
||||||
{
|
|
||||||
g_set_error (error,
|
|
||||||
G_IO_ERROR,
|
|
||||||
G_IO_ERROR_NOT_FOUND,
|
|
||||||
"Could not get device info for path %s: %m", path);
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!take_device (launcher->session_proxy, major, minor, &fd, NULL, error))
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
return fd;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
meta_launcher_close_restricted (MetaLauncher *launcher,
|
|
||||||
int fd)
|
|
||||||
{
|
|
||||||
MetaDbusLogin1Session *session_proxy = launcher->session_proxy;
|
|
||||||
int major, minor;
|
|
||||||
GError *error = NULL;
|
|
||||||
|
|
||||||
if (!get_device_info_from_fd (fd, &major, &minor))
|
|
||||||
{
|
|
||||||
g_warning ("Could not get device info for fd %d: %m", fd);
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!meta_dbus_login1_session_call_release_device_sync (session_proxy,
|
|
||||||
major, minor,
|
|
||||||
NULL, &error))
|
|
||||||
{
|
|
||||||
g_warning ("Could not release device (%d,%d): %s",
|
|
||||||
major, minor, error->message);
|
|
||||||
}
|
|
||||||
|
|
||||||
out:
|
|
||||||
close (fd);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
sync_active (MetaLauncher *self)
|
sync_active (MetaLauncher *self)
|
||||||
{
|
{
|
||||||
|
@ -34,13 +34,6 @@ gboolean meta_launcher_activate_vt (MetaLauncher *self,
|
|||||||
|
|
||||||
const char * meta_launcher_get_seat_id (MetaLauncher *launcher);
|
const char * meta_launcher_get_seat_id (MetaLauncher *launcher);
|
||||||
|
|
||||||
int meta_launcher_open_restricted (MetaLauncher *launcher,
|
|
||||||
const char *path,
|
|
||||||
GError **error);
|
|
||||||
|
|
||||||
void meta_launcher_close_restricted (MetaLauncher *launcher,
|
|
||||||
int fd);
|
|
||||||
|
|
||||||
MetaDbusLogin1Session * meta_launcher_get_session_proxy (MetaLauncher *launcher);
|
MetaDbusLogin1Session * meta_launcher_get_session_proxy (MetaLauncher *launcher);
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user