#include <freeradius-devel/server/password.h>
+#include <freeradius-devel/util/atexit.h>
#include <freeradius-devel/util/base64.h>
#include <freeradius-devel/util/base16.h>
#include <freeradius-devel/util/md4.h>
return NULL;
}
-/** Load our dictionaries
- *
- */
-int password_init(void)
+static int _password_init(UNUSED void *uctx)
{
if (fr_dict_autoload(password_dict) < 0) {
PERROR("%s", __FUNCTION__);
return 0;
}
-void password_free(void)
+static int _password_free(UNUSED void *uctx)
{
fr_dict_autofree(password_dict);
+
+ return 0;
+}
+
+/** Load our dictionaries
+ *
+ */
+int password_init(void)
+{
+ int ret;
+
+ fr_atexit_global_once_ret(&ret, _password_init, _password_free, NULL);
+
+ return ret;
}