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