Lines Matching refs:parser
177 resolv_conf_parser_init (struct resolv_conf_parser *parser, in resolv_conf_parser_init() argument
180 parser->buffer = NULL; in resolv_conf_parser_init()
181 parser->search_list_store = NULL; in resolv_conf_parser_init()
182 nameserver_list_init (&parser->nameserver_list); in resolv_conf_parser_init()
183 search_list_init (&parser->search_list); in resolv_conf_parser_init()
184 sort_list_init (&parser->sort_list); in resolv_conf_parser_init()
188 parser->template.retrans = preinit->retrans; in resolv_conf_parser_init()
189 parser->template.retry = preinit->retry; in resolv_conf_parser_init()
190 parser->template.options = preinit->options | RES_INIT; in resolv_conf_parser_init()
194 parser->template.retrans = RES_TIMEOUT; in resolv_conf_parser_init()
195 parser->template.retry = RES_DFLRETRY; in resolv_conf_parser_init()
196 parser->template.options = RES_DEFAULT | RES_INIT; in resolv_conf_parser_init()
198 parser->template.ndots = 1; in resolv_conf_parser_init()
202 resolv_conf_parser_free (struct resolv_conf_parser *parser) in resolv_conf_parser_free() argument
204 free (parser->buffer); in resolv_conf_parser_free()
205 free (parser->search_list_store); in resolv_conf_parser_free()
206 nameserver_list_free (&parser->nameserver_list); in resolv_conf_parser_free()
207 search_list_free (&parser->search_list); in resolv_conf_parser_free()
208 sort_list_free (&parser->sort_list); in resolv_conf_parser_free()
256 res_vinit_1 (FILE *fp, struct resolv_conf_parser *parser) in res_vinit_1() argument
269 free (parser->search_list_store); in res_vinit_1()
270 parser->search_list_store = cp; in res_vinit_1()
274 search_list_add (&parser->search_list, cp); in res_vinit_1()
295 search_list_add (&parser->search_list, cp); in res_vinit_1()
314 ssize_t ret = __getline (&parser->buffer, &buffer_size, fp); in res_vinit_1()
325 if (*parser->buffer == ';' || *parser->buffer == '#') in res_vinit_1()
328 if (MATCH (parser->buffer, "domain")) in res_vinit_1()
333 cp = parser->buffer + sizeof ("domain") - 1; in res_vinit_1()
342 free (parser->search_list_store); in res_vinit_1()
343 parser->search_list_store = cp; in res_vinit_1()
344 search_list_clear (&parser->search_list); in res_vinit_1()
345 search_list_add (&parser->search_list, cp); in res_vinit_1()
352 if (MATCH (parser->buffer, "search")) in res_vinit_1()
357 cp = parser->buffer + sizeof ("search") - 1; in res_vinit_1()
371 free (parser->search_list_store); in res_vinit_1()
372 parser->search_list_store = cp; in res_vinit_1()
375 search_list_clear (&parser->search_list); in res_vinit_1()
376 search_list_add (&parser->search_list, cp); in res_vinit_1()
389 search_list_add (&parser->search_list, cp); in res_vinit_1()
396 if (MATCH (parser->buffer, "nameserver")) in res_vinit_1()
400 cp = parser->buffer + sizeof ("nameserver") - 1; in res_vinit_1()
452 (&parser->nameserver_list); in res_vinit_1()
463 if (MATCH (parser->buffer, "sortlist")) in res_vinit_1()
467 cp = parser->buffer + sizeof ("sortlist") - 1; in res_vinit_1()
500 sort_list_add (&parser->sort_list, e); in res_vinit_1()
506 if (MATCH (parser->buffer, "options")) in res_vinit_1()
508 res_setoptions (parser, parser->buffer + sizeof ("options") - 1); in res_vinit_1()
513 if (__glibc_unlikely (nameserver_list_size (&parser->nameserver_list) == 0)) in res_vinit_1()
516 = nameserver_list_emplace (&parser->nameserver_list); in res_vinit_1()
525 if (search_list_size (&parser->search_list) == 0) in res_vinit_1()
532 free (parser->search_list_store); in res_vinit_1()
533 parser->search_list_store = domain; in res_vinit_1()
534 search_list_add (&parser->search_list, domain); in res_vinit_1()
539 res_setoptions (parser, cp); in res_vinit_1()
541 if (nameserver_list_has_failed (&parser->nameserver_list) in res_vinit_1()
542 || search_list_has_failed (&parser->search_list) in res_vinit_1()
543 || sort_list_has_failed (&parser->sort_list)) in res_vinit_1()
578 struct resolv_conf_parser parser; in __resolv_conf_load() local
579 resolv_conf_parser_init (&parser, preinit); in __resolv_conf_load()
582 bool ok = res_vinit_1 (fp, &parser); in __resolv_conf_load()
590 parser.template.nameserver_list in __resolv_conf_load()
591 = nameserver_list_begin (&parser.nameserver_list); in __resolv_conf_load()
592 parser.template.nameserver_list_size in __resolv_conf_load()
593 = nameserver_list_size (&parser.nameserver_list); in __resolv_conf_load()
594 parser.template.search_list = search_list_begin (&parser.search_list); in __resolv_conf_load()
595 parser.template.search_list_size in __resolv_conf_load()
596 = search_list_size (&parser.search_list); in __resolv_conf_load()
597 parser.template.sort_list = sort_list_begin (&parser.sort_list); in __resolv_conf_load()
598 parser.template.sort_list_size = sort_list_size (&parser.sort_list); in __resolv_conf_load()
599 conf = __resolv_conf_allocate (&parser.template); in __resolv_conf_load()
601 resolv_conf_parser_free (&parser); in __resolv_conf_load()
645 res_setoptions (struct resolv_conf_parser *parser, const char *options) in res_setoptions() argument
659 parser->template.ndots = i; in res_setoptions()
661 parser->template.ndots = RES_MAXNDOTS; in res_setoptions()
667 parser->template.retrans = i; in res_setoptions()
669 parser->template.retrans = RES_MAXRETRANS; in res_setoptions()
675 parser->template.retry = i; in res_setoptions()
677 parser->template.retry = RES_MAXRETRY; in res_setoptions()
704 parser->template.options &= options[i].flag; in res_setoptions()
706 parser->template.options |= options[i].flag; in res_setoptions()