From 98e658b7821f5020c67c05503f9e2c61c945554a Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Fri, 2 May 2008 20:29:43 +0000 Subject: [PATCH] windows-server-retry-20080502 LICENSE MIT do not retry if there is no server available for the current attempt --- src/WINNT/afsd/cm_conn.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/WINNT/afsd/cm_conn.c b/src/WINNT/afsd/cm_conn.c index e81739d59..5d5b277b4 100644 --- a/src/WINNT/afsd/cm_conn.c +++ b/src/WINNT/afsd/cm_conn.c @@ -177,7 +177,7 @@ cm_Analyze(cm_conn_t *connp, cm_user_t *userp, cm_req_t *reqp, int dead_session; long timeUsed, timeLeft; long code; - char addr[16]; + char addr[16]="unknown"; int forcing_new = 0; osi_Log2(afsd_logp, "cm_Analyze connp 0x%p, code 0x%x", @@ -549,6 +549,7 @@ cm_Analyze(cm_conn_t *connp, cm_user_t *userp, cm_req_t *reqp, * In addition, we log an event to the event log */ + if (serverp) { /* Log server being offline for this volume */ sprintf(addr, "%d.%d.%d.%d", ((serverp->addr.sin_addr.s_addr & 0xff)), @@ -564,6 +565,7 @@ cm_Analyze(cm_conn_t *connp, cm_user_t *userp, cm_req_t *reqp, reqp->idleError++; retry = 1; } + } else if (errorCode >= -64 && errorCode < 0) { /* mark server as down */ lock_ObtainMutex(&serverp->mx); @@ -596,9 +598,11 @@ cm_Analyze(cm_conn_t *connp, cm_user_t *userp, cm_req_t *reqp, retry = 1; } } else if (errorCode >= ERROR_TABLE_BASE_RXK && errorCode < ERROR_TABLE_BASE_RXK + 256) { + if (serverp) { reqp->tokenIdleErrorServp = serverp; reqp->tokenError = errorCode; retry = 1; + } } else if (errorCode == VICECONNBAD || errorCode == VICETOKENDEAD) { cm_ForceNewConnections(serverp); if ( timeLeft > 2 ) -- 2.39.5