Loading src/app/config/confparse.c +18 −11 Original line number Diff line number Diff line Loading @@ -511,6 +511,18 @@ config_count_options(const config_mgr_t *mgr) return smartlist_len(mgr->all_vars); } /** * Return true iff at least one bit from <b>flag</b> is set on <b>var</b>, * either in <b>var</b>'s flags, or on the flags of its type. **/ static bool config_var_has_flag(const config_var_t *var, uint32_t flag) { uint32_t have_flags = var->flags | struct_var_get_flags(&var->member); return (have_flags & flag) != 0; } /** * Return true if assigning a value to <b>var</b> replaces the previous * value. Return false if assigning a value to <b>var</b> appends Loading @@ -519,7 +531,7 @@ config_count_options(const config_mgr_t *mgr) static bool config_var_is_replaced_on_set(const config_var_t *var) { return ! struct_var_is_cumulative(&var->member); return ! config_var_has_flag(var, VTFLAG_CUMULATIVE); } /** Loading @@ -529,9 +541,7 @@ config_var_is_replaced_on_set(const config_var_t *var) bool config_var_is_settable(const config_var_t *var) { if (var->flags & CVFLAG_OBSOLETE) return false; return struct_var_is_settable(&var->member); return ! config_var_has_flag(var, CVFLAG_OBSOLETE | VTFLAG_UNSETTABLE); } /** Loading @@ -546,7 +556,7 @@ config_var_is_gettable(const config_var_t *var) * have compatibility effects. For now, let's leave them alone. */ // return (var->flags & (CVFLAG_OBSOLETE|CFGLAGS_INVISIBLE)) == 0; // return ! config_var_has_flag(var, CVFLAG_OBSOLETE|CFGLAGS_INVISIBLE); (void)var; return true; } Loading @@ -565,7 +575,7 @@ config_var_is_gettable(const config_var_t *var) static bool config_var_is_derived(const config_var_t *var) { return struct_var_is_contained(&var->member); return config_var_has_flag(var, VTFLAG_CONTAINED); } /** Loading Loading @@ -603,7 +613,7 @@ config_var_needs_copy(const config_var_t *var) bool config_var_is_listable(const config_var_t *var) { return (var->flags & CVFLAG_INVISIBLE) == 0; return ! config_var_has_flag(var, CVFLAG_INVISIBLE); } /** Loading @@ -617,10 +627,7 @@ config_var_is_listable(const config_var_t *var) static bool config_var_is_dumpable(const config_var_t *var) { if (config_var_is_derived(var)) { return false; } return (var->flags & CVFLAG_NODUMP) == 0; return ! config_var_has_flag(var, VTFLAG_CONTAINED | CVFLAG_NODUMP); } /* Loading src/lib/confmgt/structvar.c +4 −19 Original line number Diff line number Diff line Loading @@ -238,26 +238,11 @@ struct_var_get_typename(const struct_member_t *member) return def ? def->name : NULL; } bool struct_var_is_cumulative(const struct_member_t *member) { const var_type_def_t *def = get_type_def(member); return def ? var_type_is_cumulative(def) : false; } bool struct_var_is_settable(const struct_member_t *member) { const var_type_def_t *def = get_type_def(member); return def ? var_type_is_settable(def) : true; } bool struct_var_is_contained(const struct_member_t *member) /** Return all of the flags set for this struct member. */ uint32_t struct_var_get_flags(const struct_member_t *member) { const var_type_def_t *def = get_type_def(member); return def ? var_type_is_contained(def) : false; return def ? def->flags : 0; } src/lib/confmgt/structvar.h +2 −3 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ struct struct_member_t; struct config_line_t; #include <stdbool.h> #include "lib/cc/torint.h" void struct_set_magic(void *object, const struct struct_magic_decl_t *decl); Loading Loading @@ -45,9 +46,7 @@ void struct_var_mark_fragile(void *object, const char *struct_var_get_name(const struct struct_member_t *member); const char *struct_var_get_typename(const struct struct_member_t *member); bool struct_var_is_cumulative(const struct struct_member_t *member); bool struct_var_is_settable(const struct struct_member_t *member); bool struct_var_is_contained(const struct struct_member_t *member); uint32_t struct_var_get_flags(const struct struct_member_t *member); int struct_var_kvassign(void *object, const struct config_line_t *line, char **errmsg, Loading src/lib/confmgt/typedvar.c +0 −29 Original line number Diff line number Diff line Loading @@ -225,32 +225,3 @@ typed_var_mark_fragile(void *value, const var_type_def_t *def) if (def->fns->mark_fragile) def->fns->mark_fragile(value, def->params); } /** * Return true iff multiple assignments to a variable will extend its * value, rather than replacing it. **/ bool var_type_is_cumulative(const var_type_def_t *def) { return (def->flags & VTFLAG_CUMULATIVE) != 0; } /** * Return true iff this variable type is always contained in another variable, * and as such doesn't need to be dumped or copied independently. **/ bool var_type_is_contained(const var_type_def_t *def) { return (def->flags & VTFLAG_CONTAINED) != 0; } /** * Return true iff this type can not be assigned directly by the user. **/ bool var_type_is_settable(const var_type_def_t *def) { return (def->flags & VTFLAG_UNSETTABLE) == 0; } src/lib/confmgt/typedvar.h +0 −4 Original line number Diff line number Diff line Loading @@ -35,8 +35,4 @@ struct config_line_t *typed_var_kvencode(const char *key, const void *value, void typed_var_mark_fragile(void *value, const var_type_def_t *def); bool var_type_is_cumulative(const var_type_def_t *def); bool var_type_is_contained(const var_type_def_t *def); bool var_type_is_settable(const var_type_def_t *def); #endif /* !defined(TOR_LIB_CONFMGT_TYPEDVAR_H) */ Loading
src/app/config/confparse.c +18 −11 Original line number Diff line number Diff line Loading @@ -511,6 +511,18 @@ config_count_options(const config_mgr_t *mgr) return smartlist_len(mgr->all_vars); } /** * Return true iff at least one bit from <b>flag</b> is set on <b>var</b>, * either in <b>var</b>'s flags, or on the flags of its type. **/ static bool config_var_has_flag(const config_var_t *var, uint32_t flag) { uint32_t have_flags = var->flags | struct_var_get_flags(&var->member); return (have_flags & flag) != 0; } /** * Return true if assigning a value to <b>var</b> replaces the previous * value. Return false if assigning a value to <b>var</b> appends Loading @@ -519,7 +531,7 @@ config_count_options(const config_mgr_t *mgr) static bool config_var_is_replaced_on_set(const config_var_t *var) { return ! struct_var_is_cumulative(&var->member); return ! config_var_has_flag(var, VTFLAG_CUMULATIVE); } /** Loading @@ -529,9 +541,7 @@ config_var_is_replaced_on_set(const config_var_t *var) bool config_var_is_settable(const config_var_t *var) { if (var->flags & CVFLAG_OBSOLETE) return false; return struct_var_is_settable(&var->member); return ! config_var_has_flag(var, CVFLAG_OBSOLETE | VTFLAG_UNSETTABLE); } /** Loading @@ -546,7 +556,7 @@ config_var_is_gettable(const config_var_t *var) * have compatibility effects. For now, let's leave them alone. */ // return (var->flags & (CVFLAG_OBSOLETE|CFGLAGS_INVISIBLE)) == 0; // return ! config_var_has_flag(var, CVFLAG_OBSOLETE|CFGLAGS_INVISIBLE); (void)var; return true; } Loading @@ -565,7 +575,7 @@ config_var_is_gettable(const config_var_t *var) static bool config_var_is_derived(const config_var_t *var) { return struct_var_is_contained(&var->member); return config_var_has_flag(var, VTFLAG_CONTAINED); } /** Loading Loading @@ -603,7 +613,7 @@ config_var_needs_copy(const config_var_t *var) bool config_var_is_listable(const config_var_t *var) { return (var->flags & CVFLAG_INVISIBLE) == 0; return ! config_var_has_flag(var, CVFLAG_INVISIBLE); } /** Loading @@ -617,10 +627,7 @@ config_var_is_listable(const config_var_t *var) static bool config_var_is_dumpable(const config_var_t *var) { if (config_var_is_derived(var)) { return false; } return (var->flags & CVFLAG_NODUMP) == 0; return ! config_var_has_flag(var, VTFLAG_CONTAINED | CVFLAG_NODUMP); } /* Loading
src/lib/confmgt/structvar.c +4 −19 Original line number Diff line number Diff line Loading @@ -238,26 +238,11 @@ struct_var_get_typename(const struct_member_t *member) return def ? def->name : NULL; } bool struct_var_is_cumulative(const struct_member_t *member) { const var_type_def_t *def = get_type_def(member); return def ? var_type_is_cumulative(def) : false; } bool struct_var_is_settable(const struct_member_t *member) { const var_type_def_t *def = get_type_def(member); return def ? var_type_is_settable(def) : true; } bool struct_var_is_contained(const struct_member_t *member) /** Return all of the flags set for this struct member. */ uint32_t struct_var_get_flags(const struct_member_t *member) { const var_type_def_t *def = get_type_def(member); return def ? var_type_is_contained(def) : false; return def ? def->flags : 0; }
src/lib/confmgt/structvar.h +2 −3 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ struct struct_member_t; struct config_line_t; #include <stdbool.h> #include "lib/cc/torint.h" void struct_set_magic(void *object, const struct struct_magic_decl_t *decl); Loading Loading @@ -45,9 +46,7 @@ void struct_var_mark_fragile(void *object, const char *struct_var_get_name(const struct struct_member_t *member); const char *struct_var_get_typename(const struct struct_member_t *member); bool struct_var_is_cumulative(const struct struct_member_t *member); bool struct_var_is_settable(const struct struct_member_t *member); bool struct_var_is_contained(const struct struct_member_t *member); uint32_t struct_var_get_flags(const struct struct_member_t *member); int struct_var_kvassign(void *object, const struct config_line_t *line, char **errmsg, Loading
src/lib/confmgt/typedvar.c +0 −29 Original line number Diff line number Diff line Loading @@ -225,32 +225,3 @@ typed_var_mark_fragile(void *value, const var_type_def_t *def) if (def->fns->mark_fragile) def->fns->mark_fragile(value, def->params); } /** * Return true iff multiple assignments to a variable will extend its * value, rather than replacing it. **/ bool var_type_is_cumulative(const var_type_def_t *def) { return (def->flags & VTFLAG_CUMULATIVE) != 0; } /** * Return true iff this variable type is always contained in another variable, * and as such doesn't need to be dumped or copied independently. **/ bool var_type_is_contained(const var_type_def_t *def) { return (def->flags & VTFLAG_CONTAINED) != 0; } /** * Return true iff this type can not be assigned directly by the user. **/ bool var_type_is_settable(const var_type_def_t *def) { return (def->flags & VTFLAG_UNSETTABLE) == 0; }
src/lib/confmgt/typedvar.h +0 −4 Original line number Diff line number Diff line Loading @@ -35,8 +35,4 @@ struct config_line_t *typed_var_kvencode(const char *key, const void *value, void typed_var_mark_fragile(void *value, const var_type_def_t *def); bool var_type_is_cumulative(const var_type_def_t *def); bool var_type_is_contained(const var_type_def_t *def); bool var_type_is_settable(const var_type_def_t *def); #endif /* !defined(TOR_LIB_CONFMGT_TYPEDVAR_H) */