From: Alan T. DeKok Date: Wed, 16 Aug 2017 08:22:02 +0000 (+0200) Subject: add code / ID to tracking X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=293ce7e991843f;p=thirdparty%2Ffreeradius-server.git add code / ID to tracking so that worker.c can just do a hash / memcmp() of two tracking entries --- diff --git a/src/modules/proto_radius/proto_radius_udp.c b/src/modules/proto_radius/proto_radius_udp.c index 968524373a5..f2f0b70378f 100644 --- a/src/modules/proto_radius/proto_radius_udp.c +++ b/src/modules/proto_radius/proto_radius_udp.c @@ -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: