diff --git a/src/lib66/tree/tree_resolve_master_copy.c b/src/lib66/tree/tree_resolve_master_copy.c index f9b9212b5dea713d9d5e4e4c5fb93561239fd0ce..4ea25e1d98b7c6defbd89f501f41524e8bcba30d 100644 --- a/src/lib66/tree/tree_resolve_master_copy.c +++ b/src/lib66/tree/tree_resolve_master_copy.c @@ -38,6 +38,7 @@ int tree_resolve_master_copy(resolve_tree_master_t *dst, resolve_tree_master_t * dst->enabled = mres->enabled ; dst->current = mres->current ; dst->current = mres->contents ; + dst->nallow = mres->nallow ; dst->nenabled = mres->nenabled ; dst->nenabled = mres->ncontents ; diff --git a/src/lib66/tree/tree_resolve_master_create.c b/src/lib66/tree/tree_resolve_master_create.c index 62cdd321c7f731860741123389935afa3e262975..e588651103c2ff4342c6aa9969830b41f203cffa 100644 --- a/src/lib66/tree/tree_resolve_master_create.c +++ b/src/lib66/tree/tree_resolve_master_create.c @@ -45,6 +45,7 @@ int tree_resolve_master_create(char const *base, uid_t owner) mres.name = resolve_add_string(wres, SS_MASTER + 1) ; mres.allow = resolve_add_string(wres, pw->pw_name) ; + mres.nallow++ ; log_trace("write Master resolve file of trees") ; if (!resolve_write_g(wres, base, SS_MASTER + 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 afc3f1592eb74909c51025e82bed8500c981f520..05a0bbe5ed1da67d7fe8fc827141e68063366484 100644 --- a/src/lib66/tree/tree_resolve_master_get_field_tosa.c +++ b/src/lib66/tree/tree_resolve_master_get_field_tosa.c @@ -49,6 +49,11 @@ int tree_resolve_master_get_field_tosa(stralloc *sa, resolve_tree_master_t *mres str = mres->sa.s + mres->contents ; break ; + case E_RESOLVE_TREE_MASTER_NALLOW: + fmt[uint32_fmt(fmt,mres->nallow)] = 0 ; + str = fmt ; + break ; + case E_RESOLVE_TREE_MASTER_NENABLED: fmt[uint32_fmt(fmt,mres->nenabled)] = 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 c63c038c2f6b1dc7e69828024d086728f1eef0d4..b102ce11fb79f46c36b79dcaba0eb26cc7feddd5 100644 --- a/src/lib66/tree/tree_resolve_master_modify_field.c +++ b/src/lib66/tree/tree_resolve_master_modify_field.c @@ -29,6 +29,7 @@ resolve_field_table_t resolve_tree_master_field_table[] = { [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 } @@ -65,6 +66,13 @@ int tree_resolve_master_modify_field(resolve_tree_master_t *mres, uint8_t field, mres->contents = resolve_add_string(wres,data) ; break ; + case E_RESOLVE_TREE_MASTER_NALLOW: + if (!data) + data = "0" ; + if (!uint0_scan(data, &ifield)) goto err ; + mres->nallow = ifield ; + break ; + case E_RESOLVE_TREE_MASTER_NENABLED: 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 6615d199b33d795355d299cd3918415d7920b380..ccdfa3c2992fce3b204c561dcdbf3b115d2883f1 100644 --- a/src/lib66/tree/tree_resolve_master_read_cdb.c +++ b/src/lib66/tree/tree_resolve_master_read_cdb.c @@ -55,6 +55,10 @@ int tree_resolve_master_read_cdb(cdb *c, resolve_tree_master_t *mres) resolve_find_cdb(&tmp,c,"contents") ; mres->contents = tmp.len ? resolve_add_string(wres,tmp.s) : 0 ; + /* nallow */ + x = resolve_find_cdb(&tmp,c,"nallow") ; + mres->nallow = x ; + /* nenabled */ x = resolve_find_cdb(&tmp,c,"nenabled") ; mres->nenabled = x ; diff --git a/src/lib66/tree/tree_resolve_master_write_cdb.c b/src/lib66/tree/tree_resolve_master_write_cdb.c index 765ae23b65aa9511361ebf0e2309f3373fb84444..1def395883ed9b9a89238f12c999417340402b68 100644 --- a/src/lib66/tree/tree_resolve_master_write_cdb.c +++ b/src/lib66/tree/tree_resolve_master_write_cdb.c @@ -40,6 +40,9 @@ int tree_resolve_master_write_cdb(cdbmaker *c, resolve_tree_master_t *mres) /* contents */ !resolve_add_cdb(c,"contents",str, mres->contents, 1) || + /* nallow */ + !resolve_add_cdb_uint(c,"nallow", mres->nallow) || + /* nenabled */ !resolve_add_cdb_uint(c,"nenabled",mres->nenabled) ||