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 <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
This commit is contained in:
Jeffrey Altman 2013-05-25 17:05:10 -04:00
parent 23fb42352a
commit 0789772b17

View File

@ -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;