File ppp-var_run_resolv_conf.patch of Package ppp

Tue Jul 22 14:16:29 CEST 2008 - hvogel@suse.de

Move the resolv.conf written by pppd to /var/run [bnc#401648]


--- Changes-2.3.orig
+++ Changes-2.3
@@ -262,10 +262,10 @@ What was new in ppp-2.3.6.
 
 * Added new option `usepeerdns', thanks to Nick Walker
   <nickwalker@email.com>.  If the peer supplies DNS addresses, these
-  will be written to /etc/ppp/resolv.conf.  The ip-up script can then
-  be used to add these addresses to /etc/resolv.conf if desired (see
-  the ip-up.local.add and ip-down.local.add files in the scripts
-  directory).
+  will be written to /run/ppp_resolv.conf.$INTERFACE_NAME.
+  The ip-up script can then be used to add these addresses to
+  /etc/resolv.conf if desired (see the ip-up.local.add and
+  ip-down.local.add files in the scripts directory).
 
 * The Solaris ppp driver should now work correctly on SMP systems.
 
--- pppd/ipcp.c.orig
+++ pppd/ipcp.c
@@ -2151,10 +2151,13 @@ static void
 create_resolv(u_int32_t peerdns1, u_int32_t peerdns2)
 {
     FILE *f;
+    char rcfilename[PATH_MAX];
 
-    f = fopen(PPP_PATH_RESOLV, "w");
+    slprintf(rcfilename, sizeof(rcfilename), "%s.%s", PPP_PATH_RESOLV, ifname);
+    
+    f = fopen(rcfilename, "w");
     if (f == NULL) {
-	error("Failed to create %s: %m", PPP_PATH_RESOLV);
+	error("Failed to create %s: %m", rcfilename);
 	return;
     }
 
@@ -2165,7 +2168,7 @@ create_resolv(u_int32_t peerdns1, u_int3
 	fprintf(f, "nameserver %s\n", ip_ntoa(peerdns2));
 
     if (ferror(f))
-	error("Write failed to %s: %m", PPP_PATH_RESOLV);
+	error("Write failed to %s: %m", rcfilename);
 
     fclose(f);
 }
--- pppd/pathnames.h.orig
+++ pppd/pathnames.h
@@ -105,7 +105,7 @@
 #define PPP_PATH_AUTHDOWN       PPP_PATH_CONFDIR "/auth-down"
 #define PPP_PATH_TTYOPT         PPP_PATH_CONFDIR "/options."
 #define PPP_PATH_PEERFILES      PPP_PATH_CONFDIR "/peers/"
-#define PPP_PATH_RESOLV         PPP_PATH_CONFDIR "/resolv.conf"
+#define PPP_PATH_RESOLV         PPP_PATH_VARRUN  "/ppp_resolv.conf"
 
 #define PPP_PATH_CONNERRS       PPP_PATH_VARLOG  "/connect-errors"
 
--- pppd/pppd.8.orig
+++ pppd/pppd.8
@@ -1189,8 +1189,8 @@ Ask the peer for up to 2 DNS server addr
 by the peer (if any) are passed to the /etc/ppp/ip\-up script in the
 environment variables DNS1 and DNS2, and the environment variable
 USEPEERDNS will be set to 1.  In addition, pppd will create an
-/etc/ppp/resolv.conf file containing one or two nameserver lines with
-the address(es) supplied by the peer.
+/run/ppp_resolv.conf.$INTERFACE file containing one or two nameserver
+lines with the address(es) supplied by the peer.
 .TP
 .B usepeerwins
 Ask the peer for up to 2 WINS server addresses.  The addresses supplied
openSUSE Build Service is sponsored by