diff options
-rw-r--r-- | src/config.y | 4 | ||||
-rw-r--r-- | src/types.h | 5 |
2 files changed, 7 insertions, 2 deletions
diff --git a/src/config.y b/src/config.y index e9ab3af..95ceaa2 100644 --- a/src/config.y +++ b/src/config.y @@ -560,8 +560,8 @@ boolean: TOK_YES { $$ = true; } | TOK_NO { $$ = false; } ; -autobool: TOK_AUTO { $$ = (fastd_tristate_t){ .set = false }; } - | boolean { $$ = (fastd_tristate_t){ .set = true, .state = $1 }; } +autobool: TOK_AUTO { $$ = fastd_tristate_undef; } + | boolean { $$ = $1 ? fastd_tristate_true : fastd_tristate_false; } ; colon_or_port: ':' diff --git a/src/types.h b/src/types.h index 2dcfa58..3af287a 100644 --- a/src/types.h +++ b/src/types.h @@ -47,6 +47,11 @@ typedef struct fastd_tristate { bool state : 1; } fastd_tristate_t; +static const fastd_tristate_t fastd_tristate_true = {true, true}; +static const fastd_tristate_t fastd_tristate_false = {true, false}; +static const fastd_tristate_t fastd_tristate_undef = {false, false}; + + typedef enum fastd_mode { MODE_TAP, MODE_TUN, |