/*
conf.h -- header for conf.c
Copyright (C) 1998-2005 Ivo Timmermans
- 2000-2013 Guus Sliepen <guus@tinc-vpn.org>
+ 2000-2022 Guus Sliepen <guus@tinc-vpn.org>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
int line;
} config_t;
-
-extern splay_tree_t *config_tree;
+extern splay_tree_t config_tree;
extern int pinginterval;
extern int pingtimeout;
extern bool bypass_security;
extern list_t cmdline_conf;
-extern void init_configuration(splay_tree_t **config_tree);
-extern void exit_configuration(splay_tree_t **config_tree);
-extern config_t *new_config(void) __attribute__((__malloc__));
+extern void exit_configuration(splay_tree_t *config_tree);
+extern splay_tree_t *create_configuration(void) ATTR_MALLOC ATTR_DEALLOCATOR(exit_configuration);
+extern void init_configuration(splay_tree_t *);
extern void free_config(config_t *config);
+extern config_t *new_config(void) ATTR_MALLOC ATTR_DEALLOCATOR(free_config);
extern void config_add(splay_tree_t *config_tree, config_t *config);
-extern config_t *lookup_config(splay_tree_t *config_tree, char *variable);
+extern config_t *lookup_config(splay_tree_t *config_tree, const char *variable);
extern config_t *lookup_config_next(splay_tree_t *config_tree, const config_t *config);
extern bool get_config_bool(const config_t *config, bool *result);
extern bool get_config_int(const config_t *config, int *result);