]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
add code / ID to tracking
authorAlan T. DeKok <aland@freeradius.org>
Wed, 16 Aug 2017 08:22:02 +0000 (10:22 +0200)
committerAlan T. DeKok <aland@freeradius.org>
Wed, 16 Aug 2017 08:22:02 +0000 (10:22 +0200)
so that worker.c can just do a hash / memcmp() of two tracking
entries

src/modules/proto_radius/proto_radius_udp.c

index 968524373a52f8e98e9c4c40abea7a79bc68b045..f2f0b70378f52ca897f9d219fa491e03c477fdf7 100644 (file)
@@ -42,6 +42,9 @@ typedef struct {
        uint16_t                        src_port;
        uint16_t                        dst_port;
 
+       int                             code;                   //!< for duplicate detection
+       int                             id;                     //!< for duplicate detection
+
        RADCLIENT                       *client;
 } proto_radius_udp_address_t;
 
@@ -239,6 +242,12 @@ static ssize_t mod_read(void const *instance, void **packet_ctx, fr_time_t **rec
                return 0;
        }
 
+       /*
+        *      Track the packet ID.
+        */
+       address.code = buffer[0];
+       address.id = buffer[1];
+
        tracking_status = fr_radius_tracking_entry_insert(&track, inst->ft, buffer, fr_time(), &address);
        switch (tracking_status) {
        case FR_TRACKING_ERROR: