ads->nservers++;
}
+static void freesearchlist(adns_state ads) {
+ if (ads->nsearchlist) free(*ads->searchlist);
+ free(ads->searchlist);
+}
+
static void saveerr(adns_state ads, int en) {
if (!ads->configerrno) ads->configerrno= en;
}
*newchars++ = 0;
}
- free(ads->searchlist);
+ freesearchlist(ads);
ads->nsearchlist= count;
ads->searchlist= newptrs;
}
free(ads);
}
-int adns_init(adns_state *ads_r, int flags, FILE *diagfile) {
+int adns_init(adns_state *ads_r, adns_initflags flags, FILE *diagfile) {
adns_state ads;
const char *res_options, *adns_res_options;
int r;
return 0;
}
-int adns_init_strcfg(adns_state *ads_r, int flags,
+int adns_init_strcfg(adns_state *ads_r, adns_initflags flags,
FILE *diagfile, const char *configtext) {
adns_state ads;
int r;
if (ads->tcpsocket >= 0) close(ads->tcpsocket);
adns__vbuf_free(&ads->tcpsend);
adns__vbuf_free(&ads->tcprecv);
+ freesearchlist(ads);
free(ads);
}