From b745079fb276da810e0b96c7b94be5cb77aebee6 Mon Sep 17 00:00:00 2001 From: Derrick Brashear Date: Thu, 4 Jan 2007 21:55:21 +0000 Subject: [PATCH] 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 --- src/afs/afs_analyze.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) 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); -- 2.39.5