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

new field contents and ncontents to tree Master resolve file

parent 4a0206fd
No related branches found
No related tags found
No related merge requests found
......@@ -32,6 +32,9 @@
#define TREE_GROUPS_USER "user"
#define TREE_GROUPS_USER_LEN (sizeof TREE_GROUPS_USER - 1)
#define DATA_TREE 1
#define DATA_TREE_MASTER 2
typedef struct resolve_tree_s resolve_tree_t, *resolve_tree_t_ref ;
struct resolve_tree_s
{
......@@ -85,11 +88,13 @@ struct resolve_tree_master_s
uint32_t allow ;
uint32_t enabled ;
uint32_t current ;
uint32_t contents ;
uint32_t nenabled ;
uint32_t ncontents ;
} ;
#define RESOLVE_TREE_MASTER_ZERO { 0,STRALLOC_ZERO,0,0,0,0,0 }
#define RESOLVE_TREE_MASTER_ZERO { 0,STRALLOC_ZERO,0,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
......@@ -98,7 +103,9 @@ enum resolve_tree_master_enum_e
TREE_ENUM_MASTER_ALLOW,
TREE_ENUM_MASTER_ENABLED,
TREE_ENUM_MASTER_CURRENT,
TREE_ENUM_MASTER_CONTENTS,
TREE_ENUM_MASTER_NENABLED,
TREE_ENUM_MASTER_NCONTENTS,
TREE_ENUM_MASTER_ENDOFKEY
} ;
......@@ -183,15 +190,15 @@ extern int tree_resolve_read_cdb(cdb *c, resolve_tree_t *tres) ;
extern int tree_resolve_write_cdb(cdbmaker *c, resolve_tree_t *tres) ;
extern int tree_resolve_copy(resolve_tree_t *dst, resolve_tree_t *tres) ;
extern int tree_resolve_modify_field(resolve_tree_t *tres, uint8_t field, char const *data) ;
extern int tree_resolve_field_tosa(stralloc *sa, resolve_tree_t *tres, resolve_tree_enum_t field) ;
extern int tree_resolve_get_field_tosa(stralloc *sa, resolve_tree_t *tres, resolve_tree_enum_t field) ;
/** Master */
extern int tree_resolve_read_master_cdb(cdb *c, resolve_tree_master_t *mres) ;
extern int tree_resolve_write_master_cdb(cdbmaker *c, resolve_tree_master_t *mres) ;
extern int tree_resolve_master_read_cdb(cdb *c, resolve_tree_master_t *mres) ;
extern int tree_resolve_master_write_cdb(cdbmaker *c, resolve_tree_master_t *mres) ;
extern int tree_resolve_master_create(char const *base, uid_t owner) ;
extern int tree_resolve_master_copy(resolve_tree_master_t *dst, resolve_tree_master_t *mres) ;
extern int tree_resolve_master_modify_field(resolve_tree_master_t *mres, uint8_t field, char const *data) ;
extern int tree_resolve_master_field_tosa(stralloc *sa, resolve_tree_master_t *mres, resolve_tree_master_enum_t field) ;
extern int tree_resolve_master_get_field_tosa(stralloc *sa, resolve_tree_master_t *mres, resolve_tree_master_enum_t field) ;
/**
*
......
......@@ -9,16 +9,16 @@ tree_isinitialized.o
tree_isvalid.o
tree_ongroups.o
tree_resolve_copy.o
tree_resolve_field_tosa.o
tree_resolve_get_field_tosa.o
tree_resolve_master_copy.o
tree_resolve_master_create.o
tree_resolve_master_field_tosa.o
tree_resolve_master_get_field_tosa.o
tree_resolve_master_modify_field.o
tree_resolve_master_read_cdb.o
tree_resolve_master_write_cdb.o
tree_resolve_modify_field.o
tree_resolve_read_cdb.o
tree_resolve_read_master_cdb.o
tree_resolve_write_cdb.o
tree_resolve_write_master_cdb.o
tree_seed_file_isvalid.o
tree_seed_free.o
tree_seed_get_group_permissions.o
......
......@@ -37,7 +37,9 @@ int tree_resolve_master_copy(resolve_tree_master_t *dst, resolve_tree_master_t *
dst->allow = mres->allow ;
dst->enabled = mres->enabled ;
dst->current = mres->current ;
dst->current = mres->contents ;
dst->nenabled = mres->nenabled ;
dst->nenabled = mres->ncontents ;
return 1 ;
......
......@@ -50,7 +50,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) ;
log_trace("write inner resolve file of trees") ;
log_trace("write Master resolve file of trees") ;
if (!resolve_write(wres, dst, SS_MASTER + 1))
goto err ;
......
......@@ -28,7 +28,9 @@ resolve_field_table_t resolve_tree_master_field_table[] = {
[TREE_ENUM_MASTER_ALLOW] = { .field = "allow" },
[TREE_ENUM_MASTER_ENABLED] = { .field = "enabled" },
[TREE_ENUM_MASTER_CURRENT] = { .field = "current" },
[TREE_ENUM_MASTER_CONTENTS] = { .field = "contents" },
[TREE_ENUM_MASTER_NENABLED] = { .field = "nenabled" },
[TREE_ENUM_MASTER_NCONTENTS] = { .field = "ncontents" },
[TREE_ENUM_MASTER_ENDOFKEY] = { .field = 0 }
} ;
......@@ -59,11 +61,20 @@ int tree_resolve_master_modify_field(resolve_tree_master_t *mres, uint8_t field,
mres->current = resolve_add_string(wres,data) ;
break ;
case TREE_ENUM_MASTER_CONTENTS:
mres->contents = resolve_add_string(wres,data) ;
break ;
case TREE_ENUM_MASTER_NENABLED:
if (!uint0_scan(data, &ifield)) goto err ;
mres->nenabled = ifield ;
break ;
case TREE_ENUM_MASTER_NCONTENTS:
if (!uint0_scan(data, &ifield)) goto err ;
mres->ncontents = ifield ;
break ;
default:
break ;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment