[tor-commits] [tor/master] confparse, conftypes: Replace flags with their new names.

dgoulet at torproject.org dgoulet at torproject.org
Wed Sep 11 14:02:05 UTC 2019


commit 9b571d4729f0a6a6c1040ad9cb3e452ff0a5cee6
Author: Nick Mathewson <nickm at torproject.org>
Date:   Thu Sep 5 11:48:46 2019 -0400

    confparse, conftypes: Replace flags with their new names.
    
    The old names remain as #defines that cause variables to get one or
    more flags.
    
    Now every flag-testing function in confparse.c tests exactly one flag.
---
 src/app/config/confparse.c | 29 +++++------------------
 src/lib/conf/conftypes.h   | 59 ++++++++++++++++++++++++++++++++++------------
 2 files changed, 50 insertions(+), 38 deletions(-)

diff --git a/src/app/config/confparse.c b/src/app/config/confparse.c
index 7579d9ef8..dcbad0b90 100644
--- a/src/app/config/confparse.c
+++ b/src/app/config/confparse.c
@@ -531,7 +531,7 @@ config_var_has_flag(const config_var_t *var, uint32_t flag)
 static bool
 config_var_is_replaced_on_set(const config_var_t *var)
 {
-  return ! config_var_has_flag(var, VTFLAG_CUMULATIVE);
+  return ! config_var_has_flag(var, CFLG_NOREPLACE);
 }
 
 /**
@@ -541,7 +541,7 @@ config_var_is_replaced_on_set(const config_var_t *var)
 bool
 config_var_is_settable(const config_var_t *var)
 {
-  return ! config_var_has_flag(var, CVFLAG_OBSOLETE | VTFLAG_UNSETTABLE);
+  return ! config_var_has_flag(var, CFLG_NOSET);
 }
 
 /**
@@ -562,23 +562,6 @@ config_var_is_gettable(const config_var_t *var)
 }
 
 /**
- * Return true iff this is variable is "derived" from another -- that is,
- * inspecting this variable inspects part of another, and changing this
- * variable changes part of another.
- *
- * Derived variables require special handling in several ways: they do not
- * need to be copied independently when we are copying a config object, since
- * copying the variable they are derived from copies them too.  Similarly,
- * they do not need to be compared independently when listing changes, since
- * comparing the variable that they are derived from compares them too.
- **/
-static bool
-config_var_is_derived(const config_var_t *var)
-{
-  return config_var_has_flag(var, VTFLAG_CONTAINED);
-}
-
-/**
  * Return true iff we need to check <b>var</b> for changes when we are
  * comparing config options for changes.
  *
@@ -589,7 +572,7 @@ config_var_is_derived(const config_var_t *var)
 static bool
 config_var_should_list_changes(const config_var_t *var)
 {
-  return ! config_var_is_derived(var);
+  return ! config_var_has_flag(var, CFLG_NOCMP);
 }
 
 /**
@@ -603,7 +586,7 @@ config_var_should_list_changes(const config_var_t *var)
 static bool
 config_var_needs_copy(const config_var_t *var)
 {
-  return ! config_var_is_derived(var);
+  return ! config_var_has_flag(var, CFLG_NOCOPY);
 }
 
 /**h
@@ -613,7 +596,7 @@ config_var_needs_copy(const config_var_t *var)
 bool
 config_var_is_listable(const config_var_t *var)
 {
-  return ! config_var_has_flag(var, CVFLAG_INVISIBLE);
+  return ! config_var_has_flag(var, CFLG_NOLIST);
 }
 
 /**
@@ -627,7 +610,7 @@ config_var_is_listable(const config_var_t *var)
 static bool
 config_var_is_dumpable(const config_var_t *var)
 {
-  return ! config_var_has_flag(var, VTFLAG_CONTAINED | CVFLAG_NODUMP);
+  return ! config_var_has_flag(var, CFLG_NODUMP);
 }
 
 /*
diff --git a/src/lib/conf/conftypes.h b/src/lib/conf/conftypes.h
index 290b5831e..d5ab4e51c 100644
--- a/src/lib/conf/conftypes.h
+++ b/src/lib/conf/conftypes.h
@@ -132,41 +132,70 @@ typedef struct struct_magic_decl_t {
 } struct_magic_decl_t;
 
 /**
- * Flag to indicate that an option is obsolete. Any attempt to set or
- * fetch this option should produce a warning.
- **/
-#define CVFLAG_OBSOLETE  (1u<<0)
-/**
  * Flag to indicate that an option is undumpable. An undumpable option is
- * never saved to disk. For historical reasons it is prefixed with __ but
- * not with ___.
+ * never saved to disk.
+ *
+ * For historical reasons it is prefixed with __ but not with ___.
  **/
-#define CVFLAG_NODUMP    (1u<<1)
+#define CFLG_NODUMP    (1u<<0)
 /**
  * Flag to indicate that an option is "invisible". An invisible option
  * is always undumpable, and we don't tell the controller about it.
  * For historical reasons it is prefixed with ___.
  **/
-#define CVFLAG_INVISIBLE (1u<<2)
+#define CFLG_NOLIST (1u<<1)
 
 /**
  * Flag for var_type_def_t.
  * Set iff a variable of this type can never be set directly by name.
  **/
-#define VTFLAG_UNSETTABLE (1u<<3)
+#define CFLG_NOSET (1u<<2)
 /**
  * Flag for var_type_def_t.
- * Set iff a variable of this type is always contained in another
- * variable, and as such doesn't need to be dumped or copied
- * independently.
+ * Set iff a variable of this type is does not need to be copied when copying
+ * the structure that contains it.
  **/
-#define VTFLAG_CONTAINED (1u<<4)
+#define CFLG_NOCOPY (1u<<3)
+/**
+ * Flag for var_type_def_t.
+ * Set iff a variable of this type does not need to be compared when comparing
+ * two objects that contain it.
+ **/
+#define CFLG_NOCMP (1u<<4)
 /**
  * Flag for var_type_def_t.
  * Set iff a variable of this type can be set more than once without
  * destroying older values. Such variables should implement "mark_fragile".
  */
-#define VTFLAG_CUMULATIVE (1u<<5)
+#define CFLG_NOREPLACE    (1u<<5)
+
+/* Aliases for old individual options. These will get removed soon. */
+#define CVFLAG_NODUMP     CFLG_NODUMP
+#define VTFLAG_CUMULATIVE CFLG_NOREPLACE
+#define VTFLAG_UNSETTABLE CFLG_NOSET
+
+/**
+ * Set of flags to make a variable "derived" -- so that inspecting this
+ * variable inspects part of another, and changing this variable changes part
+ * of another.
+ *
+ * Derived variables require special handling in several ways: they do not
+ * need to be copied independently when we are copying a config object, since
+ * copying the variable they are derived from copies them too.  Similarly,
+ * they do not need to be compared independently when listing changes, since
+ * comparing the variable that they are derived from compares them too.
+ **/
+#define VTFLAG_CONTAINED \
+  (CFLG_NOCOPY | CFLG_NOCMP | CFLG_NODUMP)
+
+/** Set of options to make a flag invisible. */
+#define CVFLAG_INVISIBLE  \
+  (CFLG_NODUMP | CFLG_NOSET | CFLG_NOLIST)
+/**
+ * Set of flags to indicate that a configuration option is obsolete.
+ **/
+#define CVFLAG_OBSOLETE \
+  (CFLG_NOSET | CFLG_NOLIST | CFLG_NODUMP | CFLG_NOCOPY | CFLG_NOCMP)
 
 /** A variable allowed in the configuration file or on the command line. */
 typedef struct config_var_t {





More information about the tor-commits mailing list