284 // create directive object |
284 // create directive object |
285 ConfigDirective *directive = OBJ_NEW(mp, ConfigDirective); |
285 ConfigDirective *directive = OBJ_NEW(mp, ConfigDirective); |
286 directive->directive_type = sstrdup_mp(mp, name); |
286 directive->directive_type = sstrdup_mp(mp, name); |
287 directive->type_num = cfg_get_directive_type_num(name); |
287 directive->type_num = cfg_get_directive_type_num(name); |
288 directive->condition = NULL; // set later by main parsing function |
288 directive->condition = NULL; // set later by main parsing function |
289 directive->param = NULL; |
289 //directive->param = NULL; |
290 |
290 |
291 sstr_t param_str; |
291 sstr_t param_str; |
292 param_str.ptr = name.ptr + i; |
292 param_str.ptr = name.ptr + i; |
293 param_str.length = line.length - i; |
293 param_str.length = line.length - i; |
294 param_str = sstrtrim(param_str); |
294 param_str = sstrtrim(param_str); |
|
295 directive->value = sstrdup_mp(mp, param_str); |
|
296 |
|
297 /* |
295 sstr_t pname; |
298 sstr_t pname; |
296 sstr_t pvalue; |
299 sstr_t pvalue; |
297 for(;;) { |
300 for(;;) { |
298 param_str = cfg_param(param_str, &pname, &pvalue); |
301 param_str = cfg_param(param_str, &pname, &pvalue); |
299 if(pname.length <= 0) { |
302 if(pname.length <= 0) { |
312 param->value.length = 0; |
315 param->value.length = 0; |
313 } |
316 } |
314 |
317 |
315 // add param to list |
318 // add param to list |
316 |
319 |
317 directive->param = ucx_list_append(directive->param, param); |
320 //directive->param = ucx_list_append(directive->param, param); |
318 } |
321 } |
319 |
322 */ |
|
323 |
320 return directive; |
324 return directive; |
321 } |
325 } |
|
326 |
|
327 UcxList* cfg_param_list(sstr_t param_str, UcxMempool *mp) { |
|
328 sstr_t pname; |
|
329 sstr_t pvalue; |
|
330 UcxList *plist = NULL; |
|
331 for(;;) { |
|
332 param_str = cfg_param(param_str, &pname, &pvalue); |
|
333 if(pname.length <= 0) { |
|
334 break; |
|
335 } |
|
336 |
|
337 |
|
338 // create param object |
|
339 ConfigParam *param = OBJ_NEW(mp, ConfigParam); |
|
340 param->name = sstrdup_mp(mp, pname); |
|
341 |
|
342 if(pvalue.length > 0) { |
|
343 param->value = sstrdup_mp(mp, pvalue); |
|
344 } else { |
|
345 param->value.ptr = NULL; |
|
346 param->value.length = 0; |
|
347 } |
|
348 |
|
349 // add param to list |
|
350 plist = ucx_list_append(plist, param); // TODO: use mp |
|
351 } |
|
352 return plist; |
|
353 } |
|
354 |
|
355 |
322 |
356 |
323 /* |
357 /* |
324 * gets the directive type number from a type string |
358 * gets the directive type number from a type string |
325 * valid types are: |
359 * valid types are: |
326 * AuthTrans 0 |
360 * AuthTrans 0 |
517 sstr_t n; |
551 sstr_t n; |
518 n.ptr = NULL; |
552 n.ptr = NULL; |
519 n.length = 0; |
553 n.length = 0; |
520 return n; |
554 return n; |
521 } |
555 } |
522 return cfg_directive_pstr1(d); |
556 //return cfg_directive_pstr1(d); |
|
557 return d->value; |
523 } |
558 } |
524 |
559 |
525 /* |
560 /* |
526 * returns the name of the first parameter of the directive |
561 * returns the name of the first parameter of the directive |
527 * useful for 'name value' directives |
562 * useful for 'name value' directives |
528 */ |
563 */ |
|
564 /* |
529 sstr_t cfg_directive_pstr1(ConfigDirective *dir) { |
565 sstr_t cfg_directive_pstr1(ConfigDirective *dir) { |
530 if(dir->param == NULL) { |
566 if(dir->param == NULL) { |
531 fprintf(stderr, "%s", "Error: cfg_directive_pstr1: param is NULL\n"); |
567 fprintf(stderr, "%s", "Error: cfg_directive_pstr1: param is NULL\n"); |
532 sstr_t n; |
568 sstr_t n; |
533 n.ptr = NULL; |
569 n.ptr = NULL; |