if (!saveentry)
saveentry = entry;
+ if (dflt->dflt_bool)
+ *dflt->dflt_bool = dfltentry->val_bool;
if (dflt->dflt_str)
*dflt->dflt_str = dfltentry->val_str;
if (dflt->dflt_long)
*dflt->dflt_ulong = dfltentry->val_ulong;
if (dflt->dflt_float)
*dflt->dflt_float = dfltentry->val_float;
+ if (dflt->save_bool)
+ *dflt->save_bool = saveentry->val_bool;
if (dflt->save_str)
*dflt->save_str = saveentry->val_str;
if (dflt->save_long)
#define _FRR_DEFAULTS_H
#include "config.h"
+
+#include <stdbool.h>
+
#include "compiler.h"
#ifdef HAVE_DATACENTER
const char *match_profile;
/* value to use */
+ bool val_bool;
const char *val_str;
long val_long;
unsigned long val_ulong;
*/
/* variable holding the default value for reading/use */
+ bool *dflt_bool;
const char **dflt_str;
long *dflt_long;
unsigned long *dflt_ulong;
float *dflt_float;
/* variable to use when comparing for config save */
+ bool *save_bool;
const char **save_str;
long *save_long;
unsigned long *save_ulong;
* will be expanded and blow up with a compile error. Use an enum or add an
* extra _ at the beginning (e.g. _SHARP_BLUNTNESS => DFLT__SHARP_BLUNTNESS)
*/
+#define FRR_CFG_DEFAULT_BOOL(varname, ...) \
+ _FRR_CFG_DEFAULT(bool, bool, varname, ## __VA_ARGS__)
#define FRR_CFG_DEFAULT_LONG(varname, ...) \
_FRR_CFG_DEFAULT(long, long, varname, ## __VA_ARGS__)
#define FRR_CFG_DEFAULT_ULONG(varname, ...) \