From a3580a771c23d33642df05837729eea528513c43 Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Tue, 9 Jan 2007 15:28:19 +0000 Subject: [PATCH] STABLE14-client-handle-vicetokendead-with-reconnect-20070109 client-handle-vicetokendead-with-reconnect-20070104 failed to alter the behavior of the RXKADEXPIRED and other cases. (cherry picked from commit 284668200e83fe90afa4bed26509343473b9995b) --- src/afs/afs_analyze.c | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/src/afs/afs_analyze.c b/src/afs/afs_analyze.c index 556d94be3..486907fa3 100644 --- a/src/afs/afs_analyze.c +++ b/src/afs/afs_analyze.c @@ -637,33 +637,39 @@ afs_Analyze(register struct conn *aconn, afs_int32 acode, tu = afs_FindUser(areq->uid, tsp->cell->cellNum, READ_LOCK); if (tu) { if (acode == VICETOKENDEAD) { - aconn->forceConnectFS = 1; /* don't check until new tokens set */ - shouldRetry = 1; /* Try again (as root). */ - } else if (acode == RXKADEXPIRED) + aconn->forceConnectFS = 1; + } else if (acode == RXKADEXPIRED) { + aconn->forceConnectFS = 0; /* don't check until new tokens set */ + aconn->user->states |= UTokensBad; afs_warnuser ("afs: Tokens for user of AFS id %d for cell %s have expired\n", tu->vid, aconn->srvr->server->cell->cellName); - else + } else { + aconn->forceConnectFS = 0; /* don't check until new tokens set */ + aconn->user->states |= UTokensBad; afs_warnuser ("afs: Tokens for user of AFS id %d for cell %s are discarded (rxkad error=%d)\n", tu->vid, aconn->srvr->server->cell->cellName, acode); + } afs_PutUser(tu, READ_LOCK); } else { /* The else case shouldn't be possible and should probably be replaced by a panic? */ if (acode == VICETOKENDEAD) { - aconn->forceConnectFS = 1; /* don't check until new tokens set */ - shouldRetry = 1; /* Try again (as root). */ - } else if (acode == RXKADEXPIRED) + aconn->forceConnectFS = 1; + } else if (acode == RXKADEXPIRED) { + aconn->forceConnectFS = 0; /* don't check until new tokens set */ + aconn->user->states |= UTokensBad; afs_warnuser ("afs: Tokens for user %d for cell %s have expired\n", areq->uid, aconn->srvr->server->cell->cellName); - else + } else { + aconn->forceConnectFS = 0; /* don't check until new tokens set */ + aconn->user->states |= UTokensBad; afs_warnuser ("afs: Tokens for user %d for cell %s are discarded (rxkad error = %d)\n", areq->uid, aconn->srvr->server->cell->cellName, acode); + } } - aconn->forceConnectFS = 0; /* don't check until new tokens set */ - aconn->user->states |= UTokensBad; shouldRetry = 1; /* Try again (as root). */ } /* Check for access violation. */ -- 2.39.5