#include "attrs.h"
static uint32_t instance_count = 0;
+static bool instantiated = false;
typedef struct {
uint8_t code;
}
}
+ instantiated = true;
return 0;
}
void fr_dhcpv4_global_free(void)
{
+ if (!instantiated) return;
+
fr_assert(instance_count > 0);
if (--instance_count > 0) return;
fr_dict_autofree(dhcpv4_dict);
+ instantiated = false;
}
#include "attrs.h"
static uint32_t instance_count = 0;
+static bool instantiated = false;
fr_dict_t const *dict_dhcpv6;
}
}
+ instantiated = true;
return 0;
}
void fr_dhcpv6_global_free(void)
{
+ if (!instantiated) return;
+
fr_assert(instance_count > 0);
if (--instance_count > 0) return;
fr_dict_autofree(libfreeradius_dhcpv6_dict);
+ instantiated = false;
}
static bool attr_valid(fr_dict_attr_t *da)
#include <freeradius-devel/protocol/radius/freeradius.internal.h>
static uint32_t instance_count = 0;
+static bool instantiated = false;
fr_dict_t const *dict_freeradius;
fr_dict_t const *dict_radius;
goto fail;
}
+ instantiated = true;
return 0;
}
void fr_radius_global_free(void)
{
+ if (!instantiated) return;
+
if (--instance_count != 0) return;
fr_dict_autofree(libfreeradius_radius_dict);
#include "attrs.h"
static uint32_t instance_count = 0;
+static bool instantiated = false;
fr_dict_t const *dict_tacacs;
goto fail;
}
+ instantiated = true;
return 0;
}
void fr_tacacs_global_free(void)
{
+ if (!instantiated) return;
+
fr_assert(instance_count > 0);
if (--instance_count > 0) return;
fr_dict_autofree(libfreeradius_tacacs_dict);
+ instantiated = false;
}
/** XOR the body based on the secret key.