1 wdns_res
wdns_file_load_names(const char * fname,wdns_callback_name cb,void * user)2 wdns_file_load_names(const char *fname, wdns_callback_name cb, void *user)
3 {
4 	FILE *fp;
5 	char line[1280];
6 	wdns_res res;
7 	wdns_name_t name;
8 
9 	fp = fopen(fname, "r");
10 	if (fp == NULL)
11 		return (wdns_res_failure);
12 
13 	res = wdns_res_success;
14 	memset(line, 0, sizeof(line));
15 
16 	while (fgets(line, sizeof(line), fp) != NULL) {
17 		if (line[0] == '\n' || line[0] == ' ' || line[0] == '#')
18 			continue;
19 		if (line[strlen(line) - 1] == '\n')
20 			line[strlen(line) - 1] = '\0';
21 		res = wdns_str_to_name(line, &name);
22 		if (res != wdns_res_success)
23 			break;
24 		cb(&name, user);
25 	}
26 
27 	fclose(fp);
28 	return (res);
29 }
30