From: Jeffrey Altman Date: Thu, 7 Feb 2013 00:32:28 +0000 (-0500) Subject: Windows: add cm_HaveToken X-Git-Tag: upstream/1.8.0_pre1^2~1564 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=748e07d24367e80e353446bdb97f61ce420d303d;p=packages%2Fo%2Fopenafs.git Windows: add cm_HaveToken cm_HaveToken answers the question of whether a cm_user_t has a token for a specified cell. Change-Id: I4dff312a7e9000ccee6952c21fca174700364c4c Reviewed-on: http://gerrit.openafs.org/9076 Tested-by: BuildBot Reviewed-by: Rod Widdowson Reviewed-by: Jeffrey Altman --- diff --git a/src/WINNT/afsd/cm_aclent.c b/src/WINNT/afsd/cm_aclent.c index 23dba1013..2a6705397 100644 --- a/src/WINNT/afsd/cm_aclent.c +++ b/src/WINNT/afsd/cm_aclent.c @@ -157,6 +157,27 @@ time_t cm_TGTLifeTime(cm_user_t *userp, afs_uint32 cellID) return expirationTime; } +int +cm_HaveToken(cm_user_t *userp, afs_uint32 cellID) +{ + cm_cell_t *cellp = NULL; + cm_ucell_t * ucp = NULL; + int havetoken = 0; + time_t now; + + lock_ObtainMutex(&userp->mx); + cellp = cm_FindCellByID(cellID, CM_FLAG_NOPROBE); + ucp = cm_GetUCell(userp, cellp); + if (ucp->ticketp) { + now = time(NULL); + if (ucp->expirationTime > now) + havetoken = 1; + } + lock_ReleaseMutex(&userp->mx); + + return havetoken; +} + /* * Add rights to an acl cache entry. Do the right thing if not present, diff --git a/src/WINNT/afsd/cm_user.h b/src/WINNT/afsd/cm_user.h index 4f63b565d..bbe5a71a0 100644 --- a/src/WINNT/afsd/cm_user.h +++ b/src/WINNT/afsd/cm_user.h @@ -72,6 +72,8 @@ extern void cm_ReleaseUserVCRef(cm_user_t *up); extern void cm_CheckTokenCache(time_t now); +extern int cm_HaveToken(cm_user_t *userp, afs_uint32 cellID); + extern cm_user_t *cm_rootUserp; #endif /* OPENAFS_WINNT_AFSD_CM_USER_H */