From: Jeffrey Altman Date: Tue, 9 Jan 2007 15:30:02 +0000 (+0000) Subject: DEVEL15-client-handle-vicetokendead-with-reconnect-20070109 X-Git-Tag: openafs-devel-1_5_14~10 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=112bf1269e9ccd51041a91d5a73ca203e89da322;p=packages%2Fo%2Fopenafs.git DEVEL15-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) --- diff --git a/src/afs/afs_analyze.c b/src/afs/afs_analyze.c index 0053890f7..c03fdeee8 100644 --- a/src/afs/afs_analyze.c +++ b/src/afs/afs_analyze.c @@ -423,33 +423,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. */