Lines Matching refs:conf

24  * Module for parsing resolv.conf files (largely derived from lwconfig.c).
41 * /etc/resolv.conf
80 * resolv.conf parameters
123 resconf_parsenameserver(irs_resconf_t *conf, FILE *fp);
125 resconf_parsedomain(irs_resconf_t *conf, FILE *fp);
127 resconf_parsesearch(irs_resconf_t *conf, FILE *fp);
129 resconf_parsesortlist(irs_resconf_t *conf, FILE *fp);
279 resconf_parsenameserver(irs_resconf_t *conf, FILE *fp) {
284 if (conf->numns == RESCONFMAXNAMESERVERS)
296 result = add_server(conf->mctx, word, &conf->nameservers);
299 conf->numns++;
305 resconf_parsedomain(irs_resconf_t *conf, FILE *fp) {
318 if (conf->domainname != NULL)
319 isc_mem_free(conf->mctx, conf->domainname);
325 if (conf->search[i] != NULL) {
326 isc_mem_free(conf->mctx, conf->search[i]);
327 conf->search[i] = NULL;
330 conf->searchnxt = 0;
332 conf->domainname = isc_mem_strdup(conf->mctx, word);
333 if (conf->domainname == NULL)
340 resconf_parsesearch(irs_resconf_t *conf, FILE *fp) {
344 if (conf->domainname != NULL) {
348 isc_mem_free(conf->mctx, conf->domainname);
349 conf->domainname = NULL;
356 if (conf->search[idx] != NULL) {
357 isc_mem_free(conf->mctx, conf->search[idx]);
358 conf->search[idx] = NULL;
361 conf->searchnxt = 0;
369 if (conf->searchnxt == RESCONFMAXSEARCH)
372 conf->search[idx] = isc_mem_strdup(conf->mctx, word);
373 if (conf->search[idx] == NULL)
376 conf->searchnxt++;
389 resconf_parsesortlist(irs_resconf_t *conf, FILE *fp) {
399 if (conf->sortlistnxt == RESCONFMAXSORTLIST)
406 idx = conf->sortlistnxt;
407 res = create_addr(word, &conf->sortlist[idx].addr, 1);
412 res = create_addr(p, &conf->sortlist[idx].mask, 0);
419 conf->sortlist[idx].mask = conf->sortlist[idx].addr;
420 memset(&conf->sortlist[idx].mask.type, 0xff,
421 sizeof(conf->sortlist[idx].mask.type));
424 conf->sortlistnxt++;
436 resconf_parseoption(irs_resconf_t *conf, FILE *fp) {
448 conf->resdebug = 1;
455 conf->ndots = (isc_uint8_t)ndots;
468 add_search(irs_resconf_t *conf, char *domain) {
471 entry = isc_mem_get(conf->mctx, sizeof(*entry));
477 ISC_LIST_APPEND(conf->searchlist, entry, link);
489 irs_resconf_t *conf;
497 conf = isc_mem_get(mctx, sizeof(*conf));
498 if (conf == NULL)
501 conf->mctx = mctx;
502 ISC_LIST_INIT(conf->nameservers);
503 conf->numns = 0;
504 conf->domainname = NULL;
505 conf->searchnxt = 0;
506 conf->resdebug = 0;
507 conf->ndots = 1;
509 conf->search[i] = NULL;
513 isc_mem_put(mctx, conf, sizeof(*conf));
529 rval = resconf_parsenameserver(conf, fp);
531 rval = resconf_parsedomain(conf, fp);
533 rval = resconf_parsesearch(conf, fp);
535 rval = resconf_parsesortlist(conf, fp);
537 rval = resconf_parseoption(conf, fp);
553 if (conf->numns == 0) {
554 INSIST(ISC_LIST_EMPTY(conf->nameservers));
557 (void)add_server(conf->mctx, "127.0.0.1", &conf->nameservers);
558 (void)add_server(conf->mctx, "::1", &conf->nameservers);
565 ISC_LIST_INIT(conf->searchlist);
566 if (conf->domainname != NULL) {
567 ret = add_search(conf, conf->domainname);
568 } else if (conf->searchnxt > 0) {
569 for (i = 0; i < conf->searchnxt; i++) {
570 ret = add_search(conf, conf->search[i]);
576 conf->magic = IRS_RESCONF_MAGIC;
579 irs_resconf_destroy(&conf);
581 *confp = conf;
588 irs_resconf_t *conf;
594 conf = *confp;
595 REQUIRE(IRS_RESCONF_VALID(conf));
597 while ((searchentry = ISC_LIST_HEAD(conf->searchlist)) != NULL) {
598 ISC_LIST_UNLINK(conf->searchlist, searchentry, link);
599 isc_mem_put(conf->mctx, searchentry, sizeof(*searchentry));
602 while ((address = ISC_LIST_HEAD(conf->nameservers)) != NULL) {
603 ISC_LIST_UNLINK(conf->nameservers, address, link);
604 isc_mem_put(conf->mctx, address, sizeof(*address));
607 if (conf->domainname != NULL)
608 isc_mem_free(conf->mctx, conf->domainname);
611 if (conf->search[i] != NULL)
612 isc_mem_free(conf->mctx, conf->search[i]);
615 isc_mem_put(conf->mctx, conf, sizeof(*conf));
621 irs_resconf_getnameservers(irs_resconf_t *conf) {
622 REQUIRE(IRS_RESCONF_VALID(conf));
624 return (&conf->nameservers);
628 irs_resconf_getsearchlist(irs_resconf_t *conf) {
629 REQUIRE(IRS_RESCONF_VALID(conf));
631 return (&conf->searchlist);
635 irs_resconf_getndots(irs_resconf_t *conf) {
636 REQUIRE(IRS_RESCONF_VALID(conf));
638 return ((unsigned int)conf->ndots);