--- src/rx/rx_packet.c 2001/07/12 19:58:56 1.9 +++ src/rx/rx_packet.c 2001/07/19 17:48:55 @@ -1112,6 +1112,17 @@ afs_int32 tl; struct rx_serverQueueEntry *np, *nqe; + /* + * Only respond to client-initiated Rx debug packets, + * and clear the client flag in the response. + */ + if (ap->header.flags & RX_CLIENT_INITIATED) { + ap->header.flags = ap->header.flags & ~RX_CLIENT_INITIATED; + rxi_EncodePacketHeader(ap); + } else { + return ap; + } + rx_packetread(ap, 0, sizeof(struct rx_debugIn), (char *)&tin); /* all done with packet, now set length to the truth, so we can * reuse this packet */ @@ -1384,13 +1395,27 @@ register struct rx_packet *ap; int istack; { - afs_int32 tl; - rx_packetwrite(ap, 0, 65, cml_version_number+4); - tl = ap->length; + afs_int32 tl; + + /* + * Only respond to client-initiated version requests, and + * clear that flag in the response. + */ + if (ap->header.flags & RX_CLIENT_INITIATED) { + char buf[66]; + + ap->header.flags = ap->header.flags & ~RX_CLIENT_INITIATED; + rxi_EncodePacketHeader(ap); + bzero(buf, sizeof(buf)); + snprintf(buf, sizeof(buf), "%s", cml_version_number+4); + rx_packetwrite(ap, 0, 65, buf); + tl = ap->length; ap->length = 65; rxi_SendDebugPacket(ap, asocket, ahost, aport, istack); - ap->length = tl; - return ap; + ap->length = tl; + } + + return ap; }