summaryrefslogtreecommitdiff
path: root/resolv/res_init.c
diff options
context:
space:
mode:
Diffstat (limited to 'resolv/res_init.c')
-rw-r--r--resolv/res_init.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/resolv/res_init.c b/resolv/res_init.c
index 5d8b2c994d..659d3ea81f 100644
--- a/resolv/res_init.c
+++ b/resolv/res_init.c
@@ -102,6 +102,7 @@
#include <sys/types.h>
#include <inet/net-internal.h>
#include <errno.h>
+#include <resolv_conf.h>
static void res_setoptions (res_state, const char *);
static uint32_t net_mask (struct in_addr);
@@ -137,7 +138,6 @@ res_vinit_1 (res_state statp, bool preinit, FILE *fp, char **buffer)
bool havesearch = false;
int nsort = 0;
char *net;
- statp->_u._ext.initstamp = __res_initstamp;
if (!preinit)
{
@@ -457,6 +457,19 @@ __res_vinit (res_state statp, int preinit)
bool ok = res_vinit_1 (statp, preinit, fp, &buffer);
free (buffer);
+ if (ok)
+ {
+ struct resolv_conf init = { 0 }; /* No data yet. */
+ struct resolv_conf *conf = __resolv_conf_allocate (&init);
+ if (conf == NULL)
+ ok = false;
+ else
+ {
+ ok = __resolv_conf_attach (statp, conf);
+ __resolv_conf_put (conf);
+ }
+ }
+
if (!ok)
{
/* Deallocate the name server addresses which have been