Generic __longjmp.c.
[kopensolaris-gnu/glibc.git] / resolv / res_data.c
index 7488ba7..1beea1d 100644 (file)
@@ -57,9 +57,10 @@ const char *_res_opcodes[] = {
        "ZONEINIT",
        "ZONEREF",
 };
+libresolv_hidden_data_def (_res_opcodes)
 
 #ifdef BIND_UPDATE
-const char *_res_sectioncodes[] = {
+const char *_res_sectioncodes[] attribute_hidden = {
        "ZONE",
        "PREREQUISITES",
        "UPDATE",
@@ -138,14 +139,16 @@ void
 fp_query(const u_char *msg, FILE *file) {
        fp_nquery(msg, PACKETSZ, file);
 }
+libresolv_hidden_def (fp_query)
 
 void
 fp_nquery(const u_char *msg, int len, FILE *file) {
-       if ((_res.options & RES_INIT) == 0 && __res_ninit(&_res) == -1)
+       if (__res_maybe_init (&_res, 0) == -1)
                return;
 
        res_pquery(&_res, msg, len, file);
 }
+libresolv_hidden_def (fp_nquery)
 
 int
 res_mkquery(int op,                    /* opcode of query */
@@ -157,7 +160,7 @@ res_mkquery(int op,                 /* opcode of query */
            u_char *buf,                /* buffer to put query */
            int buflen)                 /* size of buffer */
 {
-       if ((_res.options & RES_INIT) == 0 && res_init() == -1) {
+       if (__res_maybe_init (&_res, 1) == -1) {
                RES_SET_H_ERRNO(&_res, NETDB_INTERNAL);
                return (-1);
        }
@@ -169,7 +172,7 @@ res_mkquery(int op,                 /* opcode of query */
 #ifdef BIND_UPDATE
 int
 res_mkupdate(ns_updrec *rrecp_in, u_char *buf, int buflen) {
-       if ((_res.options & RES_INIT) == 0 && res_init() == -1) {
+       if (__res_maybe_init (&_res, 1) == -1) {
                RES_SET_H_ERRNO(&_res, NETDB_INTERNAL);
                return (-1);
        }
@@ -184,7 +187,7 @@ res_query(const char *name, /* domain name */
          u_char *answer,       /* buffer to put answer */
          int anslen)           /* size of answer buffer */
 {
-       if ((_res.options & RES_INIT) == 0 && res_init() == -1) {
+       if (__res_maybe_init (&_res, 1) == -1) {
                RES_SET_H_ERRNO(&_res, NETDB_INTERNAL);
                return (-1);
        }
@@ -208,7 +211,7 @@ res_isourserver(const struct sockaddr_in *inp) {
 
 int
 res_send(const u_char *buf, int buflen, u_char *ans, int anssiz) {
-       if ((_res.options & RES_INIT) == 0 && res_init() == -1) {
+       if (__res_maybe_init (&_res, 1) == -1) {
                /* errno should have been set by res_init() in this case. */
                return (-1);
        }
@@ -221,7 +224,7 @@ int
 res_sendsigned(const u_char *buf, int buflen, ns_tsig_key *key,
               u_char *ans, int anssiz)
 {
-       if ((_res.options & RES_INIT) == 0 && res_init() == -1) {
+       if (__res_maybe_init (&_res, 1) == -1) {
                /* errno should have been set by res_init() in this case. */
                return (-1);
        }
@@ -243,13 +246,15 @@ res_close(void) {
        if ((_res.options & RES_INIT) == 0)
          return;
 #endif
-       res_nclose(&_res);
+       /* We don't free the name server addresses because we never
+          did it and it would be done implicitly on shutdown.  */
+       __res_iclose(&_res, false);
 }
 
 #ifdef BIND_UPDATE
 int
 res_update(ns_updrec *rrecp_in) {
-       if ((_res.options & RES_INIT) == 0 && res_init() == -1) {
+       if (__res_maybe_init (&_res, 1) == -1) {
                RES_SET_H_ERRNO(&_res, NETDB_INTERNAL);
                return (-1);
        }
@@ -264,7 +269,7 @@ res_search(const char *name,        /* domain name */
           u_char *answer,      /* buffer to put answer */
           int anslen)          /* size of answer */
 {
-       if ((_res.options & RES_INIT) == 0 && res_init() == -1) {
+       if (__res_maybe_init (&_res, 1) == -1) {
                RES_SET_H_ERRNO(&_res, NETDB_INTERNAL);
                return (-1);
        }
@@ -279,7 +284,7 @@ res_querydomain(const char *name,
                u_char *answer,         /* buffer to put answer */
                int anslen)             /* size of answer */
 {
-       if ((_res.options & RES_INIT) == 0 && res_init() == -1) {
+       if (__res_maybe_init (&_res, 1) == -1) {
                RES_SET_H_ERRNO(&_res, NETDB_INTERNAL);
                return (-1);
        }
@@ -295,6 +300,7 @@ hostalias(const char *name) {
 
        return (res_hostalias(&_res, name, abuf, sizeof abuf));
 }
+libresolv_hidden_def (hostalias)
 
 #ifdef ultrix
 int