[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[tor-commits] [tor/master] Add a "flags" member to config_var_t
commit 5b252d31ede521bea53c690693a2ab3d74c8fef4
Author: Nick Mathewson <nickm@xxxxxxxxxxxxxx>
Date: Thu Jun 20 16:07:00 2019 -0400
Add a "flags" member to config_var_t
Additionally, adjust the macros so that we can add new members like
this more easily.
---
src/lib/conf/confmacros.h | 2 +-
src/lib/conf/conftesting.h | 4 ++--
src/lib/conf/conftypes.h | 3 ++-
src/test/test_confparse.c | 16 +++++++---------
4 files changed, 12 insertions(+), 13 deletions(-)
diff --git a/src/lib/conf/confmacros.h b/src/lib/conf/confmacros.h
index 29040e1f5..4242137c5 100644
--- a/src/lib/conf/confmacros.h
+++ b/src/lib/conf/confmacros.h
@@ -19,7 +19,7 @@
* Used to indicate the end of an array of configuration variables.
**/
#define END_OF_CONFIG_VARS \
- { { .name = NULL }, NULL DUMMY_CONF_TEST_MEMBERS }
+ { .member = { .name = NULL } DUMMY_CONF_TEST_MEMBERS }
/**
* Declare a config_var_t as a member named <b>membername</b> of the structure
diff --git a/src/lib/conf/conftesting.h b/src/lib/conf/conftesting.h
index f4aca442a..a40c9bc97 100644
--- a/src/lib/conf/conftesting.h
+++ b/src/lib/conf/conftesting.h
@@ -68,8 +68,8 @@ typedef union {
#define CONF_CHECK_VAR_TYPE(tp, conftype, member) \
{ . conftype = &tp ## _dummy . member }
#define CONF_TEST_MEMBERS(tp, conftype, member) \
- , CONF_CHECK_VAR_TYPE(tp, conftype, member)
-#define DUMMY_CONF_TEST_MEMBERS , { .INT=NULL }
+ , .var_ptr_dummy=CONF_CHECK_VAR_TYPE(tp, conftype, member)
+#define DUMMY_CONF_TEST_MEMBERS , .var_ptr_dummy={ .INT=NULL }
#define DUMMY_TYPECHECK_INSTANCE(tp) \
static tp tp ## _dummy
diff --git a/src/lib/conf/conftypes.h b/src/lib/conf/conftypes.h
index 72697e8ee..028a88991 100644
--- a/src/lib/conf/conftypes.h
+++ b/src/lib/conf/conftypes.h
@@ -110,7 +110,8 @@ typedef struct config_var_t {
struct_member_t member; /** A struct member corresponding to this
* variable. */
const char *initvalue; /**< String (or null) describing initial value. */
-
+ uint32_t flags; /**< One or more flags describing special handling for this
+ * variable */
#ifdef TOR_UNIT_TESTS
/** Used for compiler-magic to typecheck the corresponding field in the
* corresponding struct. Only used in unit test mode, at compile-time. */
diff --git a/src/test/test_confparse.c b/src/test/test_confparse.c
index 2f408b5b6..4bf66f323 100644
--- a/src/test/test_confparse.c
+++ b/src/test/test_confparse.c
@@ -52,9 +52,8 @@ static test_struct_t test_struct_t_dummy;
CONFIG_VAR_ETYPE(test_struct_t, varname, conftype, member, initvalue)
#define V(member,conftype,initvalue) \
VAR(#member, conftype, member, initvalue)
-
-#define OBSOLETE(varname) \
- { { .name=varname, .type=CONFIG_TYPE_OBSOLETE }, NULL, {.INT=NULL} }
+#define OBSOLETE(varname) \
+ CONFIG_VAR_OBSOLETE(varname)
static config_var_t test_vars[] = {
V(s, STRING, "hello"),
@@ -78,12 +77,11 @@ static config_var_t test_vars[] = {
VAR("LineTypeB", LINELIST_S, mixed_lines, NULL),
OBSOLETE("obsolete"),
{
- { .name = "routerset",
- .type = CONFIG_TYPE_EXTENDED,
- .type_def = &ROUTERSET_type_defn,
- .offset = offsetof(test_struct_t, routerset),
- },
- NULL, {.INT=NULL}
+ .member = { .name = "routerset",
+ .type = CONFIG_TYPE_EXTENDED,
+ .type_def = &ROUTERSET_type_defn,
+ .offset = offsetof(test_struct_t, routerset),
+ },
},
VAR("__HiddenInt", POSINT, hidden_int, "0"),
VAR("MixedHiddenLines", LINELIST_V, mixed_hidden_lines, NULL),
_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits