From 53574d28fa7dbfa3a0f4adebde3ba290bedf7522 Mon Sep 17 00:00:00 2001 From: Jeffrey Hutzelman Date: Fri, 23 May 2008 15:55:47 +0000 Subject: [PATCH] DEVEL15-rx-client-keep-keepalives-20080522 LICENSE IPL10 FIXES 20727 not our bug, but, previous code refactoring broke rx. put back keepalives in cli ent rx connections while they are turned around. (cherry picked from commit c34822d6105cef7f68423e4ebbf485b2d11b9635) --- src/rx/rx.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/rx/rx.c b/src/rx/rx.c index 564691f2e..8dd3fe090 100644 --- a/src/rx/rx.c +++ b/src/rx/rx.c @@ -3006,6 +3006,7 @@ rxi_ReceivePacket(register struct rx_packet *np, osi_socket socket, } #endif /* AFS_GLOBAL_RXLOCK_KERNEL */ rxi_ClearTransmitQueue(call, 0); + rxevent_Cancel(call->keepAliveEvent, call, RX_CALL_REFCOUNT_ALIVE); break; default: /* Should not reach here, unless the peer is broken: send an abort @@ -4054,6 +4055,7 @@ rxi_ReceiveAckPacket(register struct rx_call *call, struct rx_packet *np, && call->tfirst + call->nSoftAcked >= call->tnext) { call->state = RX_STATE_DALLY; rxi_ClearTransmitQueue(call, 0); + rxevent_Cancel(call->keepAliveEvent, call, RX_CALL_REFCOUNT_ALIVE); } else if (!queue_IsEmpty(&call->tq)) { rxi_Start(0, call, 0, istack); } @@ -4318,7 +4320,6 @@ rxi_SetAcksInTransmitQueue(register struct rx_call *call) } rxevent_Cancel(call->resendEvent, call, RX_CALL_REFCOUNT_RESEND); - rxevent_Cancel(call->keepAliveEvent, call, RX_CALL_REFCOUNT_ALIVE); call->tfirst = call->tnext; call->nSoftAcked = 0; @@ -4359,7 +4360,6 @@ rxi_ClearTransmitQueue(register struct rx_call *call, register int force) #endif /* AFS_GLOBAL_RXLOCK_KERNEL */ rxevent_Cancel(call->resendEvent, call, RX_CALL_REFCOUNT_RESEND); - rxevent_Cancel(call->keepAliveEvent, call, RX_CALL_REFCOUNT_ALIVE); call->tfirst = call->tnext; /* implicitly acknowledge all data already sent */ call->nSoftAcked = 0; -- 2.39.5