Citadel changes to Mutter
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
Reference in New Issue
Block a user