From 26c7361f2b97bca8d27c844672e28dad043f8f83 Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Mon, 16 Jan 2006 16:23:33 +0000 Subject: [PATCH] STABLE14-windows-rx-ehostunreach-20060116 another location where EHOSTUNREACH can be returned such that we can timeout the request immediately (cherry picked from commit f7b9cd54e50e553486c2ad850df1a8ecaee0d954) --- src/rx/rx_packet.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/rx/rx_packet.c b/src/rx/rx_packet.c index 614372c7b4..90f4d33612 100644 --- a/src/rx/rx_packet.c +++ b/src/rx/rx_packet.c @@ -2383,6 +2383,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