]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
make track->address "const"
authorAlan T. DeKok <aland@freeradius.org>
Wed, 19 Aug 2020 22:15:56 +0000 (18:15 -0400)
committerAlan T. DeKok <aland@freeradius.org>
Wed, 19 Aug 2020 22:15:56 +0000 (18:15 -0400)
as it's used in dedup comparisons

src/lib/io/master.c
src/lib/io/master.h
src/modules/proto_control/proto_control.c
src/modules/proto_dhcpv4/proto_dhcpv4.c
src/modules/proto_dhcpv6/proto_dhcpv6.c
src/modules/proto_radius/proto_radius.c
src/modules/proto_radius/proto_radius_udp.c
src/modules/proto_tacacs/proto_tacacs.c
src/modules/proto_vmps/proto_vmps.c
src/modules/proto_vmps/proto_vmps_udp.c

index 1fc33eb1298be2be7647dbbe47f10731e62c8970..e20769676a9850a066d5386d907ad83229e8d60a 100644 (file)
@@ -150,6 +150,9 @@ static int track_free(fr_io_track_t *track)
 {
        if (track->in_dedup_tree) {
                fr_assert(track->client->table != NULL);
+
+               fr_assert(rbtree_finddata(track->client->table, track) != NULL);
+
                if (!rbtree_deletebydata(track->client->table, track)) {
                        fr_assert(0);
                }
@@ -849,6 +852,7 @@ static fr_io_track_t *fr_io_track_add(fr_io_client_t *client,
 {
        size_t len;
        fr_io_track_t *track, *old;
+       fr_io_address_t *my_address;
 
        /*
         *      Allocate a new tracking structure.  Most of the time
@@ -856,10 +860,10 @@ static fr_io_track_t *fr_io_track_add(fr_io_client_t *client,
         */
        MEM(track = talloc_zero_pooled_object(client, fr_io_track_t, 1, sizeof(*track) + sizeof(track->address) + 64));
        talloc_set_destructor(track, track_free);
-       MEM(track->address = talloc_zero(track, fr_io_address_t));
+       MEM(track->address = my_address = talloc_zero(track, fr_io_address_t));
 
-       memcpy(track->address, address, sizeof(*address));
-       track->address->radclient = client->radclient;
+       memcpy(my_address, address, sizeof(*address));
+       my_address->radclient = client->radclient;
 
        track->client = client;
        if (client->connection) {
index 11da7b469a5887ec463a73138c035b054468d852..6abc19b64c92e09681804ad6d244353c0bed84a4 100644 (file)
@@ -55,7 +55,7 @@ typedef struct {
         *      definition.
         */
        fr_time_t                       dynamic;        //!< timestamp for packet doing dynamic client definition
-       fr_io_address_t                 *address;       //!< of this packet.. shared between multiple packets
+       fr_io_address_t const           *address;       //!< of this packet.. shared between multiple packets
        fr_io_client_t                  *client;        //!< client handling this packet.
 
        union {
index d6fbae54f258d9e80fc18372e0ffc19162d80b14..2b4f43859fd30ac4c6aad99577d1d4ddee7fb651 100644 (file)
@@ -165,7 +165,7 @@ static int mod_decode(void const *instance, REQUEST *request, uint8_t *const dat
 {
        proto_control_t const *inst = talloc_get_type_abort_const(instance, proto_control_t);
        fr_io_track_t const *track = talloc_get_type_abort_const(request->async->packet_ctx, fr_io_track_t);
-       fr_io_address_t *address = track->address;
+       fr_io_address_t const *address = track->address;
        RADCLIENT const *client;
 
        fr_assert(data[0] < FR_RADIUS_MAX_PACKET_CODE);
@@ -235,7 +235,7 @@ static ssize_t mod_encode(void const *instance, REQUEST *request, uint8_t *buffe
 {
        proto_control_t const *inst = talloc_get_type_abort_const(instance, proto_control_t);
        fr_io_track_t const *track = talloc_get_type_abort_const(request->async->packet_ctx, fr_io_track_t);
-       fr_io_address_t *address = track->address;
+       fr_io_address_t const *address = track->address;
        RADCLIENT const *client;
 
        /*
index df1ea32de90530785b943dc7ff9fd0aa15dba705..cf7cfdede000b6767c294f20cc5c36ead2b10f70 100644 (file)
@@ -246,7 +246,7 @@ static int mod_decode(void const *instance, REQUEST *request, uint8_t *const dat
 {
        proto_dhcpv4_t const *inst = talloc_get_type_abort_const(instance, proto_dhcpv4_t);
        fr_io_track_t const *track = talloc_get_type_abort_const(request->async->packet_ctx, fr_io_track_t);
-       fr_io_address_t *address = track->address;
+       fr_io_address_t const *address = track->address;
        RADCLIENT const *client;
        RADIUS_PACKET *packet = request->packet;
 
@@ -313,7 +313,7 @@ static ssize_t mod_encode(void const *instance, REQUEST *request, uint8_t *buffe
 {
        proto_dhcpv4_t const *inst = talloc_get_type_abort_const(instance, proto_dhcpv4_t);
        fr_io_track_t const *track = talloc_get_type_abort_const(request->async->packet_ctx, fr_io_track_t);
-       fr_io_address_t *address = track->address;
+       fr_io_address_t const *address = track->address;
        dhcp_packet_t *reply = (dhcp_packet_t *) buffer;
        dhcp_packet_t *original = (dhcp_packet_t *) request->packet->data;
        ssize_t data_len;
index b1cf32b153b6f1d5050ae9eda3b77d35683e1e0b..1301725bfb03b42f5c56599c202f76fa178278f3 100644 (file)
@@ -245,7 +245,7 @@ static int mod_decode(void const *instance, REQUEST *request, uint8_t *const dat
 {
        proto_dhcpv6_t const *inst = talloc_get_type_abort_const(instance, proto_dhcpv6_t);
        fr_io_track_t const *track = talloc_get_type_abort_const(request->async->packet_ctx, fr_io_track_t);
-       fr_io_address_t *address = track->address;
+       fr_io_address_t const *address = track->address;
        RADCLIENT const *client;
        RADIUS_PACKET *packet = request->packet;
 
@@ -312,7 +312,7 @@ static ssize_t mod_encode(void const *instance, REQUEST *request, uint8_t *buffe
 {
        proto_dhcpv6_t const *inst = talloc_get_type_abort_const(instance, proto_dhcpv6_t);
        fr_io_track_t const *track = talloc_get_type_abort_const(request->async->packet_ctx, fr_io_track_t);
-       fr_io_address_t *address = track->address;
+       fr_io_address_t const *address = track->address;
        fr_dhcpv6_packet_t *reply = (fr_dhcpv6_packet_t *) buffer;
        fr_dhcpv6_packet_t *original = (fr_dhcpv6_packet_t *) request->packet->data;
        ssize_t data_len;
index 617440296dd207d22f22cdcbfbd8df36d3753ce9..3aedaeb2f4a320930c0353d838a8cdb7d5189f73 100644 (file)
@@ -277,7 +277,7 @@ static int mod_decode(void const *instance, REQUEST *request, uint8_t *const dat
 {
        proto_radius_t const    *inst = talloc_get_type_abort_const(instance, proto_radius_t);
        fr_io_track_t const     *track = talloc_get_type_abort_const(request->async->packet_ctx, fr_io_track_t);
-       fr_io_address_t         *address = track->address;
+       fr_io_address_t const   *address = track->address;
        RADCLIENT const         *client;
 
        fr_assert(data[0] < FR_RADIUS_MAX_PACKET_CODE);
@@ -400,7 +400,7 @@ static ssize_t mod_encode(void const *instance, REQUEST *request, uint8_t *buffe
 {
        proto_radius_t const    *inst = talloc_get_type_abort_const(instance, proto_radius_t);
        fr_io_track_t const     *track = talloc_get_type_abort_const(request->async->packet_ctx, fr_io_track_t);
-       fr_io_address_t         *address = track->address;
+       fr_io_address_t const   *address = track->address;
        ssize_t                 data_len;
        RADCLIENT const         *client;
 
index 4a1adc86f8e3f77e750d51e0253a77f7cbc6084b..de2a12c5cd5def283ac9ed6cbbe6531a32905386 100644 (file)
@@ -200,7 +200,7 @@ static ssize_t mod_write(fr_listen_t *li, void *packet_ctx, UNUSED fr_time_t req
        proto_radius_udp_thread_t       *thread = talloc_get_type_abort(li->thread_instance, proto_radius_udp_thread_t);
 
        fr_io_track_t                   *track = talloc_get_type_abort(packet_ctx, fr_io_track_t);
-       fr_io_address_t                 *address = track->address;
+       fr_io_address_t const           *address = track->address;
 
        int                             flags;
        ssize_t                         data_size;
index eb277f5ba5c4981393e270edcc79017a8715ebdc..b09eed8cbefd63aab37a70abb85ebcf077a85d9b 100644 (file)
@@ -238,7 +238,7 @@ static int mod_decode(void const *instance, REQUEST *request, uint8_t *const dat
 {
        proto_tacacs_t const    *inst = talloc_get_type_abort_const(instance, proto_tacacs_t);
        fr_io_track_t const     *track = talloc_get_type_abort_const(request->async->packet_ctx, fr_io_track_t);
-       fr_io_address_t         *address = track->address;
+       fr_io_address_t const   *address = track->address;
        RADCLIENT const         *client;
        fr_tacacs_packet_t const *pkt = (fr_tacacs_packet_t const *)data;
 
@@ -386,7 +386,7 @@ static ssize_t mod_encode(void const *instance, REQUEST *request, uint8_t *buffe
 {
        proto_tacacs_t const    *inst = talloc_get_type_abort_const(instance, proto_tacacs_t);
        fr_io_track_t const     *track = talloc_get_type_abort_const(request->async->packet_ctx, fr_io_track_t);
-       fr_io_address_t         *address = track->address;
+       fr_io_address_t const   *address = track->address;
        ssize_t                 data_len;
        RADCLIENT const         *client;
 
index c69249178712bc6505370ed682c93257e4d1959d..c8725f8eee8ad34b5bb5f265a88da2311f5bcb8c 100644 (file)
@@ -227,7 +227,7 @@ static int mod_decode(void const *instance, REQUEST *request, uint8_t *const dat
 {
        proto_vmps_t const *inst = talloc_get_type_abort_const(instance, proto_vmps_t);
        fr_io_track_t const *track = talloc_get_type_abort_const(request->async->packet_ctx, fr_io_track_t);
-       fr_io_address_t *address = track->address;
+       fr_io_address_t const *address = track->address;
        RADCLIENT const *client;
        RADIUS_PACKET *packet = request->packet;
 
@@ -297,7 +297,7 @@ static ssize_t mod_encode(void const *instance, REQUEST *request, uint8_t *buffe
 {
        proto_vmps_t const *inst = talloc_get_type_abort_const(instance, proto_vmps_t);
        fr_io_track_t const *track = talloc_get_type_abort_const(request->async->packet_ctx, fr_io_track_t);
-       fr_io_address_t *address = track->address;
+       fr_io_address_t const *address = track->address;
        ssize_t data_len;
        RADCLIENT const *client;
 
index 38a035d85eb03ecbabd40007a4affbb22020e81a..1ccd712af33407ecc1ae6cedabd65ddf91e869c1 100644 (file)
@@ -206,7 +206,7 @@ static ssize_t mod_write(fr_listen_t *li, void *packet_ctx, UNUSED fr_time_t req
 {
        proto_vmps_udp_thread_t         *thread = talloc_get_type_abort(li->thread_instance, proto_vmps_udp_thread_t);
        fr_io_track_t                   *track = talloc_get_type_abort(packet_ctx, fr_io_track_t);
-       fr_io_address_t                 *address = track->address;
+       fr_io_address_t const           *address = track->address;
 
        int                             flags;
        ssize_t                         data_size;