X-Git-Url: https://git.openafs.org/?p=openafs.git;a=blobdiff_plain;f=src%2FWINNT%2Fafsd%2Fcm_conn.c;h=9e130f0d796911b9a9622de302acfda2549129b5;hp=ff2fb08aadf24e1016006e52caec0159b754cbd1;hb=ab22c7a587126c100d3c4fe40465f5ba3ebc25f4;hpb=724b6e639afee800663cb6ce9dbb9717cdca2b70 diff --git a/src/WINNT/afsd/cm_conn.c b/src/WINNT/afsd/cm_conn.c index ff2fb08..9e130f0 100644 --- a/src/WINNT/afsd/cm_conn.c +++ b/src/WINNT/afsd/cm_conn.c @@ -146,6 +146,7 @@ cm_Analyze(cm_conn_t *connp, cm_user_t *userp, cm_req_t *reqp, cm_server_t *serverp = NULL; cm_serverRef_t **serverspp = NULL; cm_serverRef_t *tsrp; + cm_cell_t *cellp = NULL; cm_ucell_t *ucellp; int retry = 0; int free_svr_list = 0; @@ -200,7 +201,16 @@ cm_Analyze(cm_conn_t *connp, cm_user_t *userp, cm_req_t *reqp, if (errorCode == CM_ERROR_TIMEDOUT) { if (timeLeft > 5 ) { thrd_Sleep(3000); - cm_CheckServers(CM_FLAG_CHECKDOWNSERVERS, NULL); + if (cellp == NULL && serverp) + cellp = serverp->cellp; + if (cellp == NULL && serversp) { + struct cm_serverRef * refp; + for ( refp=serversp ; cellp == NULL && refp != NULL; refp=refp->next) { + if ( refp->server ) + cellp = refp->server->cellp; + } + } + cm_CheckServers(CM_FLAG_CHECKDOWNSERVERS, cellp); retry = 1; } }