rx-compute-ackdatasize-correctly-20011113
authorNickolai Zeldovich <kolya@mit.edu>
Tue, 13 Nov 2001 04:59:22 +0000 (04:59 +0000)
committerDerrick Brashear <shadow@dementia.org>
Tue, 13 Nov 2001 04:59:22 +0000 (04:59 +0000)
This patch clarifies the implicit 3 reserved bytes in rx_AckDataSize,
  and hopefully makes the code more portable for future platforms.

src/rx/rx.h

index d05cae9..a8d27bb 100644 (file)
@@ -735,7 +735,7 @@ struct rx_ackPacket {
 #define        RX_ACK_TYPE_ACK         1   /* I have this packet, although I may discard it later */
 
 /* The packet size transmitted for an acknowledge is adjusted to reflect the actual size of the acks array.  This macro defines the size */
-#define rx_AckDataSize(nAcks) (sizeof(struct rx_ackPacket) - RX_MAXACKS + (nAcks))
+#define rx_AckDataSize(nAcks) (3 + offsetof(struct rx_ackPacket, acks[nAcks]))
 
 #define        RX_CHALLENGE_TIMEOUT    2   /* Number of seconds before another authentication request packet is generated */