diff options
author | Ken Raeburn <raeburn@mit.edu> | 2002-06-25 20:56:17 +0000 |
---|---|---|
committer | Ken Raeburn <raeburn@mit.edu> | 2002-06-25 20:56:17 +0000 |
commit | 99c69a712b10152a895bf9f9897d0306fafca8e6 (patch) | |
tree | d394e3859991bba13f78413348a52c04bbfd95a1 /src/include/k5-util.h | |
parent | 4c22d46592fc34600f718920e10118caba70973c (diff) | |
download | krb5-99c69a712b10152a895bf9f9897d0306fafca8e6.tar.gz krb5-99c69a712b10152a895bf9f9897d0306fafca8e6.tar.xz krb5-99c69a712b10152a895bf9f9897d0306fafca8e6.zip |
move krb5_sete[ug]id from libkrb5util (fn) to k5-util.h (macro)
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@14569 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/include/k5-util.h')
-rw-r--r-- | src/include/k5-util.h | 47 |
1 files changed, 43 insertions, 4 deletions
diff --git a/src/include/k5-util.h b/src/include/k5-util.h index e4d49d96e3..4f0c6f73f3 100644 --- a/src/include/k5-util.h +++ b/src/include/k5-util.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 1989-1998 by the Massachusetts Institute of Technology, + * Copyright (C) 1989-1998,2002 by the Massachusetts Institute of Technology, * Cambridge, MA, USA. All Rights Reserved. * * This software is being provided to you, the LICENSEE, by the @@ -44,9 +44,48 @@ * They live in libkrb5util. */ -int krb5_seteuid(int); -int krb5_setedid(int); -int krb5_setegid(int); +#include "krb5/autoconf.h" + +#ifdef HAVE_SYS_TYPES_H +#include <sys/types.h> +#endif + +#ifdef HAVE_UNISTD_H +#include <unistd.h> +#endif + +#ifdef HAVE_STDLIB_H +#include <stdlib.h> +#endif + +#include <errno.h> + +#ifndef krb5_seteuid + +#if defined(HAVE_SETEUID) +# define krb5_seteuid(EUID) (seteuid((uid_t)(EUID))) +#elif defined(HAVE_SETRESUID) +# define krb5_seteuid(EUID) setresuid(getuid(), (uid_t)(EUID), geteuid()) +#elif defined(HAVE_SETREUID) +# define krb5_seteuid(EUID) setreuid(geteuid(), (uid_t)(EUID)) +#else + /* You need to add a case to deal with this operating system.*/ +# define krb5_seteuid(EUID) (errno = EPERM, -1) +#endif + +#ifdef HAVE_SETEGID +# define krb5_setegid(EGID) (setegid((gid_t)(EGID))) +#elif defined(HAVE_SETRESGID) +# define krb5_setegid(EGID) (setresgid(getgid(), (gid_t)(EGID), getegid())) +#elif defined(HAVE_SETREGID) +# define krb5_setegid(EGID) (setregid(getegid(), (gid_t)(EGID))) +#else + /* You need to add a case to deal with this operating system.*/ +# define krb5_setegid(EGID) (errno = EPERM, -1) +#endif + +#endif + #if defined(KRB_DEFS) && defined(SOCK_DGRAM) krb5_error_code krb5_compat_recvauth(krb5_context, krb5_auth_context *, |