From: Derrick Brashear Date: Thu, 4 Jan 2007 21:55:21 +0000 (+0000) Subject: client-handle-vicetokendead-with-reconnect-20070104 X-Git-Tag: BP-openafs-windows-kdfs-ifs~873 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=b745079fb276da810e0b96c7b94be5cb77aebee6;p=packages%2Fo%2Fopenafs.git client-handle-vicetokendead-with-reconnect-20070104 basically, if the issue is really expired tokens then we force the server to tell us that instead of that our older connection is still using the old tokens for some reason, by letting a new connection happen first --- diff --git a/src/afs/afs_analyze.c b/src/afs/afs_analyze.c index e42632124..0053890f7 100644 --- a/src/afs/afs_analyze.c +++ b/src/afs/afs_analyze.c @@ -422,7 +422,10 @@ afs_Analyze(register struct conn *aconn, afs_int32 acode, tu = afs_FindUser(areq->uid, tsp->cell->cellNum, READ_LOCK); if (tu) { - if ((acode == VICETOKENDEAD) || (acode == RXKADEXPIRED)) + if (acode == VICETOKENDEAD) { + aconn->forceConnectFS = 1; /* don't check until new tokens set */ + shouldRetry = 1; /* Try again (as root). */ + } else if (acode == RXKADEXPIRED) afs_warnuser ("afs: Tokens for user of AFS id %d for cell %s have expired\n", tu->vid, aconn->srvr->server->cell->cellName); @@ -433,7 +436,10 @@ afs_Analyze(register struct conn *aconn, afs_int32 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) || (acode == RXKADEXPIRED)) + if (acode == VICETOKENDEAD) { + aconn->forceConnectFS = 1; /* don't check until new tokens set */ + shouldRetry = 1; /* Try again (as root). */ + } else if (acode == RXKADEXPIRED) afs_warnuser ("afs: Tokens for user %d for cell %s have expired\n", areq->uid, aconn->srvr->server->cell->cellName);