]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
STABLE14-client-handle-vicetokendead-with-reconnect-20070109
authorJeffrey Altman <jaltman@secure-endpoints.com>
Tue, 9 Jan 2007 15:28:19 +0000 (15:28 +0000)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Tue, 9 Jan 2007 15:28:19 +0000 (15:28 +0000)
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

index 556d94be393e21ea57f6affddc29434815741741..486907fa3bfe8fa0b4ae943bd7a7acba16ae6a11 100644 (file)
@@ -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. */