unix cm activate mtu pings
authorDerrick Brashear <shadow@dementia.org>
Thu, 10 Jun 2010 18:47:24 +0000 (14:47 -0400)
committerDerrick Brashear <shadow@dementia.org>
Mon, 14 Jun 2010 03:16:55 +0000 (20:16 -0700)
set an error code so idle dead time is enforced on sending. needed
in order that MTU pings be activated.

Change-Id: I8cf1ca81e6519b440fc679e85f327f338400c29a
Reviewed-on: http://gerrit.openafs.org/2116
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

src/afs/afs_analyze.c
src/afs/afs_conn.c

index 5c63702..dd3dd08 100644 (file)
@@ -414,7 +414,10 @@ afs_Analyze(register struct afs_conn *aconn, afs_int32 acode,
                }
            } /* if (hm_retry_int ... */
            else {
-               areq->networkError = 1;
+               if (acode == RX_MSGSIZE)
+                   shouldRetry = 1;
+               else
+                   areq->networkError = 1;
            }
        }
        return shouldRetry;
@@ -456,6 +459,10 @@ afs_Analyze(register struct afs_conn *aconn, afs_int32 acode,
        acode = 455;
 #endif /* AFS_64BIT_CLIENT */
     if ((acode < 0) && (acode != VRESTARTING)) {
+       if (acode == RX_MSGSIZE) {
+           shouldRetry = 1;
+           goto out;
+       }
        if (acode == RX_CALL_TIMEOUT) {
            serversleft = afs_BlackListOnce(areq, afid, tsp);
            if (afid)
index 0af0417..4788d09 100644 (file)
@@ -293,7 +293,10 @@ afs_ConnBySA(struct srvAddr *sap, unsigned short aport, afs_int32 acell,
        if (service == 52) {
            rx_SetConnHardDeadTime(tc->id, afs_rx_harddead);
        }
+       /* set to a RX_CALL_TIMEOUT error to allow MTU retry to trigger */
+       rx_SetServerConnIdleDeadErr(tc->id, RX_CALL_DEAD);
        rx_SetConnIdleDeadTime(tc->id, afs_rx_idledead);
+       rx_SetMsgsizeRetryErr(tc->id, RX_MSGSIZE);
 
        /*
         * Only do this for the base connection, not per-user.