X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fafb-config.c;h=b5ce52c5f8a6b3bac0c7d71849c6c8c6f4ae411f;hb=2a8d1d568fe97efa258d88e888c90490d246b350;hp=016da835c1835f7219bd8980a98d43cbbf230447;hpb=42da0c1455b0348c7163683023148ae37eb925e5;p=src%2Fapp-framework-binder.git diff --git a/src/afb-config.c b/src/afb-config.c index 016da835..b5ce52c5 100644 --- a/src/afb-config.c +++ b/src/afb-config.c @@ -38,8 +38,8 @@ #endif // default -#define DEFLT_CNTX_TIMEOUT 3600 // default Client Connection - // Timeout +#define DEFLT_CNTX_TIMEOUT 32000000 // default Client Connection + // Timeout: few more than one year #define DEFLT_API_TIMEOUT 20 // default Plugin API Timeout [0=NoLimit // for Debug Only] #define DEFLT_CACHE_TIMEOUT 100000 // default Static File Chache @@ -754,12 +754,47 @@ void afb_config_dump(struct afb_config *config) #undef NN } +static void on_environment_list(struct afb_config_list **to, const char *name) +{ + char *value = getenv(name); + + if (value) + list_add(to, value); +} + +static void on_environment_enum(int *to, const char *name, struct enumdesc *desc) +{ + char *value = getenv(name); + + if (value) { + while (desc->name) { + if (strcmp(desc->name, value)) + desc++; + else { + *to = desc->value; + return; + } + } + WARNING("Unknown value %s for environment variable %s, ignored", value, name); + } +} + +static void parse_environment(struct afb_config *config) +{ + on_environment_enum(&config->tracereq, "AFB_TRACEREQ", tracereq_desc); + on_environment_enum(&config->traceditf, "AFB_TRACEDITF", traceditf_desc); + on_environment_enum(&config->tracesvc, "AFB_TRACESVC", tracesvc_desc); + on_environment_enum(&config->traceevt, "AFB_TRACEEVT", traceevt_desc); + on_environment_list(&config->ldpaths, "AFB_LDPATHS"); +} + struct afb_config *afb_config_parse_arguments(int argc, char **argv) { struct afb_config *result; result = calloc(1, sizeof *result); + parse_environment(result); parse_arguments(argc, argv, result); fulfill_config(result); if (verbosity >= 3)