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",
* In addition, we log an event to the event log
*/
- /* Log server being offline for this volume */
- sprintf(addr, "%d.%d.%d.%d",
- ((serverp->addr.sin_addr.s_addr & 0xff)),
- ((serverp->addr.sin_addr.s_addr & 0xff00)>> 8),
- ((serverp->addr.sin_addr.s_addr & 0xff0000)>> 16),
- ((serverp->addr.sin_addr.s_addr & 0xff000000)>> 24));
+ if (serverp) {
+ /* Log server being offline for this volume */
+ sprintf(addr, "%d.%d.%d.%d",
+ ((serverp->addr.sin_addr.s_addr & 0xff)),
+ ((serverp->addr.sin_addr.s_addr & 0xff00)>> 8),
+ ((serverp->addr.sin_addr.s_addr & 0xff0000)>> 16),
+ ((serverp->addr.sin_addr.s_addr & 0xff000000)>> 24));
#ifndef DJGPP
- LogEvent(EVENTLOG_WARNING_TYPE, MSG_RX_HARD_DEAD_TIME_EXCEEDED, addr);
+ LogEvent(EVENTLOG_WARNING_TYPE, MSG_RX_HARD_DEAD_TIME_EXCEEDED, addr);
#endif /* !DJGPP */
- osi_Log1(afsd_logp, "cm_Analyze: hardDeadTime exceeded addr[%s]",
- osi_LogSaveString(afsd_logp,addr));
- reqp->tokenIdleErrorServp = serverp;
- reqp->idleError++;
- retry = 1;
+ osi_Log1(afsd_logp, "cm_Analyze: hardDeadTime exceeded addr[%s]",
+ osi_LogSaveString(afsd_logp,addr));
+ reqp->tokenIdleErrorServp = serverp;
+ reqp->idleError++;
+ retry = 1;
+ }
}
else if (errorCode >= -64 && errorCode < 0) {
/* mark server as down */
retry = 1;
}
} else if (errorCode >= ERROR_TABLE_BASE_RXK && errorCode < ERROR_TABLE_BASE_RXK + 256) {
- reqp->tokenIdleErrorServp = serverp;
- reqp->tokenError = errorCode;
- retry = 1;
+ if (serverp) {
+ reqp->tokenIdleErrorServp = serverp;
+ reqp->tokenError = errorCode;
+ retry = 1;
+ }
} else if (errorCode == VICECONNBAD || errorCode == VICETOKENDEAD) {
cm_ForceNewConnections(serverp);
if ( timeLeft > 2 )