diff -r 360b9aabe17e -r d07810b02147 src/server/config/conf.c --- a/src/server/config/conf.c Sat Dec 15 16:05:03 2012 +0100 +++ b/src/server/config/conf.c Sat Dec 29 18:08:23 2012 +0100 @@ -286,12 +286,15 @@ directive->directive_type = sstrdup_mp(mp, name); directive->type_num = cfg_get_directive_type_num(name); directive->condition = NULL; // set later by main parsing function - directive->param = NULL; + //directive->param = NULL; sstr_t param_str; param_str.ptr = name.ptr + i; param_str.length = line.length - i; param_str = sstrtrim(param_str); + directive->value = sstrdup_mp(mp, param_str); + + /* sstr_t pname; sstr_t pvalue; for(;;) { @@ -314,12 +317,43 @@ // add param to list - directive->param = ucx_list_append(directive->param, param); + //directive->param = ucx_list_append(directive->param, param); } - + */ + return directive; } +UcxList* cfg_param_list(sstr_t param_str, UcxMempool *mp) { + sstr_t pname; + sstr_t pvalue; + UcxList *plist = NULL; + for(;;) { + param_str = cfg_param(param_str, &pname, &pvalue); + if(pname.length <= 0) { + break; + } + + + // create param object + ConfigParam *param = OBJ_NEW(mp, ConfigParam); + param->name = sstrdup_mp(mp, pname); + + if(pvalue.length > 0) { + param->value = sstrdup_mp(mp, pvalue); + } else { + param->value.ptr = NULL; + param->value.length = 0; + } + + // add param to list + plist = ucx_list_append(plist, param); // TODO: use mp + } + return plist; +} + + + /* * gets the directive type number from a type string * valid types are: @@ -519,13 +553,15 @@ n.length = 0; return n; } - return cfg_directive_pstr1(d); + //return cfg_directive_pstr1(d); + return d->value; } /* * returns the name of the first parameter of the directive * useful for 'name value' directives */ +/* sstr_t cfg_directive_pstr1(ConfigDirective *dir) { if(dir->param == NULL) { fprintf(stderr, "%s", "Error: cfg_directive_pstr1: param is NULL\n"); @@ -538,5 +574,5 @@ ConfigParam *p = dir->param->data; return p->name; } +*/ -