Skip to content
Snippets Groups Projects
Commit 3c473e2b authored by Eric Vidal's avatar Eric Vidal :speech_balloon:
Browse files

switch field enable from Master resolve file to tree resolve file

parent 5488024e
Branches
Tags
No related merge requests found
Showing with 36 additions and 72 deletions
...@@ -39,6 +39,7 @@ struct resolve_tree_s ...@@ -39,6 +39,7 @@ struct resolve_tree_s
stralloc sa ; stralloc sa ;
uint32_t name ; uint32_t name ;
uint32_t enabled ;
uint32_t depends ; uint32_t depends ;
uint32_t requiredby ; uint32_t requiredby ;
uint32_t allow ; uint32_t allow ;
...@@ -54,12 +55,13 @@ struct resolve_tree_s ...@@ -54,12 +55,13 @@ struct resolve_tree_s
uint32_t init ;//not initialized->0, initialized->1 uint32_t init ;//not initialized->0, initialized->1
uint32_t supervised ;//not superviseded->0, supervised->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; typedef enum resolve_tree_enum_e resolve_tree_enum_t, *resolve_tree_enum_t_ref;
enum resolve_tree_enum_e enum resolve_tree_enum_e
{ {
E_RESOLVE_TREE_NAME = 0, E_RESOLVE_TREE_NAME = 0,
E_RESOLVE_TREE_ENABLED,
E_RESOLVE_TREE_DEPENDS, E_RESOLVE_TREE_DEPENDS,
E_RESOLVE_TREE_REQUIREDBY, E_RESOLVE_TREE_REQUIREDBY,
E_RESOLVE_TREE_ALLOW, E_RESOLVE_TREE_ALLOW,
...@@ -83,27 +85,23 @@ struct resolve_tree_master_s ...@@ -83,27 +85,23 @@ struct resolve_tree_master_s
uint32_t name ; uint32_t name ;
uint32_t allow ; uint32_t allow ;
uint32_t enabled ;
uint32_t current ; uint32_t current ;
uint32_t contents ; uint32_t contents ;
uint32_t nallow ; uint32_t nallow ;
uint32_t nenabled ;
uint32_t ncontents ; 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; typedef enum resolve_tree_master_enum_e resolve_tree_master_enum_t, *resolve_tree_master_enum_t_ref;
enum resolve_tree_master_enum_e enum resolve_tree_master_enum_e
{ {
E_RESOLVE_TREE_MASTER_NAME = 0, E_RESOLVE_TREE_MASTER_NAME = 0,
E_RESOLVE_TREE_MASTER_ALLOW, E_RESOLVE_TREE_MASTER_ALLOW,
E_RESOLVE_TREE_MASTER_ENABLED,
E_RESOLVE_TREE_MASTER_CURRENT, E_RESOLVE_TREE_MASTER_CURRENT,
E_RESOLVE_TREE_MASTER_CONTENTS, E_RESOLVE_TREE_MASTER_CONTENTS,
E_RESOLVE_TREE_MASTER_NALLOW, E_RESOLVE_TREE_MASTER_NALLOW,
E_RESOLVE_TREE_MASTER_NENABLED,
E_RESOLVE_TREE_MASTER_NCONTENTS, E_RESOLVE_TREE_MASTER_NCONTENTS,
E_RESOLVE_TREE_MASTER_ENDOFKEY E_RESOLVE_TREE_MASTER_ENDOFKEY
} ; } ;
......
...@@ -27,33 +27,16 @@ int tree_isenabled(char const *base, char const *treename) ...@@ -27,33 +27,16 @@ int tree_isenabled(char const *base, char const *treename)
log_flow() ; log_flow() ;
int e = -1 ; int e = -1 ;
size_t pos = 0 ; resolve_tree_t tres = RESOLVE_TREE_ZERO ;
stralloc sa = STRALLOC_ZERO ; resolve_wrapper_t_ref wres = resolve_set_struct(DATA_TREE, &tres) ;
resolve_tree_master_t mres = RESOLVE_TREE_MASTER_ZERO ;
resolve_wrapper_t_ref wres = resolve_set_struct(DATA_TREE_MASTER, &mres) ;
if (resolve_read_g(wres, base, SS_MASTER + 1) <= 0) if (resolve_read_g(wres, base, treename) <= 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:
resolve_free(wres) ; resolve_free(wres) ;
stralloc_free(&sa) ;
return e ; return e ;
}
e = tres.enabled ;
resolve_free(wres) ;
return e ;
} }
...@@ -35,6 +35,7 @@ int tree_resolve_copy(resolve_tree_t *dst, resolve_tree_t *tres) ...@@ -35,6 +35,7 @@ int tree_resolve_copy(resolve_tree_t *dst, resolve_tree_t *tres)
return 0 ; return 0 ;
dst->name = tres->name ; dst->name = tres->name ;
dst->enabled = tres->enabled ;
dst->depends = tres->depends ; dst->depends = tres->depends ;
dst->requiredby = tres->requiredby ; dst->requiredby = tres->requiredby ;
dst->allow = tres->allow ; dst->allow = tres->allow ;
......
...@@ -33,6 +33,11 @@ int tree_resolve_get_field_tosa(stralloc *sa, resolve_tree_t *tres, resolve_tree ...@@ -33,6 +33,11 @@ int tree_resolve_get_field_tosa(stralloc *sa, resolve_tree_t *tres, resolve_tree
str = tres->sa.s + tres->name ; str = tres->sa.s + tres->name ;
break ; break ;
case E_RESOLVE_TREE_ENABLED:
fmt[uint32_fmt(fmt,tres->enabled)] = 0 ;
str = fmt ;
break ;
case E_RESOLVE_TREE_DEPENDS: case E_RESOLVE_TREE_DEPENDS:
str = tres->sa.s + tres->depends ; str = tres->sa.s + tres->depends ;
break ; break ;
......
...@@ -35,12 +35,10 @@ int tree_resolve_master_copy(resolve_tree_master_t *dst, resolve_tree_master_t * ...@@ -35,12 +35,10 @@ int tree_resolve_master_copy(resolve_tree_master_t *dst, resolve_tree_master_t *
dst->name = mres->name ; dst->name = mres->name ;
dst->allow = mres->allow ; dst->allow = mres->allow ;
dst->enabled = mres->enabled ;
dst->current = mres->current ; dst->current = mres->current ;
dst->current = mres->contents ; dst->current = mres->contents ;
dst->nallow = mres->nallow ; dst->nallow = mres->nallow ;
dst->nenabled = mres->nenabled ; dst->ncontents = mres->ncontents ;
dst->nenabled = mres->ncontents ;
return 1 ; return 1 ;
......
...@@ -37,10 +37,6 @@ int tree_resolve_master_get_field_tosa(stralloc *sa, resolve_tree_master_t *mres ...@@ -37,10 +37,6 @@ int tree_resolve_master_get_field_tosa(stralloc *sa, resolve_tree_master_t *mres
str = mres->sa.s + mres->allow ; str = mres->sa.s + mres->allow ;
break ; break ;
case E_RESOLVE_TREE_MASTER_ENABLED:
str = mres->sa.s + mres->enabled ;
break ;
case E_RESOLVE_TREE_MASTER_CURRENT: case E_RESOLVE_TREE_MASTER_CURRENT:
str = mres->sa.s + mres->current ; str = mres->sa.s + mres->current ;
break ; break ;
...@@ -54,11 +50,6 @@ int tree_resolve_master_get_field_tosa(stralloc *sa, resolve_tree_master_t *mres ...@@ -54,11 +50,6 @@ int tree_resolve_master_get_field_tosa(stralloc *sa, resolve_tree_master_t *mres
str = fmt ; str = fmt ;
break ; break ;
case E_RESOLVE_TREE_MASTER_NENABLED:
fmt[uint32_fmt(fmt,mres->nenabled)] = 0 ;
str = fmt ;
break ;
case E_RESOLVE_TREE_MASTER_NCONTENTS: case E_RESOLVE_TREE_MASTER_NCONTENTS:
fmt[uint32_fmt(fmt,mres->ncontents)] = 0 ; fmt[uint32_fmt(fmt,mres->ncontents)] = 0 ;
str = fmt ; str = fmt ;
......
...@@ -26,11 +26,9 @@ resolve_field_table_t resolve_tree_master_field_table[] = { ...@@ -26,11 +26,9 @@ resolve_field_table_t resolve_tree_master_field_table[] = {
[E_RESOLVE_TREE_MASTER_NAME] = { .field = "name" }, [E_RESOLVE_TREE_MASTER_NAME] = { .field = "name" },
[E_RESOLVE_TREE_MASTER_ALLOW] = { .field = "allow" }, [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_CURRENT] = { .field = "current" },
[E_RESOLVE_TREE_MASTER_CONTENTS] = { .field = "contents" }, [E_RESOLVE_TREE_MASTER_CONTENTS] = { .field = "contents" },
[E_RESOLVE_TREE_MASTER_NALLOW] = { .field = "nallow" }, [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_NCONTENTS] = { .field = "ncontents" },
[E_RESOLVE_TREE_MASTER_ENDOFKEY] = { .field = 0 } [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, ...@@ -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) ; mres->allow = resolve_add_string(wres,data) ;
break ; break ;
case E_RESOLVE_TREE_MASTER_ENABLED:
mres->enabled = resolve_add_string(wres,data) ;
break ;
case E_RESOLVE_TREE_MASTER_CURRENT: case E_RESOLVE_TREE_MASTER_CURRENT:
mres->current = resolve_add_string(wres,data) ; mres->current = resolve_add_string(wres,data) ;
break ; break ;
...@@ -73,13 +67,6 @@ int tree_resolve_master_modify_field(resolve_tree_master_t *mres, uint8_t field, ...@@ -73,13 +67,6 @@ int tree_resolve_master_modify_field(resolve_tree_master_t *mres, uint8_t field,
mres->nallow = ifield ; mres->nallow = ifield ;
break ; 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: case E_RESOLVE_TREE_MASTER_NCONTENTS:
if (!data) if (!data)
data = "0" ; data = "0" ;
......
...@@ -43,10 +43,6 @@ int tree_resolve_master_read_cdb(cdb *c, resolve_tree_master_t *mres) ...@@ -43,10 +43,6 @@ int tree_resolve_master_read_cdb(cdb *c, resolve_tree_master_t *mres)
resolve_find_cdb(&tmp,c,"allow") ; resolve_find_cdb(&tmp,c,"allow") ;
mres->allow = tmp.len ? resolve_add_string(wres,tmp.s) : 0 ; 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 */ /* current */
resolve_find_cdb(&tmp,c,"current") ; resolve_find_cdb(&tmp,c,"current") ;
mres->current = tmp.len ? resolve_add_string(wres,tmp.s) : 0 ; 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) ...@@ -59,10 +55,6 @@ int tree_resolve_master_read_cdb(cdb *c, resolve_tree_master_t *mres)
x = resolve_find_cdb(&tmp,c,"nallow") ; x = resolve_find_cdb(&tmp,c,"nallow") ;
mres->nallow = x ; mres->nallow = x ;
/* nenabled */
x = resolve_find_cdb(&tmp,c,"nenabled") ;
mres->nenabled = x ;
/* ncontents */ /* ncontents */
x = resolve_find_cdb(&tmp,c,"ncontents") ; x = resolve_find_cdb(&tmp,c,"ncontents") ;
mres->ncontents = x ; mres->ncontents = x ;
......
...@@ -31,9 +31,6 @@ int tree_resolve_master_write_cdb(cdbmaker *c, resolve_tree_master_t *mres) ...@@ -31,9 +31,6 @@ int tree_resolve_master_write_cdb(cdbmaker *c, resolve_tree_master_t *mres)
/* allow */ /* allow */
!resolve_add_cdb(c,"allow",str, mres->allow, 1) || !resolve_add_cdb(c,"allow",str, mres->allow, 1) ||
/* enabled */
!resolve_add_cdb(c,"enabled",str, mres->enabled, 1) ||
/* current */ /* current */
!resolve_add_cdb(c,"current",str, mres->current, 1) || !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) ...@@ -43,9 +40,6 @@ int tree_resolve_master_write_cdb(cdbmaker *c, resolve_tree_master_t *mres)
/* nallow */ /* nallow */
!resolve_add_cdb_uint(c,"nallow", mres->nallow) || !resolve_add_cdb_uint(c,"nallow", mres->nallow) ||
/* nenabled */
!resolve_add_cdb_uint(c,"nenabled",mres->nenabled) ||
/* ncontents */ /* ncontents */
!resolve_add_cdb_uint(c,"ncontents",mres->ncontents)) return 0 ; !resolve_add_cdb_uint(c,"ncontents",mres->ncontents)) return 0 ;
......
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
resolve_field_table_t resolve_tree_field_table[] = { resolve_field_table_t resolve_tree_field_table[] = {
[E_RESOLVE_TREE_NAME] = { .field = "name" }, [E_RESOLVE_TREE_NAME] = { .field = "name" },
[E_RESOLVE_TREE_NAME] = { .field = "enabled" },
[E_RESOLVE_TREE_DEPENDS] = { .field = "depends" }, [E_RESOLVE_TREE_DEPENDS] = { .field = "depends" },
[E_RESOLVE_TREE_REQUIREDBY] = { .field = "requiredby" }, [E_RESOLVE_TREE_REQUIREDBY] = { .field = "requiredby" },
[E_RESOLVE_TREE_ALLOW] = { .field = "allow" }, [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 ...@@ -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) ; tres->name = resolve_add_string(wres,data) ;
break ; 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: case E_RESOLVE_TREE_DEPENDS:
tres->depends = resolve_add_string(wres,data) ; tres->depends = resolve_add_string(wres,data) ;
break ; break ;
......
...@@ -39,6 +39,10 @@ int tree_resolve_read_cdb(cdb *c, resolve_tree_t *tres) ...@@ -39,6 +39,10 @@ int tree_resolve_read_cdb(cdb *c, resolve_tree_t *tres)
resolve_find_cdb(&tmp,c,"name") ; resolve_find_cdb(&tmp,c,"name") ;
tres->name = tmp.len ? resolve_add_string(wres,tmp.s) : 0 ; tres->name = tmp.len ? resolve_add_string(wres,tmp.s) : 0 ;
/* enabled */
x = resolve_find_cdb(&tmp,c,"enabled") ;
tres->enabled = x ;
/* depends */ /* depends */
resolve_find_cdb(&tmp,c,"depends") ; resolve_find_cdb(&tmp,c,"depends") ;
tres->depends = tmp.len ? resolve_add_string(wres,tmp.s) : 0 ; tres->depends = tmp.len ? resolve_add_string(wres,tmp.s) : 0 ;
......
...@@ -43,6 +43,9 @@ int tree_resolve_write_cdb(cdbmaker *c, resolve_tree_t *tres) ...@@ -43,6 +43,9 @@ int tree_resolve_write_cdb(cdbmaker *c, resolve_tree_t *tres)
/* contents */ /* contents */
!resolve_add_cdb(c,"contents",str, tres->contents, 1) || !resolve_add_cdb(c,"contents",str, tres->contents, 1) ||
/* enabled */
!resolve_add_cdb_uint(c,"enabled",tres->enabled) ||
/* ndepends */ /* ndepends */
!resolve_add_cdb_uint(c,"ndepends",tres->ndepends) || !resolve_add_cdb_uint(c,"ndepends",tres->ndepends) ||
......
...@@ -33,7 +33,7 @@ int tree_switch_current(char const *base, char const *treename) ...@@ -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)) { 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 ; goto freed ;
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment