]> git.ipfire.org Git - thirdparty/dhcp.git/commitdiff
Adjust provided functionality to be compatible with asynchronous resolver.
authorTed Lemon <source@isc.org>
Mon, 12 Jan 1998 01:01:44 +0000 (01:01 +0000)
committerTed Lemon <source@isc.org>
Mon, 12 Jan 1998 01:01:44 +0000 (01:01 +0000)
common/resolv.c

index d495e517ddba3fdef55353b1cd0adeb5d75ba88b..30077ba7b60712fb4c974db6c27c9c4d62d56b09 100644 (file)
@@ -42,7 +42,7 @@
 
 #ifndef lint
 static char copyright[] =
-"$Id: resolv.c,v 1.5 1997/12/06 04:04:07 mellon Exp $ Copyright (c) 1995, 1996 The Internet Software Consortium.  All rights reserved.\n";
+"$Id: resolv.c,v 1.6 1998/01/12 01:01:44 mellon Exp $ Copyright (c) 1995, 1996 The Internet Software Consortium.  All rights reserved.\n";
 #endif /* not lint */
 
 #include "dhcpd.h"
@@ -157,7 +157,10 @@ void read_resolv_conf (parse_time)
                                sl -> next = sp -> next;
                        else
                                name_servers = sp -> next;
-                       free_name_server (sp, "pick_name_server");
+                       /* We can't actually free the name server structure,
+                          because somebody might be hanging on to it.    If
+                          your /etc/resolv.conf file changes a lot, this
+                          could be a noticable memory leak. */
                } else
                        sl = sp;
        }
@@ -180,7 +183,7 @@ void read_resolv_conf (parse_time)
 
 /* Pick a name server from the /etc/resolv.conf file. */
 
-struct sockaddr_in *pick_name_server ()
+struct name_server *first_name_server ()
 {
        FILE *rc;
        static TIME rcdate;
@@ -190,7 +193,7 @@ struct sockaddr_in *pick_name_server ()
        if (cur_time > rcdate) {
                if (stat (path_resolv_conf, &st) < 0) {
                        warn ("Can't stat %s", path_resolv_conf);
-                       return (struct sockaddr_in *)0;
+                       return (struct name_server *)0;
                }
                if (st.st_mtime > rcdate) {
                        char rcbuf [512];
@@ -201,7 +204,5 @@ struct sockaddr_in *pick_name_server ()
                }
        }
 
-       if (name_servers)
-               return &name_servers -> addr;
-       return (struct sockaddr_in *)0;
+       return name_servers;
 }