@@ -1085,7 +1085,7 @@ static fr_io_client_t *client_alloc(TALLOC_CTX *ctx, fr_io_client_state_t state,
10851085}
10861086
10871087
1088- static fr_io_track_t * fr_io_track_add (fr_io_client_t * client ,
1088+ static fr_io_track_t * fr_io_track_add (fr_listen_t const * li , fr_io_client_t * client ,
10891089 fr_io_address_t * address ,
10901090 uint8_t const * packet , size_t packet_len ,
10911091 fr_time_t recv_time , bool * is_dup )
@@ -1112,6 +1112,7 @@ static fr_io_track_t *fr_io_track_add(fr_io_client_t *client,
11121112 my_address -> radclient = client -> radclient ;
11131113 }
11141114
1115+ track -> li = li ;
11151116 track -> client = client ;
11161117
11171118 track -> timestamp = recv_time ;
@@ -1709,7 +1710,7 @@ static ssize_t mod_read(fr_listen_t *li, void **packet_ctx, fr_time_t *recv_time
17091710 static fr_rate_limit_t tracking_failed ;
17101711 bool is_dup = false;
17111712
1712- track = fr_io_track_add (client , & address , buffer , packet_len , recv_time , & is_dup );
1713+ track = fr_io_track_add (li , client , & address , buffer , packet_len , recv_time , & is_dup );
17131714 if (!track ) {
17141715 RATE_LIMIT_LOCAL (thread ? & thread -> rate_limit .tracking_failed : & tracking_failed ,
17151716 ERROR , "Failed tracking packet from client %s - discarding it" ,
@@ -1954,7 +1955,7 @@ static int mod_inject(fr_listen_t *li, uint8_t const *buffer, size_t buffer_len,
19541955 /*
19551956 * Track this packet, because that's what mod_read expects.
19561957 */
1957- track = fr_io_track_add (connection -> client , connection -> address ,
1958+ track = fr_io_track_add (li , connection -> client , connection -> address ,
19581959 buffer , buffer_len , recv_time , & is_dup );
19591960 if (!track ) {
19601961 DEBUG2 ("Failed injecting packet to tracking table" );
@@ -3304,6 +3305,8 @@ fr_io_track_t *fr_master_io_track_alloc(fr_listen_t *li, fr_client_t *radclient,
33043305
33053306 MEM (track = talloc_zero_pooled_object (client , fr_io_track_t , 1 , sizeof (* track ) + sizeof (track -> address ) + 64 ));
33063307 MEM (track -> address = address = talloc_zero (track , fr_io_address_t ));
3308+
3309+ track -> li = li ;
33073310 track -> client = client ;
33083311
33093312 address -> socket .inet .src_port = src_port ;
0 commit comments