From: Jeffrey Altman Date: Mon, 16 Jan 2006 16:22:27 +0000 (+0000) Subject: windows-rx-ehostunreach-20060116 X-Git-Tag: openafs-devel-1_5_0~104 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=f7b9cd54e50e553486c2ad850df1a8ecaee0d954;p=packages%2Fo%2Fopenafs.git windows-rx-ehostunreach-20060116 another location where EHOSTUNREACH can be returned such that we can timeout the request immediately --- diff --git a/src/rx/rx_packet.c b/src/rx/rx_packet.c index f31a6c838..15c238011 100644 --- a/src/rx/rx_packet.c +++ b/src/rx/rx_packet.c @@ -2384,6 +2384,15 @@ rxi_SendPacketList(struct rx_call *call, struct rx_connection *conn, clock_Addmsec(&(p->retryTime), 10 + (((afs_uint32) p->backoff) << 8)); } +#ifdef AFS_NT40_ENV + /* Windows is nice -- it can tell us right away that we cannot + * reach this recipient by returning an WSAEHOSTUNREACH error + * code. So, when this happens let's "down" the host NOW so + * we don't sit around waiting for this host to timeout later. + */ + if (call && code == -1 && errno == WSAEHOSTUNREACH) + call->lastReceiveTime = 0; +#endif #if defined(KERNEL) && defined(AFS_LINUX20_ENV) /* Linux is nice -- it can tell us right away that we cannot * reach this recipient by returning an ENETUNREACH error