From 034d68ea335b526bbc01576d73829c11a18bba27 Mon Sep 17 00:00:00 2001 From: obarun <eric@obarun.org> Date: Wed, 9 Jun 2021 13:54:58 +1100 Subject: [PATCH] remove the ability to use @name for an instantiated service --- src/66/66-parser.c | 25 ++----------------------- src/include/66/enum.h | 3 +-- src/include/66/parser.h | 5 +++-- src/lib66/parser_enabled.c | 33 ++------------------------------- src/lib66/parser_utils.c | 30 ------------------------------ src/lib66/ss_get_enum.c | 1 - 6 files changed, 8 insertions(+), 89 deletions(-) diff --git a/src/66/66-parser.c b/src/66/66-parser.c index bb6f7704..4fbdb322 100644 --- a/src/66/66-parser.c +++ b/src/66/66-parser.c @@ -149,29 +149,8 @@ int main(int argc, char const *const *argv,char const *const *envp) log_dieu(LOG_EXIT_SYS,"create instance service: ",name) ; } - if (!get_svname(&service,src.s)) log_dieu(LOG_EXIT_SYS,"get name of service: ",sv) ; - - /** keep the name set by user - * uniquely for instantiated service - * The name must contain the template string */ - if (ista > 0 && service.cname.name >= 0 ) - { - stralloc sainsta = STRALLOC_ZERO ; - stralloc saname = STRALLOC_ZERO ; - if (!stralloc_cats(&saname,keep.s + service.cname.name)) log_die_nomem("stralloc") ; - - if (!instance_splitname(&sainsta,name,ista,SS_INSTANCE_TEMPLATE)) log_dieu(LOG_EXIT_SYS,"split instance name") ; - if (sastr_find(&saname,sainsta.s) == -1) - log_die(LOG_EXIT_USER,"invalid instantiated service name: ", keep.s + service.cname.name) ; - - stralloc_free(&sainsta) ; - stralloc_free(&saname) ; - } - else - { - service.cname.name = keep.len ; - if (!stralloc_catb(&keep,name,namelen + 1)) log_die_nomem("stralloc") ; - } + service.cname.name = keep.len ; + if (!stralloc_catb(&keep,name,namelen + 1)) log_die_nomem("stralloc") ; if (!parser(&service,&src,sv,service.cname.itype)) log_dieu(LOG_EXIT_SYS,"parse service file: ",sv) ; diff --git a/src/include/66/enum.h b/src/include/66/enum.h index f79b1756..0573252a 100644 --- a/src/include/66/enum.h +++ b/src/include/66/enum.h @@ -56,7 +56,6 @@ typedef enum enum_key_section_main_e enum_key_section_main_t, *enum_key_section_ enum enum_key_section_main_e { KEY_MAIN_TYPE = 0 , - KEY_MAIN_NAME , KEY_MAIN_VERSION , KEY_MAIN_DESCRIPTION , KEY_MAIN_CONTENTS , @@ -74,6 +73,7 @@ enum enum_key_section_main_e KEY_MAIN_HIERCOPY , KEY_MAIN_SIGNAL , KEY_MAIN_FLAGS , + KEY_MAIN_INTREE , KEY_MAIN_ENDOFKEY } ; @@ -290,7 +290,6 @@ struct key_all_s static key_description_t const main_section_list[] = { { .name = &enum_str_key_section_main[KEY_MAIN_TYPE], .id = KEY_MAIN_TYPE, .expected = EXPECT_LINE }, - { .name = &enum_str_key_section_main[KEY_MAIN_NAME], .id = KEY_MAIN_NAME, .expected = EXPECT_LINE }, { .name = &enum_str_key_section_main[KEY_MAIN_VERSION], .id = KEY_MAIN_VERSION, .expected = EXPECT_LINE }, { .name = &enum_str_key_section_main[KEY_MAIN_DESCRIPTION], .id = KEY_MAIN_DESCRIPTION, .expected = EXPECT_QUOTE }, { .name = &enum_str_key_section_main[KEY_MAIN_DEPENDS], .id = KEY_MAIN_DEPENDS, .expected = EXPECT_BRACKET }, diff --git a/src/include/66/parser.h b/src/include/66/parser.h index 0759ebc6..4e75163d 100644 --- a/src/include/66/parser.h +++ b/src/include/66/parser.h @@ -289,11 +289,12 @@ struct section_s .idx = { 0 } , \ .file = 0 } -/** freed */ +/** freed and cleanup*/ extern void sv_alltype_free(sv_alltype *sv) ; extern void keynocheck_free(keynocheck *nocheck) ; extern void section_free(section_t *sec) ; extern void freed_parser(void) ; +extern void ssexec_enable_cleanup(void) ; /** enable phase */ extern void start_parser(stralloc *list,ssexec_t *info, unsigned int *nbsv,uint8_t FORCE) ; extern int parser(sv_alltype *service,stralloc *src,char const *svname,int svtype) ; @@ -305,7 +306,7 @@ extern int parse_service_opts_deps(stralloc *rebuild,ssexec_t *info,stralloc *pa extern int parse_add_service(stralloc *parsed_list,sv_alltype *sv_before,char const *service,unsigned int *nbsv,uid_t owner,uint8_t conf) ; extern int get_svtype(sv_alltype *sv_before, char const *contents) ; extern int get_svtype_from_file(char const *file) ; -extern int get_svname(sv_alltype *sv_before,char const *contents) ; + /** split */ extern int section_get_range(section_t *sasection,stralloc *src) ; extern int key_get_range(genalloc *ga, section_t *sasection) ; diff --git a/src/lib66/parser_enabled.c b/src/lib66/parser_enabled.c index 4d69258f..c7a3f3d0 100644 --- a/src/lib66/parser_enabled.c +++ b/src/lib66/parser_enabled.c @@ -86,39 +86,10 @@ int parse_service_before(ssexec_t *info,stralloc *parsed_list,stralloc *tree_lis if (!get_svtype(&sv_before,sasv->s)) log_warn_return (LOG_EXIT_ZERO,"invalid value for key: ",get_key_by_enum(ENUM_KEY_SECTION_MAIN,KEY_MAIN_TYPE)," in service file: ",svsrc,svname) ; - if (!get_svname(&sv_before,sasv->s)) - log_warn_return(LOG_EXIT_ZERO,"invalid value for key: ",get_key_by_enum(ENUM_KEY_SECTION_MAIN,KEY_MAIN_NAME)," in service file: ",svsrc,svname) ; - /** keep the name set by user - * uniquely for instantiated service - * The name must contain the template string */ - if (insta > 0 && sv_before.cname.name >= 0 ) - { - stralloc sainsta = STRALLOC_ZERO ; - stralloc name = STRALLOC_ZERO ; - if (!stralloc_cats(&name,keep.s + sv_before.cname.name)) goto err ; - - if (!instance_splitname(&sainsta,svname,insta,SS_INSTANCE_TEMPLATE)) goto err ; - if (sastr_find(&name,sainsta.s) == -1) - { - log_warn("invalid instantiated service name: ", keep.s + sv_before.cname.name) ; - goto err ; - } - stralloc_free(&sainsta) ; - stralloc_free(&name) ; - goto follow ; - err: - stralloc_free(&sainsta) ; - stralloc_free(&name) ; - return 0 ; - } - else - { - sv_before.cname.name = keep.len ; - if (!stralloc_catb(&keep,svname,svnamelen + 1)) return 0 ; - } + sv_before.cname.name = keep.len ; + if (!stralloc_catb(&keep,svname,svnamelen + 1)) return 0 ; - follow: /** contents of directory should be listed by ss_resolve_src_path * execpt for module type */ if (scan_mode(sv,S_IFDIR) == 1 && sv_before.cname.itype != TYPE_MODULE) return 1 ; diff --git a/src/lib66/parser_utils.c b/src/lib66/parser_utils.c index 9c502905..b988bced 100644 --- a/src/lib66/parser_utils.c +++ b/src/lib66/parser_utils.c @@ -514,9 +514,6 @@ int keep_common(sv_alltype *service,keynocheck *nocheck,int svtype) if (r == -1) return 0 ; service->cname.itype = r ; break ; - case KEY_MAIN_NAME: - /** name is already parsed */ - break ; case KEY_MAIN_DESCRIPTION: service->cname.description = keep.len ; if (!stralloc_catb(&keep,chval,*chlen + 1)) log_warnsys_return(LOG_EXIT_ZERO,"stralloc") ; @@ -1330,30 +1327,3 @@ int get_svtype_from_file(char const *file) stralloc_free(&tmp) ; return svtype ; } - -int get_svname(sv_alltype *sv_before,char const *contents) -{ - log_flow() ; - - int r ; - stralloc sa = STRALLOC_ZERO ; - - if (!auto_stra(&sa,contents)) goto err ; - /** @name only exist on instantiated service if any */ - r = sastr_find(&sa,get_key_by_enum(ENUM_KEY_SECTION_MAIN,KEY_MAIN_NAME)) ; - if (r == -1) { sv_before->cname.name == -1 ; goto freed ; } - - if (!environ_get_val_of_key(&sa,get_key_by_enum(ENUM_KEY_SECTION_MAIN,KEY_MAIN_NAME))) goto err ; - - if (!sastr_clean_element(&sa)) goto err ; - sv_before->cname.name = get_enum_by_key(sa.s) ; - - if (sv_before->cname.name == -1) goto err ; - - freed: - stralloc_free(&sa) ; - return 1 ; - err: - stralloc_free(&sa) ; - return 0 ; -} diff --git a/src/lib66/ss_get_enum.c b/src/lib66/ss_get_enum.c index 85c58c6b..3434108a 100644 --- a/src/lib66/ss_get_enum.c +++ b/src/lib66/ss_get_enum.c @@ -32,7 +32,6 @@ char const *enum_str_section[] = { char const *enum_str_key_section_main[] = { "@type" , - "@name" , "@version" , "@description" , "@contents" , -- GitLab