From: Jeffrey Altman Date: Sat, 25 May 2013 21:05:10 +0000 (-0400) Subject: rx: test for active calls in rxi_ChallengeEvent X-Git-Tag: upstream/1.8.0_pre1^2~1127 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=0789772b1745f84c58cef4f36c61c927afec6ad8;p=packages%2Fo%2Fopenafs.git rx: test for active calls in rxi_ChallengeEvent The challenge event fires when an outstanding challenge request has not been responded to. If there are no calls in the ACTIVE or PRECALL state on the connection when the challenge event fires do not re-issue the challenge. Clients do not respond to challenges when there are no active calls. Change-Id: If71b49e953ca94b8bcce767b8c2a63a054d750fe Reviewed-on: http://gerrit.openafs.org/9943 Tested-by: BuildBot Reviewed-by: Derrick Brashear Reviewed-by: Jeffrey Altman --- diff --git a/src/rx/rx.c b/src/rx/rx.c index 36ad89fc3..b819e3a7e 100644 --- a/src/rx/rx.c +++ b/src/rx/rx.c @@ -6811,6 +6811,13 @@ rxi_ChallengeEvent(struct rxevent *event, if (event) rxevent_Put(&conn->challengeEvent); + /* If there are no active calls it is not worth re-issuing the + * challenge. If the client issues another call on this connection + * the challenge can be requested at that time. + */ + if (!rxi_HasActiveCalls(conn)) + return; + if (RXS_CheckAuthentication(conn->securityObject, conn) != 0) { struct rx_packet *packet; struct clock when, now;