Citadel changes to Mutter

This commit is contained in:
2021-12-03 14:07:17 -05:00
parent 94bd385bf3
commit 56e7b774e9
15 changed files with 768 additions and 81 deletions

View File

@@ -730,3 +730,51 @@ meta_get_debug_paint_flags (void)
{
return debug_paint_flags;
}
static GFileInfo *
pid_namespace_file_info (pid_t pid)
{
char *filename = g_strdup_printf("/proc/%u/ns/pid", pid);
GFile *file = g_file_new_for_path(filename);
g_free(filename);
GError *error = NULL;
GFileInfo *info = g_file_query_info(file,
G_FILE_ATTRIBUTE_STANDARD_IS_SYMLINK "," G_FILE_ATTRIBUTE_STANDARD_SYMLINK_TARGET,
G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS,
NULL,
&error);
g_object_unref(file);
if (info == NULL) {
g_warning("MetaWindow: Error attempting to read /proc/%u/ns/pid symlink: %s", pid, error->message);
g_error_free (error);
return NULL;
}
if (!g_file_info_get_is_symlink (info)) {
g_warning("MetaWindow: /proc/%u/ns/pid exists but is not a symlink?", pid);
g_object_unref (info);
return NULL;
}
return info;
}
char *
meta_read_pid_namespace (pid_t pid)
{
char *value = NULL;
GFileInfo *info = pid_namespace_file_info (pid);
const char *target = g_file_info_get_symlink_target (info);
if (target) {
value = g_strdup (target);
}
g_object_unref (info);
return value;
}