From 9b855ccc24d7ac091428acabf665c3e013ba4008 Mon Sep 17 00:00:00 2001 From: Derrick Brashear Date: Thu, 13 Dec 2007 21:23:42 +0000 Subject: [PATCH] STABLE14-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 | 35 +++++++++++++++++++++++------------ src/pam/afs_util.c | 11 +++++++++++ src/sys/pagsh.c | 12 ++++++++++++ 3 files changed, 46 insertions(+), 12 deletions(-) diff --git a/src/auth/ktc.c b/src/auth/ktc.c index 444276132..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 @@ -412,12 +416,11 @@ OldSetToken(struct ktc_principal *aserver, struct ktc_token *atoken, return 0; } - -ktc_SetToken(aserver, atoken, aclient, flags) - struct ktc_principal *aserver; - struct ktc_principal *aclient; - struct ktc_token *atoken; - afs_int32 flags; +int +ktc_SetToken(struct ktc_principal *aserver, + struct ktc_token *atoken, + struct ktc_principal *aclient, + afs_int32 flags) { int ncode, ocode; @@ -688,9 +691,10 @@ ktc_ForgetToken(struct ktc_principal *aserver) * next rock in (*aindex). (*aserver) is set to the relevant ticket on * success. */ -ktc_ListTokens(aprevIndex, aindex, aserver) - int aprevIndex, *aindex; - struct ktc_principal *aserver; +int +ktc_ListTokens(int aprevIndex, + int *aindex, + struct ktc_principal *aserver) { struct ViceIoctl iob; char tbuffer[MAXPIOCTLTOKENLEN]; @@ -840,7 +844,7 @@ ktc_ListTokens(aprevIndex, aindex, aserver) /* discard all tokens from this user's cache */ static int -NewForgetAll() +NewForgetAll(void) { #ifndef NO_AFS_CLIENT TRY_KERNEL(KTC_FORGETALLTOKENS_OP, 0, 0, 0, 0); @@ -849,7 +853,7 @@ NewForgetAll() } static int -OldForgetAll() +OldForgetAll(void) { struct ViceIoctl iob; register afs_int32 code; @@ -871,7 +875,7 @@ OldForgetAll() } int -ktc_ForgetAllTokens() +ktc_ForgetAllTokens(void) { int ncode, ocode; @@ -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 d014c56b1..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 @@ -84,6 +89,12 @@ main(int argc, char *argv[]) static afs_uint32 curpag(void) { +#if defined(AFS_AIX51_ENV) + int code = getpagvalue("afs"); + if (code < 0 && errno == EINVAL) + code = 0; + return code; +#else afs_uint32 groups[NGROUPS_MAX]; afs_uint32 g0, g1; afs_uint32 h, l, ret; @@ -107,6 +118,7 @@ curpag(void) return -1; } return -1; +#endif } int -- 2.39.5