From 3c473e2bb2693ad582904973e6a1861c2918a8a7 Mon Sep 17 00:00:00 2001 From: obarun <eric@obarun.org> Date: Fri, 22 Dec 2023 10:52:49 +1100 Subject: [PATCH] switch field enable from Master resolve file to tree resolve file --- src/include/66/tree.h | 10 +++--- src/lib66/tree/tree_isenabled.c | 35 +++++-------------- src/lib66/tree/tree_resolve_copy.c | 1 + src/lib66/tree/tree_resolve_get_field_tosa.c | 5 +++ src/lib66/tree/tree_resolve_master_copy.c | 4 +-- .../tree/tree_resolve_master_get_field_tosa.c | 9 ----- .../tree/tree_resolve_master_modify_field.c | 13 ------- src/lib66/tree/tree_resolve_master_read_cdb.c | 8 ----- .../tree/tree_resolve_master_write_cdb.c | 6 ---- src/lib66/tree/tree_resolve_modify_field.c | 8 +++++ src/lib66/tree/tree_resolve_read_cdb.c | 4 +++ src/lib66/tree/tree_resolve_write_cdb.c | 3 ++ src/lib66/tree/tree_switch_current.c | 2 +- 13 files changed, 36 insertions(+), 72 deletions(-) diff --git a/src/include/66/tree.h b/src/include/66/tree.h index 584ab7ea..3e291ded 100644 --- a/src/include/66/tree.h +++ b/src/include/66/tree.h @@ -39,6 +39,7 @@ struct resolve_tree_s stralloc sa ; uint32_t name ; + uint32_t enabled ; uint32_t depends ; uint32_t requiredby ; uint32_t allow ; @@ -54,12 +55,13 @@ struct resolve_tree_s uint32_t init ;//not initialized->0, initialized->1 uint32_t supervised ;//not superviseded->0, supervised->1 } ; -#define RESOLVE_TREE_ZERO { 0,STRALLOC_ZERO,0,0,0,0,0,0,0,0,0,0,0,0,0 } +#define RESOLVE_TREE_ZERO { 0,STRALLOC_ZERO,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } typedef enum resolve_tree_enum_e resolve_tree_enum_t, *resolve_tree_enum_t_ref; enum resolve_tree_enum_e { E_RESOLVE_TREE_NAME = 0, + E_RESOLVE_TREE_ENABLED, E_RESOLVE_TREE_DEPENDS, E_RESOLVE_TREE_REQUIREDBY, E_RESOLVE_TREE_ALLOW, @@ -83,27 +85,23 @@ struct resolve_tree_master_s uint32_t name ; uint32_t allow ; - uint32_t enabled ; uint32_t current ; uint32_t contents ; uint32_t nallow ; - uint32_t nenabled ; uint32_t ncontents ; } ; -#define RESOLVE_TREE_MASTER_ZERO { 0,STRALLOC_ZERO,0,0,0,0,0,0,0,0 } +#define RESOLVE_TREE_MASTER_ZERO { 0,STRALLOC_ZERO,0,0,0,0,0,0 } typedef enum resolve_tree_master_enum_e resolve_tree_master_enum_t, *resolve_tree_master_enum_t_ref; enum resolve_tree_master_enum_e { E_RESOLVE_TREE_MASTER_NAME = 0, E_RESOLVE_TREE_MASTER_ALLOW, - E_RESOLVE_TREE_MASTER_ENABLED, E_RESOLVE_TREE_MASTER_CURRENT, E_RESOLVE_TREE_MASTER_CONTENTS, E_RESOLVE_TREE_MASTER_NALLOW, - E_RESOLVE_TREE_MASTER_NENABLED, E_RESOLVE_TREE_MASTER_NCONTENTS, E_RESOLVE_TREE_MASTER_ENDOFKEY } ; diff --git a/src/lib66/tree/tree_isenabled.c b/src/lib66/tree/tree_isenabled.c index 1c5fce95..da00a933 100644 --- a/src/lib66/tree/tree_isenabled.c +++ b/src/lib66/tree/tree_isenabled.c @@ -27,33 +27,16 @@ int tree_isenabled(char const *base, char const *treename) log_flow() ; int e = -1 ; - size_t pos = 0 ; - stralloc sa = STRALLOC_ZERO ; - resolve_tree_master_t mres = RESOLVE_TREE_MASTER_ZERO ; - resolve_wrapper_t_ref wres = resolve_set_struct(DATA_TREE_MASTER, &mres) ; + resolve_tree_t tres = RESOLVE_TREE_ZERO ; + resolve_wrapper_t_ref wres = resolve_set_struct(DATA_TREE, &tres) ; - if (resolve_read_g(wres, base, SS_MASTER + 1) <= 0) - goto err ; - - if (mres.nenabled) { - - if (!sastr_clean_string(&sa, mres.sa.s + mres.enabled)) - goto err ; - - e = 0 ; - - FOREACH_SASTR(&sa, pos) { - - if (!strcmp(treename, sa.s + pos)) { - e = 1 ; - break ; - } - } - } - else e = 0 ; - - err: + if (resolve_read_g(wres, base, treename) <= 0) { resolve_free(wres) ; - stralloc_free(&sa) ; return e ; + } + + e = tres.enabled ; + + resolve_free(wres) ; + return e ; } diff --git a/src/lib66/tree/tree_resolve_copy.c b/src/lib66/tree/tree_resolve_copy.c index 54720d0d..1808780d 100644 --- a/src/lib66/tree/tree_resolve_copy.c +++ b/src/lib66/tree/tree_resolve_copy.c @@ -35,6 +35,7 @@ int tree_resolve_copy(resolve_tree_t *dst, resolve_tree_t *tres) return 0 ; dst->name = tres->name ; + dst->enabled = tres->enabled ; dst->depends = tres->depends ; dst->requiredby = tres->requiredby ; dst->allow = tres->allow ; diff --git a/src/lib66/tree/tree_resolve_get_field_tosa.c b/src/lib66/tree/tree_resolve_get_field_tosa.c index de13c3c3..7d174a2e 100644 --- a/src/lib66/tree/tree_resolve_get_field_tosa.c +++ b/src/lib66/tree/tree_resolve_get_field_tosa.c @@ -33,6 +33,11 @@ int tree_resolve_get_field_tosa(stralloc *sa, resolve_tree_t *tres, resolve_tree str = tres->sa.s + tres->name ; break ; + case E_RESOLVE_TREE_ENABLED: + fmt[uint32_fmt(fmt,tres->enabled)] = 0 ; + str = fmt ; + break ; + case E_RESOLVE_TREE_DEPENDS: str = tres->sa.s + tres->depends ; break ; diff --git a/src/lib66/tree/tree_resolve_master_copy.c b/src/lib66/tree/tree_resolve_master_copy.c index 1685cafe..6416f46b 100644 --- a/src/lib66/tree/tree_resolve_master_copy.c +++ b/src/lib66/tree/tree_resolve_master_copy.c @@ -35,12 +35,10 @@ int tree_resolve_master_copy(resolve_tree_master_t *dst, resolve_tree_master_t * dst->name = mres->name ; dst->allow = mres->allow ; - dst->enabled = mres->enabled ; dst->current = mres->current ; dst->current = mres->contents ; dst->nallow = mres->nallow ; - dst->nenabled = mres->nenabled ; - dst->nenabled = mres->ncontents ; + dst->ncontents = mres->ncontents ; return 1 ; diff --git a/src/lib66/tree/tree_resolve_master_get_field_tosa.c b/src/lib66/tree/tree_resolve_master_get_field_tosa.c index 2edbf25a..dd81a10e 100644 --- a/src/lib66/tree/tree_resolve_master_get_field_tosa.c +++ b/src/lib66/tree/tree_resolve_master_get_field_tosa.c @@ -37,10 +37,6 @@ int tree_resolve_master_get_field_tosa(stralloc *sa, resolve_tree_master_t *mres str = mres->sa.s + mres->allow ; break ; - case E_RESOLVE_TREE_MASTER_ENABLED: - str = mres->sa.s + mres->enabled ; - break ; - case E_RESOLVE_TREE_MASTER_CURRENT: str = mres->sa.s + mres->current ; break ; @@ -54,11 +50,6 @@ int tree_resolve_master_get_field_tosa(stralloc *sa, resolve_tree_master_t *mres str = fmt ; break ; - case E_RESOLVE_TREE_MASTER_NENABLED: - fmt[uint32_fmt(fmt,mres->nenabled)] = 0 ; - str = fmt ; - break ; - case E_RESOLVE_TREE_MASTER_NCONTENTS: fmt[uint32_fmt(fmt,mres->ncontents)] = 0 ; str = fmt ; diff --git a/src/lib66/tree/tree_resolve_master_modify_field.c b/src/lib66/tree/tree_resolve_master_modify_field.c index d863b1c2..e4a1108f 100644 --- a/src/lib66/tree/tree_resolve_master_modify_field.c +++ b/src/lib66/tree/tree_resolve_master_modify_field.c @@ -26,11 +26,9 @@ resolve_field_table_t resolve_tree_master_field_table[] = { [E_RESOLVE_TREE_MASTER_NAME] = { .field = "name" }, [E_RESOLVE_TREE_MASTER_ALLOW] = { .field = "allow" }, - [E_RESOLVE_TREE_MASTER_ENABLED] = { .field = "enabled" }, [E_RESOLVE_TREE_MASTER_CURRENT] = { .field = "current" }, [E_RESOLVE_TREE_MASTER_CONTENTS] = { .field = "contents" }, [E_RESOLVE_TREE_MASTER_NALLOW] = { .field = "nallow" }, - [E_RESOLVE_TREE_MASTER_NENABLED] = { .field = "nenabled" }, [E_RESOLVE_TREE_MASTER_NCONTENTS] = { .field = "ncontents" }, [E_RESOLVE_TREE_MASTER_ENDOFKEY] = { .field = 0 } } ; @@ -54,10 +52,6 @@ int tree_resolve_master_modify_field(resolve_tree_master_t *mres, uint8_t field, mres->allow = resolve_add_string(wres,data) ; break ; - case E_RESOLVE_TREE_MASTER_ENABLED: - mres->enabled = resolve_add_string(wres,data) ; - break ; - case E_RESOLVE_TREE_MASTER_CURRENT: mres->current = resolve_add_string(wres,data) ; break ; @@ -73,13 +67,6 @@ int tree_resolve_master_modify_field(resolve_tree_master_t *mres, uint8_t field, mres->nallow = ifield ; break ; - case E_RESOLVE_TREE_MASTER_NENABLED: - if (!data) - data = "0" ; - if (!uint0_scan(data, &ifield)) goto err ; - mres->nenabled = ifield ; - break ; - case E_RESOLVE_TREE_MASTER_NCONTENTS: if (!data) data = "0" ; diff --git a/src/lib66/tree/tree_resolve_master_read_cdb.c b/src/lib66/tree/tree_resolve_master_read_cdb.c index 6776b513..a3bdd5eb 100644 --- a/src/lib66/tree/tree_resolve_master_read_cdb.c +++ b/src/lib66/tree/tree_resolve_master_read_cdb.c @@ -43,10 +43,6 @@ int tree_resolve_master_read_cdb(cdb *c, resolve_tree_master_t *mres) resolve_find_cdb(&tmp,c,"allow") ; mres->allow = tmp.len ? resolve_add_string(wres,tmp.s) : 0 ; - /* enabled */ - resolve_find_cdb(&tmp,c,"enabled") ; - mres->enabled = tmp.len ? resolve_add_string(wres,tmp.s) : 0 ; - /* current */ resolve_find_cdb(&tmp,c,"current") ; mres->current = tmp.len ? resolve_add_string(wres,tmp.s) : 0 ; @@ -59,10 +55,6 @@ int tree_resolve_master_read_cdb(cdb *c, resolve_tree_master_t *mres) x = resolve_find_cdb(&tmp,c,"nallow") ; mres->nallow = x ; - /* nenabled */ - x = resolve_find_cdb(&tmp,c,"nenabled") ; - mres->nenabled = x ; - /* ncontents */ x = resolve_find_cdb(&tmp,c,"ncontents") ; mres->ncontents = x ; diff --git a/src/lib66/tree/tree_resolve_master_write_cdb.c b/src/lib66/tree/tree_resolve_master_write_cdb.c index 38176b66..3c121bb9 100644 --- a/src/lib66/tree/tree_resolve_master_write_cdb.c +++ b/src/lib66/tree/tree_resolve_master_write_cdb.c @@ -31,9 +31,6 @@ int tree_resolve_master_write_cdb(cdbmaker *c, resolve_tree_master_t *mres) /* allow */ !resolve_add_cdb(c,"allow",str, mres->allow, 1) || - /* enabled */ - !resolve_add_cdb(c,"enabled",str, mres->enabled, 1) || - /* current */ !resolve_add_cdb(c,"current",str, mres->current, 1) || @@ -43,9 +40,6 @@ int tree_resolve_master_write_cdb(cdbmaker *c, resolve_tree_master_t *mres) /* nallow */ !resolve_add_cdb_uint(c,"nallow", mres->nallow) || - /* nenabled */ - !resolve_add_cdb_uint(c,"nenabled",mres->nenabled) || - /* ncontents */ !resolve_add_cdb_uint(c,"ncontents",mres->ncontents)) return 0 ; diff --git a/src/lib66/tree/tree_resolve_modify_field.c b/src/lib66/tree/tree_resolve_modify_field.c index 714b5e51..b2c04698 100644 --- a/src/lib66/tree/tree_resolve_modify_field.c +++ b/src/lib66/tree/tree_resolve_modify_field.c @@ -25,6 +25,7 @@ resolve_field_table_t resolve_tree_field_table[] = { [E_RESOLVE_TREE_NAME] = { .field = "name" }, + [E_RESOLVE_TREE_NAME] = { .field = "enabled" }, [E_RESOLVE_TREE_DEPENDS] = { .field = "depends" }, [E_RESOLVE_TREE_REQUIREDBY] = { .field = "requiredby" }, [E_RESOLVE_TREE_ALLOW] = { .field = "allow" }, @@ -55,6 +56,13 @@ int tree_resolve_modify_field(resolve_tree_t *tres, uint8_t field, char const *d tres->name = resolve_add_string(wres,data) ; break ; + case E_RESOLVE_TREE_ENABLED: + if (!data) + data = "0" ; + if (!uint0_scan(data, &ifield)) goto err ; + tres->enabled = ifield ; + break ; + case E_RESOLVE_TREE_DEPENDS: tres->depends = resolve_add_string(wres,data) ; break ; diff --git a/src/lib66/tree/tree_resolve_read_cdb.c b/src/lib66/tree/tree_resolve_read_cdb.c index 0c2793a3..e683ee8e 100644 --- a/src/lib66/tree/tree_resolve_read_cdb.c +++ b/src/lib66/tree/tree_resolve_read_cdb.c @@ -39,6 +39,10 @@ int tree_resolve_read_cdb(cdb *c, resolve_tree_t *tres) resolve_find_cdb(&tmp,c,"name") ; tres->name = tmp.len ? resolve_add_string(wres,tmp.s) : 0 ; + /* enabled */ + x = resolve_find_cdb(&tmp,c,"enabled") ; + tres->enabled = x ; + /* depends */ resolve_find_cdb(&tmp,c,"depends") ; tres->depends = tmp.len ? resolve_add_string(wres,tmp.s) : 0 ; diff --git a/src/lib66/tree/tree_resolve_write_cdb.c b/src/lib66/tree/tree_resolve_write_cdb.c index c33b1c46..efb62485 100644 --- a/src/lib66/tree/tree_resolve_write_cdb.c +++ b/src/lib66/tree/tree_resolve_write_cdb.c @@ -43,6 +43,9 @@ int tree_resolve_write_cdb(cdbmaker *c, resolve_tree_t *tres) /* contents */ !resolve_add_cdb(c,"contents",str, tres->contents, 1) || + /* enabled */ + !resolve_add_cdb_uint(c,"enabled",tres->enabled) || + /* ndepends */ !resolve_add_cdb_uint(c,"ndepends",tres->ndepends) || diff --git a/src/lib66/tree/tree_switch_current.c b/src/lib66/tree/tree_switch_current.c index 6cc66522..3720110b 100644 --- a/src/lib66/tree/tree_switch_current.c +++ b/src/lib66/tree/tree_switch_current.c @@ -33,7 +33,7 @@ int tree_switch_current(char const *base, char const *treename) } if (!resolve_modify_field_g(wres, base, SS_MASTER + 1, E_RESOLVE_TREE_MASTER_CURRENT, treename)) { - log_warnu("modify field: ", resolve_tree_master_field_table[E_RESOLVE_TREE_MASTER_CURRENT].field," of inner resolve file with value: ", treename) ; + log_warnu("modify field: ", resolve_tree_master_field_table[E_RESOLVE_TREE_MASTER_CURRENT].field," of Master resolve file with value: ", treename) ; goto freed ; } -- GitLab