5 * Sebastien Pouliot <sebastien@ximian.com>
7 * (C) 2004 Novell (http://www.novell.com)
11 #include <mono/io-layer/io-layer.h>
15 #include <sys/types.h>
22 #ifndef HAVE_GETRESUID
23 #warning getresuid not supported. WindowsImpersonationContext wont work
25 #ifndef HAVE_SETRESUID
26 #warning setresuid not supported. WindowsImpersonationContext wont work
32 ImpersonateLoggedOnUser (gpointer handle
)
34 uid_t token
= (uid_t
) handle
;
36 if (setresuid (-1, token
, getuid ()) < 0)
39 return (geteuid () == token
);
43 gboolean
RevertToSelf (void)
51 if (getresuid (&ruid
, &euid
, &suid
) < 0)
55 if (setresuid (-1, suid
, -1) < 0)
58 return (geteuid () == suid
);