io-layer.h \
io-portability.h \
messages.h \
- security.h \
sockets.h \
uglify.h \
versioninfo.h \
messages.c \
messages.h \
posix.c \
- security.c \
- security.h \
sockets.c \
sockets.h \
socket-private.h \
+++ /dev/null
-/*
- * security.c: Security
- *
- * Author:
- * Sebastien Pouliot <sebastien@ximian.com>
- *
- * (C) 2004 Novell (http://www.novell.com)
- */
-
-#include <config.h>
-#include <mono/io-layer/io-layer.h>
-
-#ifdef HAVE_PWD_H
-#include <pwd.h>
-#endif
-
-#include <string.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <unistd.h>
-
-gboolean
-ImpersonateLoggedOnUser (gpointer handle)
-{
- uid_t token = (uid_t) GPOINTER_TO_INT (handle);
-#ifdef HAVE_SETRESUID
- if (setresuid (-1, token, getuid ()) < 0)
- return FALSE;
-#endif
- return (geteuid () == token);
-}
-
-
-gboolean RevertToSelf (void)
-{
-#ifdef HAVE_GETRESUID
- uid_t ruid, euid;
-#endif
- uid_t suid = -1;
-
-#ifdef HAVE_GETRESUID
- if (getresuid (&ruid, &euid, &suid) < 0)
- return FALSE;
-#endif
-#ifdef HAVE_SETRESUID
- if (setresuid (-1, suid, -1) < 0)
- return FALSE;
-#else
- return TRUE;
-#endif
- return (geteuid () == suid);
-}
-
+++ /dev/null
-/*
- * security.h: Security
- *
- * Author:
- * Sebastien Pouliot <sebastien@ximian.com>
- *
- * (C) 2004 Novell (http://www.novell.com)
- */
-
-#ifndef _WAPI_SECURITY_H_
-#define _WAPI_SECURITY_H_
-
-#include <glib.h>
-
-G_BEGIN_DECLS
-
-extern gboolean ImpersonateLoggedOnUser (gpointer handle);
-extern gboolean RevertToSelf (void);
-
-G_END_DECLS
-
-#endif /* _WAPI_SECURITY_H_ */
#include <mono/io-layer/io.h>
#include <mono/io-layer/error.h>
#include <mono/io-layer/messages.h>
-#include <mono/io-layer/security.h>
#include <mono/io-layer/sockets.h>
#include <mono/io-layer/versioninfo.h>
gboolean
ves_icall_System_Security_Principal_WindowsImpersonationContext_SetCurrentToken (gpointer token)
{
- /* Posix version implemented in /mono/mono/io-layer/security.c */
+#ifdef HOST_WIN32
return (ImpersonateLoggedOnUser (token) != 0);
+#else
+ uid_t itoken = (uid_t) GPOINTER_TO_INT (token);
+#ifdef HAVE_SETRESUID
+ if (setresuid (-1, itoken, getuid ()) < 0)
+ return FALSE;
+#endif
+ return geteuid () == itoken;
+#endif
}
gboolean
ves_icall_System_Security_Principal_WindowsImpersonationContext_RevertToSelf (void)
{
- /* Posix version implemented in /mono/mono/io-layer/security.c */
+#ifdef HOST_WIN32
return (RevertToSelf () != 0);
+#else
+#ifdef HAVE_GETRESUID
+ uid_t ruid, euid;
+#endif
+ uid_t suid = -1;
+
+#ifdef HAVE_GETRESUID
+ if (getresuid (&ruid, &euid, &suid) < 0)
+ return FALSE;
+#endif
+#ifdef HAVE_SETRESUID
+ if (setresuid (-1, suid, -1) < 0)
+ return FALSE;
+#else
+ return TRUE;
+#endif
+ return geteuid () == suid;
+#endif
}
#endif /* G_HAVE_API_SUPPORT(HAVE_CLASSIC_WINAPI_SUPPORT) */