diff --git a/src/lib66/parser_utils.c b/src/lib66/parser_utils.c index 284bff3a0eba54cb108ebc6df8b8314a5f8f5bc7..fe626deae0bb1d424dc69f1d9f10054d2fe23e9a 100644 --- a/src/lib66/parser_utils.c +++ b/src/lib66/parser_utils.c @@ -841,6 +841,26 @@ int keep_environ(sv_alltype *service,keynocheck *nocheck) log_warnu_return(LOG_EXIT_ZERO,"clean environment value") ; if (!auto_stra(&service->saenv,nocheck->val.s)) log_warnu_return(LOG_EXIT_ZERO,"store environment value") ; + { + /** The declaration of the [environment] automatically add + * the @options=(env) */ + if (!service->opts[2]) { + + stralloc saconf = STRALLOC_ZERO ; + if (!env_resolve_conf(&saconf,keep.s + service->cname.name,MYUID)) { + stralloc_free(&saconf) ; + return 0 ; + } + service->srconf = keep.len ; + if (!stralloc_catb(&keep,saconf.s,saconf.len + 1)) { + stralloc_free(&saconf) ; + return 0 ; + } + service->opts[2] = 1 ; + stralloc_free(&saconf) ; + } + } + ; break ; default: log_warn_return(LOG_EXIT_ZERO,"unknown key: ",get_key_by_enum(ENUM_KEY_SECTION_ENVIRON,nocheck->idkey)) ; }