From c0271c31a54ba5abd55d948ec1515476f8e12b4c Mon Sep 17 00:00:00 2001 From: Derrick Brashear Date: Thu, 13 Dec 2007 21:22:39 +0000 Subject: [PATCH] DEVEL15-aix-curpag-redux-20071213 LICENSE IPL10 add curpag() support for aix, based on work by tom keiser (cherry picked from commit af3a4e78523596427235b45fc1892725a29bd1d6) --- src/auth/ktc.c | 11 +++++++++++ src/pam/afs_util.c | 11 +++++++++++ src/sys/pagsh.c | 14 +++++++++----- 3 files changed, 31 insertions(+), 5 deletions(-) diff --git a/src/auth/ktc.c b/src/auth/ktc.c index 4c32142e4..b2d1831ef 100644 --- a/src/auth/ktc.c +++ b/src/auth/ktc.c @@ -54,6 +54,10 @@ RCSID #include #ifdef AFS_AIX_ENV #include +#ifdef AFS_AIX51_ENV +#include +#include +#endif #endif #ifdef HAVE_UNISTD_H #include @@ -1610,6 +1614,12 @@ afs_tf_dest_tkt(void) static afs_uint32 curpag(void) { +#if defined(AFS_AIX51_ENV) + int code = getpagvalue("afs"); + if (code < 0 && errno == EINVAL) + code = 0; + return code; +#else gid_t groups[NGROUPS_MAX]; afs_uint32 g0, g1; afs_uint32 h, l, ret; @@ -1633,6 +1643,7 @@ curpag(void) return -1; } return -1; +#endif } int diff --git a/src/pam/afs_util.c b/src/pam/afs_util.c index cf8ae25fe..6a28cf309 100644 --- a/src/pam/afs_util.c +++ b/src/pam/afs_util.c @@ -19,6 +19,10 @@ #include #include #include +#ifdef AFS_AIX51_ENV +#include +#include +#endif RCSID ("$Header$"); @@ -174,6 +178,12 @@ do_klog(const char *user, const char *password, const char *lifetime, static afs_int32 curpag(void) { +#if defined(AFS_AIX51_ENV) + int code = getpagvalue("afs"); + if (code < 0 && errno == EINVAL) + code = 0; + return code; +#else gid_t groups[NGROUPS_MAX]; afs_uint32 g0, g1; afs_uint32 h, l, ret; @@ -197,6 +207,7 @@ curpag(void) return -1; } return -1; +#endif } /* Returns the AFS pag number, if any, otherwise return -1 */ diff --git a/src/sys/pagsh.c b/src/sys/pagsh.c index 456466712..4ab863623 100644 --- a/src/sys/pagsh.c +++ b/src/sys/pagsh.c @@ -15,6 +15,11 @@ RCSID #ifdef AFS_AIX32_ENV #include +#ifdef AFS_AIX51_ENV +#include +#include +#include +#endif #endif #include #include @@ -85,11 +90,10 @@ static afs_uint32 curpag(void) { #if defined(AFS_AIX51_ENV) - afs_int32 pag; - - if (kcred_getpag(cred, PAG_AFS, &pag) < 0 || pag == 0) - pag = NOPAG; - return pag; + int code = getpagvalue("afs"); + if (code < 0 && errno == EINVAL) + code = 0; + return code; #else afs_uint32 groups[NGROUPS_MAX]; afs_uint32 g0, g1; -- 2.39.5