src/server/config/conf.c

changeset 38
d07810b02147
parent 36
450d2d5f4735
child 39
de4bc3cd2d36
equal deleted inserted replaced
37:360b9aabe17e 38:d07810b02147
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;
536 } 572 }
537 573
538 ConfigParam *p = dir->param->data; 574 ConfigParam *p = dir->param->data;
539 return p->name; 575 return p->name;
540 } 576 }
541 577 */
542 578

mercurial