diff --git a/src/include/66/ssexec.h b/src/include/66/ssexec.h index fc56003a4950151f77f517742c26c62ef16cbb6a..c341918445175d8bbdfc700112779314ad438583 100644 --- a/src/include/66/ssexec.h +++ b/src/include/66/ssexec.h @@ -35,11 +35,6 @@ struct ssexec_s //char live[SS_MAX_SERVICE] ; //size_t livelen ; - stralloc tree ; - - //char tree[SS_MAX_SERVICE] ; - //size_t treelen ; - stralloc scandir ; //char scandir[SS_MAX_SERVICE] ; @@ -76,7 +71,6 @@ struct ssexec_s #define SSEXEC_ZERO { .base = STRALLOC_ZERO, \ .live = STRALLOC_ZERO, \ - .tree = STRALLOC_ZERO, \ .scandir = STRALLOC_ZERO, \ .treename = STRALLOC_ZERO, \ .treeallow = 0, \ @@ -100,7 +94,7 @@ typedef ssexec_func_t *ssexec_func_t_ref ; extern void ssexec_free(ssexec_t *info) ; extern void ssexec_copy(ssexec_t *dest, ssexec_t *src) ; extern ssexec_t const ssexec_zero ; -extern void set_ssinfo(ssexec_t *info) ; +extern void set_treeinfo(ssexec_t *info) ; extern ssexec_func_t ssexec_parse ; extern ssexec_func_t ssexec_init ; diff --git a/src/include/66/tree.h b/src/include/66/tree.h index bfd6bc95372cf73ad46e96f01d2b376a62b49936..514dbfae5df1446d9048538a2026a5ca723301f3 100644 --- a/src/include/66/tree.h +++ b/src/include/66/tree.h @@ -53,9 +53,8 @@ struct resolve_tree_s uint32_t init ;//not initialized->0, initialized->1 uint32_t supervised ;//not superviseded->0, supervised->1 - uint32_t disen ;//disable->0, enable->1 } ; -#define RESOLVE_TREE_ZERO { 0,STRALLOC_ZERO,0,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 } typedef enum resolve_tree_enum_e resolve_tree_enum_t, *resolve_tree_enum_t_ref; enum resolve_tree_enum_e @@ -73,7 +72,6 @@ enum resolve_tree_enum_e E_RESOLVE_TREE_NCONTENTS, E_RESOLVE_TREE_INIT, E_RESOLVE_TREE_SUPERVISED, - E_RESOLVE_TREE_DISEN, E_RESOLVE_TREE_ENDOFKEY } ; @@ -139,7 +137,7 @@ extern int tree_isvalid(char const *base, char const *treename) ; /** Append @tree with the name of the current tree * @Return 1 on success * @Return 0 on fail */ -extern int tree_find_current(stralloc *tree, char const *base) ; +extern int tree_find_current(char *tree, char const *base) ; /** @Return 1 on success * @Return 0 if not valid @@ -168,16 +166,13 @@ extern int tree_ongroups(char const *base, char const *treename, char const *gro extern int tree_copy(stralloc *dir, char const *tree,char const *treename) ; -extern int tree_get_permissions(char const *tree, uid_t owner) ; +extern int tree_get_permissions(char const *base, char const *treename) ; extern int tree_sethome(ssexec_t *info) ; -extern char tree_setname(stralloc *sa, char const *tree) ; - extern int tree_switch_current(char const *base, char const *tree) ; - /** * * Resolve API @@ -191,6 +186,8 @@ 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_get_field_tosa(stralloc *sa, resolve_tree_t *tres, resolve_tree_enum_t field) ; extern int tree_resolve_array_search(resolve_tree_t *ares, unsigned int areslen, char const *name) ; +extern void tree_service_add(char const *base, char const *treename, char const *service) ; +extern void tree_service_remove(char const *base, char const *treename, char const *service) ; /** Master */ 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) ; diff --git a/src/lib66/exec/ssexec_tree_resolve.c b/src/lib66/exec/ssexec_tree_resolve.c index c3253cf92426ce49b8df141de57275665191705c..ea85680e5c8d7e680b16ddb7033655b51153b45d 100644 --- a/src/lib66/exec/ssexec_tree_resolve.c +++ b/src/lib66/exec/ssexec_tree_resolve.c @@ -34,7 +34,7 @@ #include <66/config.h> #include <66/state.h> -#define MAXOPTS 19 +#define MAXOPTS 18 static wchar_t const field_suffix[] = L" :" ; static char fields[INFO_NKEY][INFO_FIELD_MAXLEN] = {{ 0 }} ; @@ -79,7 +79,7 @@ int ssexec_tree_resolve(int argc, char const *const *argv, ssexec_t *info) int r = 0 ; uint8_t master = 0 ; - char const *svname = 0 ; + char const *treename = 0 ; resolve_wrapper_t_ref wres = 0 ; resolve_tree_t tres = RESOLVE_TREE_ZERO ; @@ -91,7 +91,7 @@ int ssexec_tree_resolve(int argc, char const *const *argv, ssexec_t *info) if (argc < 1) log_usage(usage_tree_resolve, "\n", help_tree_resolve) ; - svname = *argv ; + treename = *argv ; char tree_buf[MAXOPTS][INFO_FIELD_MAXLEN] = { "name", @@ -106,14 +106,13 @@ int ssexec_tree_resolve(int argc, char const *const *argv, ssexec_t *info) "ngroups", "ncontents", "init" , - "supervised", - "disen", // 14 + "supervised", // 13 // Master "enabled", "current", "contents", "nenabled", - "ncontents" // 19 + "ncontents" // 18 } ; if (!strcmp(argv[0], SS_MASTER + 1)) { @@ -124,16 +123,17 @@ int ssexec_tree_resolve(int argc, char const *const *argv, ssexec_t *info) } else { wres = resolve_set_struct(DATA_TREE, &tres) ; - } - r = tree_isvalid(info->base.s, svname) ; - if (r < 0) - log_diesys(LOG_EXIT_SYS, "invalid tree directory") ; + r = tree_isvalid(info->base.s, treename) ; + + if (r < 0) + log_dieu(LOG_EXIT_SYS, "check validity of tree: ", treename) ; - if (!r) - log_dieusys(LOG_EXIT_SYS, "find tree: ", svname) ; + if (!r) + log_dieusys(LOG_EXIT_SYS, "find tree: ", treename) ; + } - if (!resolve_read_g(wres, info->base.s, svname)) + if (!resolve_read_g(wres, info->base.s, treename)) log_dieusys(LOG_EXIT_SYS, "read resolve file") ; info_field_align(tree_buf, fields, field_suffix,MAXOPTS) ; @@ -153,17 +153,16 @@ int ssexec_tree_resolve(int argc, char const *const *argv, ssexec_t *info) info_display_int(fields[10], tres.ncontents) ; info_display_int(fields[11], tres.init) ; info_display_int(fields[12], tres.supervised) ; - info_display_int(fields[13], tres.disen) ; } else { info_display_string(fields[0], mres.sa.s, mres.name, 1) ; info_display_string(fields[3], mres.sa.s, mres.allow, 1) ; - info_display_string(fields[14], mres.sa.s, mres.enabled, 1) ; - info_display_string(fields[15], mres.sa.s, mres.current, 1) ; - info_display_string(fields[16], mres.sa.s, mres.contents, 1) ; - info_display_int(fields[17], mres.nenabled) ; - info_display_int(fields[18], mres.ncontents) ; + info_display_string(fields[13], mres.sa.s, mres.enabled, 1) ; + info_display_string(fields[14], mres.sa.s, mres.current, 1) ; + info_display_string(fields[15], mres.sa.s, mres.contents, 1) ; + info_display_int(fields[16], mres.nenabled) ; + info_display_int(fields[17], mres.ncontents) ; } resolve_free(wres) ; diff --git a/src/lib66/tree/tree_resolve_copy.c b/src/lib66/tree/tree_resolve_copy.c index ef5776beb6dc6e2729b634efac2451f8b847bb99..ac66a173d26d59d6bcefb442e8deeaf63448e101 100644 --- a/src/lib66/tree/tree_resolve_copy.c +++ b/src/lib66/tree/tree_resolve_copy.c @@ -47,7 +47,6 @@ int tree_resolve_copy(resolve_tree_t *dst, resolve_tree_t *tres) dst->ncontents = tres->ncontents ; dst->init = tres->init ; dst->supervised = tres->supervised ; - dst->disen = tres->disen ; return 1 ; diff --git a/src/lib66/tree/tree_resolve_get_field_tosa.c b/src/lib66/tree/tree_resolve_get_field_tosa.c index 9234cf40293069a7ae7a26deb7992c47ced01d73..dd058cc2ece7afb31fd35b6ec0d82e339aa2e4e5 100644 --- a/src/lib66/tree/tree_resolve_get_field_tosa.c +++ b/src/lib66/tree/tree_resolve_get_field_tosa.c @@ -88,11 +88,6 @@ int tree_resolve_get_field_tosa(stralloc *sa, resolve_tree_t *tres, resolve_tree str = fmt ; break ; - case E_RESOLVE_TREE_DISEN: - fmt[uint32_fmt(fmt,tres->disen)] = 0 ; - str = fmt ; - break ; - default: return 0 ; } diff --git a/src/lib66/tree/tree_resolve_modify_field.c b/src/lib66/tree/tree_resolve_modify_field.c index 496116e8ad2380924f1d4739a2422dfa8a1a5c5b..1f7ec40f9ee145d8ee384657e5dd23975af89a64 100644 --- a/src/lib66/tree/tree_resolve_modify_field.c +++ b/src/lib66/tree/tree_resolve_modify_field.c @@ -37,7 +37,6 @@ resolve_field_table_t resolve_tree_field_table[] = { [E_RESOLVE_TREE_NCONTENTS] = { .field = "ncontents" }, [E_RESOLVE_TREE_INIT] = { .field = "init" }, [E_RESOLVE_TREE_SUPERVISED] = { .field = "supervised" }, - [E_RESOLVE_TREE_DISEN] = { .field = "disen" }, [E_RESOLVE_TREE_ENDOFKEY] = { .field = 0 } } ; @@ -125,13 +124,6 @@ int tree_resolve_modify_field(resolve_tree_t *tres, uint8_t field, char const *d tres->supervised = ifield ; break ; - case E_RESOLVE_TREE_DISEN: - if (!data) - data = "0" ; - if (!uint0_scan(data, &ifield)) goto err ; - tres->disen = ifield ; - break ; - default: break ; } diff --git a/src/lib66/tree/tree_resolve_read_cdb.c b/src/lib66/tree/tree_resolve_read_cdb.c index 3f74c64919468d641a8d14fbc8d6218d8fec658d..6d2bae3c9ccb270758fd8f4ada00951f76b09647 100644 --- a/src/lib66/tree/tree_resolve_read_cdb.c +++ b/src/lib66/tree/tree_resolve_read_cdb.c @@ -87,10 +87,6 @@ int tree_resolve_read_cdb(cdb *c, resolve_tree_t *tres) x = resolve_find_cdb(&tmp,c,"supervised") ; tres->supervised = x ; - /* disen */ - x = resolve_find_cdb(&tmp,c,"disen") ; - tres->disen = x ; - free(wres) ; stralloc_free(&tmp) ; diff --git a/src/lib66/tree/tree_resolve_write_cdb.c b/src/lib66/tree/tree_resolve_write_cdb.c index e0e996eae8f4785f72ec2313976a8fdb66dd5693..7f1ae37ac32ce062b8fcb99551063cb3077d27ab 100644 --- a/src/lib66/tree/tree_resolve_write_cdb.c +++ b/src/lib66/tree/tree_resolve_write_cdb.c @@ -62,10 +62,7 @@ int tree_resolve_write_cdb(cdbmaker *c, resolve_tree_t *tres) !resolve_add_cdb_uint(c,"init",tres->init) || /* supervised */ - !resolve_add_cdb_uint(c,"supervised",tres->supervised) || - - /* disen */ - !resolve_add_cdb_uint(c,"disen",tres->disen)) return 0 ; + !resolve_add_cdb_uint(c,"supervised",tres->supervised)) return 0 ; return 1 ; }