*
*/
typedef struct fr_io_client_t {
+ void *parent; //!< talloc parent sucks
fr_io_client_state_t state; //!< state of this client
fr_ipaddr_t src_ipaddr; //!< packets come from this address
fr_ipaddr_t network; //!< network for dynamic clients
MEM(connection->client = talloc_named(NULL, sizeof(fr_io_client_t), "fr_io_client_t"));
memset(connection->client, 0, sizeof(*connection->client));
+
+ connection->client->parent = connection;
MEM(connection->client->radclient = radclient = radclient_clone(connection->client, client->radclient));
talloc_set_destructor(connection, connection_free);
track->client = client;
if (client->connected) {
- fr_io_connection_t *connection = talloc_parent(client);
+ fr_io_connection_t *connection = client->parent;
track->address = connection->address;
}
MEM(client = talloc_named(NULL, sizeof(fr_io_client_t), "fr_io_client_t"));
memset(client, 0, sizeof(*client));
+ client->parent = inst;
client->state = state;
client->src_ipaddr = radclient->ipaddr;
client->radclient = radclient;
// @todo - print out what we plan on doing next
- get_inst(talloc_parent(client), &inst, &connection, NULL);
+ get_inst(client->parent, &inst, &connection, NULL);
rad_assert(client->state != PR_CLIENT_STATIC);