From 7d1dfe11dd54e1a7881c6221e99e5e28eca50c66 Mon Sep 17 00:00:00 2001 From: Derrick Brashear Date: Thu, 4 Jan 2007 21:56:30 +0000 Subject: [PATCH] DEVEL15-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 (cherry picked from commit b745079fb276da810e0b96c7b94be5cb77aebee6) --- 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