From 0789772b1745f84c58cef4f36c61c927afec6ad8 Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Sat, 25 May 2013 17:05:10 -0400 Subject: [PATCH] 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 --- src/rx/rx.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/rx/rx.c b/src/rx/rx.c index 36ad89fc35..b819e3a7ea 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;