Hello community,

here is the log from the commit of package ppp for openSUSE:Factory checked in 
at 2020-08-06 17:30:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ppp (Old)
 and      /work/SRC/openSUSE:Factory/.ppp.new.3399 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ppp"

Thu Aug  6 17:30:40 2020 rev:43 rq:824334 version:2.4.8

Changes:
--------
--- /work/SRC/openSUSE:Factory/ppp/ppp.changes  2020-05-26 17:14:28.903347043 
+0200
+++ /work/SRC/openSUSE:Factory/.ppp.new.3399/ppp.changes        2020-08-06 
17:31:06.121080078 +0200
@@ -1,0 +2,45 @@
+Mon Aug  3 14:52:55 UTC 2020 - Reinhard Max <m...@suse.com>
+
+- New version 2.4.8.
+  * New pppd options have been added:
+    * ifname, to set the name for the PPP interface device
+    * defaultroute-metric, to set the metric for the default route
+    * defaultroute6, to add an IPv6 default route (with
+      nodefaultroute6 to prevent adding an IPv6 default route).
+    * up_sdnotify, to have pppd notify systemd when the link is up.
+
+  * The rp-pppoe plugin has new options:
+    * host-uniq, to set the Host-Uniq value to send
+    * pppoe-padi-timeout, to set the timeout for discovery packets
+    * pppoe-padi-attempts, to set the number of discovery attempts.
+
+  * Added the CLASS attribute in radius packets.
+
+  * Fixed warnings and issues found by static analysis.
+
+- Obsoleted patches:
+  * ppp-2.4.3-pppoatm.diff
+  * ppp-2.4.4-strncatfix.patch
+  * ppp-2.4.6-ifname.diff
+  * ppp-2.4.7-DES-openssl.patch
+  * ppp-2.4.7.tar.gz.asc
+  * ppp-send-padt.patch
+
+- Patches that got renamed, because they needed rediffing:
+  * ppp-2.4.1-higher-speeds.diff -> ppp-higher-speeds.patch
+  * ppp-2.4.1-higher-speeds.diff -> ppp-higher-speeds.patch
+  * ppp-2.4.2-__P.diff -> ppp-__P.patch
+  * ppp-2.4.2-cifdefroute.diff -> ppp-cifdefroute.patch
+  * ppp-2.4.2-pie.patch -> ppp-pie.patch
+  * ppp-2.4.2-smpppd.diff -> ppp-smpppd.patch
+  * ppp-2.4.3-filter.diff -> ppp-filter.patch
+  * ppp-2.4.3-fork-fix.diff -> ppp-fork-fix.patch
+  * ppp-2.4.4-var_run_resolv_conf.patch -> ppp-var_run_resolv_conf.patch
+  * ppp-2.4.6-lib64.patch -> ppp-lib64.patch
+  * ppp-2.4.6-make.diff -> ppp-make.patch
+  * ppp-2.4.6-misc.diff -> ppp-misc.patch
+  * ppp-2.4.7-fix-bashisms.patch -> ppp-fix-bashisms.patch
+
+- bsc#1172916: Fix an outdated comment for lcp-echo-interval.
+
+-------------------------------------------------------------------

Old:
----
  ppp-2.4.1-higher-speeds.diff
  ppp-2.4.2-__P.diff
  ppp-2.4.2-cifdefroute.diff
  ppp-2.4.2-pie.patch
  ppp-2.4.2-smpppd.diff
  ppp-2.4.3-filter.diff
  ppp-2.4.3-fork-fix.diff
  ppp-2.4.3-pppoatm.diff
  ppp-2.4.4-strncatfix.patch
  ppp-2.4.4-var_run_resolv_conf.patch
  ppp-2.4.6-ifname.diff
  ppp-2.4.6-lib64.patch
  ppp-2.4.6-make.diff
  ppp-2.4.6-misc.diff
  ppp-2.4.7-DES-openssl.patch
  ppp-2.4.7-fix-bashisms.patch
  ppp-2.4.7.tar.gz
  ppp-2.4.7.tar.gz.asc
  ppp-send-padt.patch

New:
----
  ppp-2.4.8.tar.gz
  ppp-2.4.8.tar.gz.asc
  ppp-__P.patch
  ppp-cifdefroute.patch
  ppp-filter.patch
  ppp-fix-bashisms.patch
  ppp-fork-fix.patch
  ppp-higher-speeds.patch
  ppp-lib64.patch
  ppp-make.patch
  ppp-misc.patch
  ppp-pie.patch
  ppp-smpppd.patch
  ppp-var_run_resolv_conf.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ ppp.spec ++++++
--- /var/tmp/diff_new_pack.32mDe6/_old  2020-08-06 17:31:08.089080539 +0200
+++ /var/tmp/diff_new_pack.32mDe6/_new  2020-08-06 17:31:08.097080541 +0200
@@ -18,7 +18,7 @@
 
 %define _group dialout
 Name:           ppp
-Version:        2.4.7
+Version:        2.4.8
 Release:        0
 Summary:        The Point to Point Protocol for Linux
 License:        BSD-3-Clause AND LGPL-2.1-or-later AND GPL-2.0-or-later
@@ -49,35 +49,29 @@
 Source17:       %{name}.keyring
 Source18:       
https://download.samba.org/pub/%{name}/%{name}-%{version}.tar.gz.asc
 # Makefile changes
-Patch0:         ppp-2.4.6-make.diff
+Patch0:         ppp-make.patch
 # replacedefaultroute option
-Patch2:         ppp-2.4.2-cifdefroute.diff
+Patch2:         ppp-cifdefroute.patch
 # misc tiny stuff
-Patch3:         ppp-2.4.6-misc.diff
+Patch3:         ppp-misc.patch
 # more log output for smpppd
-Patch4:         ppp-2.4.2-smpppd.diff
+Patch4:         ppp-smpppd.patch
 # allow higher serial speeds
-Patch5:         ppp-2.4.1-higher-speeds.diff
+Patch5:         ppp-higher-speeds.patch
 # fixed use of libpcap including dial on demand
-Patch6:         ppp-2.4.3-filter.diff
-# option to rename ppp interface
-Patch8:         ppp-2.4.6-ifname.diff
+Patch6:         ppp-filter.patch
 # Don't use __P from glibc (pppd uses it wrong)
-Patch9:         ppp-2.4.2-__P.diff
-Patch10:        ppp-2.4.3-pppoatm.diff
-Patch11:        ppp-2.4.7-fix-bashisms.patch
-Patch12:        ppp-2.4.2-pie.patch
-Patch14:        ppp-2.4.3-fork-fix.diff
+Patch9:         ppp-__P.patch
+Patch11:        ppp-fix-bashisms.patch
+Patch12:        ppp-pie.patch
+Patch14:        ppp-fork-fix.patch
 Patch17:        ppp-2.4.3-strip.diff
 Patch18:        ppp-2.4.3-winbind-setuidfix.patch
-Patch19:        ppp-2.4.4-strncatfix.patch
-Patch21:        ppp-2.4.6-lib64.patch
-Patch22:        ppp-2.4.4-var_run_resolv_conf.patch
-Patch23:        ppp-send-padt.patch
+Patch21:        ppp-lib64.patch
+Patch22:        ppp-var_run_resolv_conf.patch
 # PATCH-FIX-UPSTREAM -- Patch for CVE-2015-3310
 Patch24:        ppp-CVE-2015-3310.patch
 Patch25:        fix-header-conflict.patch
-Patch26:        ppp-2.4.7-DES-openssl.patch
 Patch27:        ppp-CVE-2020-8597.patch
 BuildRequires:  libpcap-devel
 BuildRequires:  linux-atm-devel
@@ -132,24 +126,19 @@
 %patch3
 %patch4
 %patch5
-%patch6 -p1
-%patch8
+%patch6
 %patch9
-%patch10 -p1
 %patch11 -p1
-%patch12 -p1
+%patch12
 %patch14
 %patch17
 %patch18
-%patch19 -p1
 %if %{_lib} == lib64
 %patch21
 %endif
 %patch22
-%patch23 -p1
 %patch24
 %patch25 -p1
-%patch26 -p1
 %patch27
 sed -i -e '1s/local\///' scripts/secure-card
 find scripts -type f | xargs chmod a-x

++++++ options ++++++
--- /var/tmp/diff_new_pack.32mDe6/_old  2020-08-06 17:31:08.257080578 +0200
+++ /var/tmp/diff_new_pack.32mDe6/_new  2020-08-06 17:31:08.257080578 +0200
@@ -114,11 +114,10 @@
 nodetach
 
 # If this option is given, pppd will send an LCP echo-request frame to
-# the peer every n seconds. Under Linux, the echo-request is sent when
-# no packets have been received from the peer for n seconds. Normally
-# the peer should respond to the echo-request by sending an echo-reply.
-# This option can be used with the lcp-echo-failure option to detect
-# that the peer is no longer connected.
+# the peer every n seconds. Normally the peer should respond to the
+# echo-request by sending an echo-reply.  This option can be used with
+# the lcp-echo-failure option to detect that the peer is no longer
+# connected.
 lcp-echo-interval 30
 
 # If this option is given, pppd will presume the peer to be dead if n

++++++ ppp-2.4.7.tar.gz -> ppp-2.4.8.tar.gz ++++++
++++ 2972 lines of diff (skipped)

++++++ ppp-CVE-2015-3310.patch ++++++
--- /var/tmp/diff_new_pack.32mDe6/_old  2020-08-06 17:31:08.445080622 +0200
+++ /var/tmp/diff_new_pack.32mDe6/_new  2020-08-06 17:31:08.445080622 +0200
@@ -1,4 +1,4 @@
---- pppd/plugins/radius/util.c
+--- pppd/plugins/radius/util.c.orig
 +++ pppd/plugins/radius/util.c
 @@ -77,7 +77,7 @@ rc_mksid (void)
    static unsigned short int cnt = 0;
@@ -9,5 +9,3 @@
           cnt & 0xFF);
    cnt++;
    return buf;
-
-

++++++ ppp-CVE-2020-8597.patch ++++++
--- /var/tmp/diff_new_pack.32mDe6/_old  2020-08-06 17:31:08.461080626 +0200
+++ /var/tmp/diff_new_pack.32mDe6/_new  2020-08-06 17:31:08.461080626 +0200
@@ -15,7 +15,7 @@
 
 --- pppd/eap.c.orig
 +++ pppd/eap.c
-@@ -1421,7 +1421,7 @@ int len;
+@@ -1420,7 +1420,7 @@ int len;
                }
  
                /* Not so likely to happen. */
@@ -24,7 +24,7 @@
                        dbglog("EAP: trimming really long peer name down");
                        BCOPY(inp + vallen, rhostname, sizeof (rhostname) - 1);
                        rhostname[sizeof (rhostname) - 1] = '\0';
-@@ -1847,7 +1847,7 @@ int len;
+@@ -1846,7 +1846,7 @@ int len;
                }
  
                /* Not so likely to happen. */

++++++ ppp-__P.patch ++++++
--- pppd/pppd.h.orig
+++ pppd/pppd.h
@@ -59,14 +59,17 @@
 #include <net/ppp_defs.h>
 #include "patchlevel.h"
 
+#undef __P
 #if defined(__STDC__)
 #include <stdarg.h>
 #define __V(x) x
+#define __P(args) args
 #else
 #include <varargs.h>
 #define __V(x) (va_alist) va_dcl
 #define const
 #define volatile
+#define __P(args)
 #endif
 
 #ifdef INET6
++++++ ppp-cifdefroute.patch ++++++
--- pppd/ipcp.c.orig
+++ pppd/ipcp.c
@@ -197,6 +197,16 @@ static option_t ipcp_option_list[] = {
       "disable defaultroute option", OPT_ALIAS | OPT_A2CLR,
       &ipcp_wantoptions[0].default_route },
 
+#ifdef __linux__
+    { "replacedefaultroute", o_bool,
+                               &ipcp_wantoptions[0].replace_default_route,
+      "Replace default route", 1
+    },
+    { "noreplacedefaultroute", o_bool,
+                               &ipcp_allowoptions[0].replace_default_route,
+      "Never replace default route", OPT_A2COPY,
+                               &ipcp_wantoptions[0].replace_default_route },
+#endif
     { "proxyarp", o_bool, &ipcp_wantoptions[0].proxy_arp,
       "Add proxy ARP entry", OPT_ENABLE|1, &ipcp_allowoptions[0].proxy_arp },
     { "noproxyarp", o_bool, &ipcp_allowoptions[0].proxy_arp,
@@ -270,7 +280,7 @@ struct protent ipcp_protent = {
     ip_active_pkt
 };
 
-static void ipcp_clear_addrs __P((int, u_int32_t, u_int32_t));
+static void ipcp_clear_addrs __P((int, u_int32_t, u_int32_t, bool));
 static void ipcp_script __P((char *, int));    /* Run an up/down script */
 static void ipcp_script_done __P((void *));
 
@@ -1760,7 +1770,12 @@ ip_demand_conf(u)
     if (!sifnpmode(u, PPP_IP, NPMODE_QUEUE))
        return 0;
     if (wo->default_route)
+#ifndef __linux__
        if (sifdefaultroute(u, wo->ouraddr, wo->hisaddr))
+#else
+       if (sifdefaultroute(u, wo->ouraddr, wo->hisaddr,
+                                           wo->replace_default_route))
+#endif
            default_route_set[u] = 1;
     if (wo->proxy_arp)
        if (sifproxyarp(u, wo->hisaddr))
@@ -1848,7 +1863,8 @@ ipcp_up(f)
      */
     if (demand) {
        if (go->ouraddr != wo->ouraddr || ho->hisaddr != wo->hisaddr) {
-           ipcp_clear_addrs(f->unit, wo->ouraddr, wo->hisaddr);
+           ipcp_clear_addrs(f->unit, wo->ouraddr, wo->hisaddr,
+                                     wo->replace_default_route);
            if (go->ouraddr != wo->ouraddr) {
                warn("Local IP address changed to %I", go->ouraddr);
                script_setenv("OLDIPLOCAL", ip_ntoa(wo->ouraddr), 0);
@@ -1873,7 +1889,12 @@ ipcp_up(f)
 
            /* assign a default route through the interface if required */
            if (ipcp_wantoptions[f->unit].default_route) 
+#ifndef __linux__
                if (sifdefaultroute(f->unit, go->ouraddr, ho->hisaddr))
+#else
+               if (sifdefaultroute(f->unit, go->ouraddr, ho->hisaddr,
+                                            wo->replace_default_route))
+#endif
                    default_route_set[f->unit] = 1;
 
            /* Make a proxy ARP entry if requested. */
@@ -1923,7 +1944,12 @@ ipcp_up(f)
 
        /* assign a default route through the interface if required */
        if (ipcp_wantoptions[f->unit].default_route) 
+#ifndef __linux__
            if (sifdefaultroute(f->unit, go->ouraddr, ho->hisaddr))
+#else
+           if (sifdefaultroute(f->unit, go->ouraddr, ho->hisaddr,
+                                        wo->replace_default_route))
+#endif
                default_route_set[f->unit] = 1;
 
        /* Make a proxy ARP entry if requested. */
@@ -2001,7 +2027,7 @@ ipcp_down(f)
        sifnpmode(f->unit, PPP_IP, NPMODE_DROP);
        sifdown(f->unit);
        ipcp_clear_addrs(f->unit, ipcp_gotoptions[f->unit].ouraddr,
-                        ipcp_hisoptions[f->unit].hisaddr);
+                        ipcp_hisoptions[f->unit].hisaddr, 0);
     }
 
     /* Execute the ip-down script */
@@ -2017,16 +2043,25 @@ ipcp_down(f)
  * proxy arp entries, etc.
  */
 static void
-ipcp_clear_addrs(unit, ouraddr, hisaddr)
+ipcp_clear_addrs(unit, ouraddr, hisaddr, replacedefaultroute)
     int unit;
     u_int32_t ouraddr;  /* local address */
     u_int32_t hisaddr;  /* remote address */
+    bool replacedefaultroute;
 {
     if (proxy_arp_set[unit]) {
        cifproxyarp(unit, hisaddr);
        proxy_arp_set[unit] = 0;
     }
-    if (default_route_set[unit]) {
+    /* If replacedefaultroute, sifdefaultroute will be called soon
+     * with replacedefaultroute set and that will overwrite the current
+     * default route. This is the case only when doing demand, otherwise
+     * during demand, this cifdefaultroute would restore the old default
+     * route which is not what we want in this case. In the non-demand
+     * case, we'll delete the default route and restore the old if there
+     * is one saved by an sifdefaultroute with replacedefaultroute.
+     */
+    if (!replacedefaultroute && default_route_set[unit]) {
        cifdefaultroute(unit, ouraddr, hisaddr);
        default_route_set[unit] = 0;
     }
--- pppd/ipcp.h.orig
+++ pppd/ipcp.h
@@ -70,6 +70,7 @@ typedef struct ipcp_options {
     bool old_addrs;            /* Use old (IP-Addresses) option? */
     bool req_addr;             /* Ask peer to send IP address? */
     bool default_route;                /* Assign default route through 
interface? */
+    bool replace_default_route;        /* Replace default route through 
interface? */
     bool proxy_arp;            /* Make proxy ARP entry for peer? */
     bool neg_vj;               /* Van Jacobson Compression? */
     bool old_vj;               /* use old (short) form of VJ option? */
--- pppd/pppd.8.orig
+++ pppd/pppd.8
@@ -133,6 +133,13 @@ the gateway, when IPv6CP negotiation is
 This entry is removed when the PPP connection is broken.  This option
 is privileged if the \fInodefaultroute6\fR option has been specified.
 .TP
+.B replacedefaultroute
+This option is a flag to the defaultroute option. If defaultroute is
+set and this flag is also set, pppd replaces an existing default route
+with the new default route.
+
+
+.TP
 .B disconnect \fIscript
 Execute the command specified by \fIscript\fR, by passing it to a
 shell, after
@@ -746,7 +753,12 @@ disable both forms of hardware flow cont
 .TP
 .B nodefaultroute
 Disable the \fIdefaultroute\fR option.  The system administrator who
-wishes to prevent users from creating default routes with pppd
+wishes to prevent users from adding a default route with pppd
+can do so by placing this option in the /etc/ppp/options file.
+.TP
+.B noreplacedefaultroute
+Disable the \fIreplacedefaultroute\fR option. The system administrator who
+wishes to prevent users from replacing a default route with pppd
 can do so by placing this option in the /etc/ppp/options file.
 .TP
 .B nodefaultroute6
--- pppd/pppd.h.orig
+++ pppd/pppd.h
@@ -681,7 +681,11 @@ int  sif6addr __P((int, eui64_t, eui64_t
 int  cif6addr __P((int, eui64_t, eui64_t));
                                /* Remove an IPv6 address from i/f */
 #endif
+#ifndef __linux__
 int  sifdefaultroute __P((int, u_int32_t, u_int32_t));
+#else
+int  sifdefaultroute __P((int, u_int32_t, u_int32_t, bool replace_default_rt));
+#endif
                                /* Create default route through i/f */
 int  cifdefaultroute __P((int, u_int32_t, u_int32_t));
                                /* Delete default route through i/f */
--- pppd/sys-linux.c.orig
+++ pppd/sys-linux.c
@@ -209,6 +209,8 @@ static int  if_is_up;       /* Interface has be
 static int     if6_is_up;      /* Interface has been marked up for IPv6, to 
help differentiate */
 static int     have_default_route;     /* Gateway for default route added */
 static int     have_default_route6;    /* Gateway for default IPv6 route added 
*/
+static struct rtentry old_def_rt;      /* Old default route */
+static int     default_rt_repl_rest;   /* replace and restore old default rt */
 static u_int32_t proxy_arp_addr;       /* Addr for proxy arp entry added */
 static char proxy_arp_dev[16];         /* Device for proxy arp entry */
 static u_int32_t our_old_addr;         /* for detecting address changes */
@@ -1570,6 +1572,9 @@ static int read_route_table(struct rtent
        p = NULL;
     }
 
+    SET_SA_FAMILY (rt->rt_dst,     AF_INET);
+    SET_SA_FAMILY (rt->rt_gateway, AF_INET);
+
     SIN_ADDR(rt->rt_dst) = strtoul(cols[route_dest_col], NULL, 16);
     SIN_ADDR(rt->rt_gateway) = strtoul(cols[route_gw_col], NULL, 16);
     SIN_ADDR(rt->rt_genmask) = strtoul(cols[route_mask_col], NULL, 16);
@@ -1642,20 +1647,52 @@ int have_route_to(u_int32_t addr)
 /********************************************************************
  *
  * sifdefaultroute - assign a default route through the address given.
- */
-
-int sifdefaultroute (int unit, u_int32_t ouraddr, u_int32_t gateway)
-{
-    struct rtentry rt;
-
-    if (defaultroute_exists(&rt, dfl_route_metric) && strcmp(rt.rt_dev, 
ifname) != 0) {
-       if (rt.rt_flags & RTF_GATEWAY)
-           error("not replacing existing default route via %I with metric %d",
-                 SIN_ADDR(rt.rt_gateway), dfl_route_metric);
-       else
-           error("not replacing existing default route through %s with metric 
%d",
-                 rt.rt_dev, dfl_route_metric);
-       return 0;
+ *
+ * If the global default_rt_repl_rest flag is set, then this function
+ * already replaced the original system defaultroute with some other
+ * route and it should just replace the current defaultroute with
+ * another one, without saving the current route. Use: demand mode,
+ * when pppd sets first a defaultroute it it's temporary ppp0 addresses
+ * and then changes the temporary addresses to the addresses for the real
+ * ppp connection when it has come up.
+ */
+
+int sifdefaultroute (int unit, u_int32_t ouraddr, u_int32_t gateway, bool 
replace)
+{
+    struct rtentry rt, tmp_rt;
+    struct rtentry *del_rt = NULL;
+
+    if (default_rt_repl_rest) {
+       /* We have already reclaced the original defaultroute, if we
+         * are called again, we will delete the current default route
+         * and set the new default route in this function.
+        * - this is normally only the case the doing demand: */
+      if (defaultroute_exists( &tmp_rt, dfl_route_metric ))
+           del_rt = &tmp_rt;
+    } else if ( defaultroute_exists( &old_def_rt, dfl_route_metric ) &&
+               strcmp(  old_def_rt.rt_dev, ifname ) != 0) {
+       /* We did not yet replace an existing default route, let's
+        * check if we should save and replace a default route:
+         */
+       u_int32_t old_gateway = SIN_ADDR(old_def_rt.rt_gateway);
+
+       if (old_gateway != gateway) {
+           if (!replace) {
+               error("not replacing default route to %s [%I] with metric %d",
+                     old_def_rt.rt_dev, old_gateway, dfl_route_metric);
+               return 0;
+           } else {
+               // we need to copy rt_dev because we need it permanent too:
+               char * tmp_dev = malloc(strlen(old_def_rt.rt_dev)+1);
+               strcpy(tmp_dev, old_def_rt.rt_dev);
+               old_def_rt.rt_dev = tmp_dev;
+
+               notice("replacing old default route to %s [%I] with metric $d",
+                       old_def_rt.rt_dev, old_gateway, dfl_route_metric);
+               default_rt_repl_rest = 1;
+               del_rt = &old_def_rt;
+           }
+       }
     }
 
     memset (&rt, 0, sizeof (rt));
@@ -1675,6 +1712,12 @@ int sifdefaultroute (int unit, u_int32_t
            error("default route ioctl(SIOCADDRT): %m");
        return 0;
     }
+    if (default_rt_repl_rest && del_rt)
+        if (ioctl(sock_fd, SIOCDELRT, del_rt) < 0) {
+           if ( ! ok_error ( errno ))
+               error("del old default route ioctl(SIOCDELRT): %m(%d)", errno);
+           return 0;
+        }
 
     have_default_route = 1;
     return 1;
@@ -1713,6 +1756,16 @@ int cifdefaultroute (int unit, u_int32_t
            return 0;
        }
     }
+    if (default_rt_repl_rest) {
+       notice("restoring old default route to %s [%I]",
+                       old_def_rt.rt_dev, SIN_ADDR(old_def_rt.rt_gateway));
+        if (ioctl(sock_fd, SIOCADDRT, &old_def_rt) < 0) {
+           if ( ! ok_error ( errno ))
+               error("restore default route ioctl(SIOCADDRT): %m(%d)", errno);
+           return 0;
+        }
+        default_rt_repl_rest = 0;
+    }
 
     return 1;
 }
++++++ ppp-filter.patch ++++++
--- pppd/demand.c.orig
+++ pppd/demand.c
@@ -45,6 +45,7 @@
 #include <sys/socket.h>
 #ifdef PPP_FILTER
 #include <pcap-bpf.h>
+#include <linux/if_ether.h>
 #endif
 
 #include "pppd.h"
@@ -340,6 +341,7 @@ active_packet(p, len)
        return 0;
     proto = PPP_PROTOCOL(p);
 #ifdef PPP_FILTER
+    *p = 1; /* set outbound for the filter rule */
     p[0] = 1;          /* outbound packet indicator */
     if ((pass_filter.bf_len != 0
         && bpf_filter(pass_filter.bf_insns, p, len, len) == 0)
@@ -349,6 +351,7 @@ active_packet(p, len)
        return 0;
     }
     p[0] = 0xff;
+    *p = 0xff; /* restore original ppp header */
 #endif
     for (i = 0; (protp = protocols[i]) != NULL; ++i) {
        if (protp->protocol < 0xC000 && (protp->protocol & ~0x8000) == proto) {
--- pppd/options.c.orig
+++ pppd/options.c
@@ -1505,6 +1505,10 @@ setpassfilter(argv)
     int ret = 1;
 
     pc = pcap_open_dead(DLT_PPP_PPPD, 65535);
+    if (!pc) {
+        option_error("error in pass-filter expression: pcap_open_dead 
failed\n");
+        return 0;
+    }
     if (pcap_compile(pc, &pass_filter, *argv, 1, netmask) == -1) {
        option_error("error in pass-filter expression: %s\n",
                     pcap_geterr(pc));
@@ -1526,6 +1530,11 @@ setactivefilter(argv)
     int ret = 1;
 
     pc = pcap_open_dead(DLT_PPP_PPPD, 65535);
+    if (!pc) {
+        option_error("error in active-filter expression: pcap_open_dead 
failed\n");
+        return 0;
+    }
+
     if (pcap_compile(pc, &active_filter, *argv, 1, netmask) == -1) {
        option_error("error in active-filter expression: %s\n",
                     pcap_geterr(pc));
++++++ ppp-fix-bashisms.patch ++++++
diff -Ndur ppp-2.4.7/scripts/redialer ppp-2.4.7-fix-bashisms/scripts/redialer
--- ppp-2.4.7/scripts/redialer  2014-08-09 15:31:39.000000000 +0300
+++ ppp-2.4.7-fix-bashisms/scripts/redialer     2014-11-19 05:09:46.168864978 
+0200
@@ -31,7 +31,7 @@
 # Function to initialize the modem and ensure that it is in command
 # state. This may not be needed, but it doesn't hurt.
 #
-function initialize
+initialize()
 {
     chat -v TIMEOUT 3 '' AT 'OK-+++\c-OK'
     return
@@ -41,7 +41,7 @@
 #
 # Script to dial a telephone
 #
-function callnumber
+callnumber()
 {
 chat -v                                                        \
        ABORT           '\nBUSY\r'                      \
@@ -66,7 +66,7 @@
 #
 # Script to dial any telephone number
 #
-function callall
+callall()
 {
 #   echo "dialing attempt number: $1" >/dev/console
     callnumber $PHONE1
++++++ ppp-fork-fix.patch ++++++
--- pppd/main.c.orig
+++ pppd/main.c
@@ -1551,14 +1551,6 @@ safe_fork(int infd, int outfd, int errfd
        int fd, pipefd[2];
        char buf[1];
 
-       /* make sure fds 0, 1, 2 are occupied (probably not necessary) */
-       while ((fd = dup(fd_devnull)) >= 0) {
-               if (fd > 2) {
-                       close(fd);
-                       break;
-               }
-       }
-
        if (pipe(pipefd) == -1)
                pipefd[0] = pipefd[1] = -1;
        pid = fork();
@@ -1582,25 +1574,31 @@ safe_fork(int infd, int outfd, int errfd
                tdb_close(pppdb);
 #endif
 
-       /* make sure infd, outfd and errfd won't get tromped on below */
-       if (infd == 1 || infd == 2)
-               infd = dup(infd);
-       if (outfd == 0 || outfd == 2)
-               outfd = dup(outfd);
-       if (errfd == 0 || errfd == 1)
-               errfd = dup(errfd);
-
+        /* make sure fds 0, 1, 2 are occupied, so the duplicated  fds always > 
2 */
+        while ((fd = dup(fd_devnull)) >= 0) {
+                if (fd > 2) {
+                        close(fd);
+                        break;
+                }
+        }
+
+        /* always copy fd's to avoid to use a already closed fd later */
+        {
+                int     fdi = infd, fdo = outfd;
+ 
+                infd = dup(infd);
+                outfd = dup(outfd);
+                if (errfd >= 0) {
+                        fd = errfd;
+                        errfd = dup(errfd);
+                        close(fd);
+                }
+                close(fdi);
+                close(fdo);
+        }
        closelog();
 
-       /* dup the in, out, err fds to 0, 1, 2 */
-       if (infd != 0)
-               dup2(infd, 0);
-       if (outfd != 1)
-               dup2(outfd, 1);
-       if (errfd != 2)
-               dup2(errfd, 2);
-
-       if (log_to_fd > 2)
+       if (log_to_fd > 0)
                close(log_to_fd);
        if (the_channel->close)
                (*the_channel->close)();
@@ -1608,12 +1606,18 @@ safe_fork(int infd, int outfd, int errfd
                close(devfd);   /* some plugins don't have a close function */
        close(fd_ppp);
        close(fd_devnull);
-       if (infd != 0)
-               close(infd);
-       if (outfd != 1)
-               close(outfd);
-       if (errfd != 2)
-               close(errfd);
+
+       close(0);
+        dup2(infd, 0);
+        close(infd);
+        close(1);
+        dup2(outfd, 1);
+        close(outfd);
+        if (errfd >= 0) {
+                close(2);
+                dup2(errfd, 2);
+               close(errfd);
+       }
 
        notify(fork_notifier, 0);
        close(pipefd[0]);
++++++ ppp-higher-speeds.patch ++++++
--- pppd/sys-linux.c.orig
+++ pppd/sys-linux.c
@@ -904,6 +904,24 @@ struct speed {
 #ifdef B4000000
     { 4000000, B4000000 },
 #endif
+#ifdef B1500000
+    { 1500000, B1500000 },
+#endif
+#ifdef B2000000
+    { 2000000, B2000000 },
+#endif
+#ifdef B2500000
+    { 2500000, B2500000 },
+#endif
+#ifdef B3000000
+    { 3000000, B3000000 },
+#endif
+#ifdef B3500000
+    { 3500000, B3500000 },
+#endif
+#ifdef B4000000
+    { 4000000, B4000000 },
+#endif
     { 0, 0 }
 };
 
++++++ ppp-lib64.patch ++++++
--- PLUGINS.orig
+++ PLUGINS
@@ -14,7 +14,7 @@ plugin support only under Linux and Sola
 Plugins are loaded into pppd using the `plugin' option, which takes
 one argument, the name of a shared object file.  The plugin option is
 a privileged option.  If the name given does not contain a slash, pppd
-will look in the /usr/lib/pppd/<version> directory for the file, where
+will look in the /usr/lib64/pppd/<version> directory for the file, where
 <version> is the version number of pppd, for example, 2.4.2.  I
 suggest that you either give the full path name of the shared object
 file or just the base name; if you don't, it may be possible for
--- README.orig
+++ README
@@ -261,8 +261,8 @@ What was new in ppp-2.4.1.
   per-tty options file are parsed correctly, and don't override values
   from the command line in most cases.
 
-* The plugin option now looks in /usr/lib/pppd/<pppd-version> (for
-  example, /usr/lib/pppd/2.4.1b1) for shared objects for plugins if
+* The plugin option now looks in /usr/lib64/pppd/<pppd-version> (for
+  example, /usr/lib64/pppd/2.4.1b1) for shared objects for plugins if
   there is no slash in the plugin name.
 
 * When loading a plugin, pppd will now check the version of pppd for
--- pppd/pathnames.h.orig
+++ pppd/pathnames.h
@@ -57,9 +57,9 @@
 
 #ifdef PLUGIN
 #ifdef __STDC__
-#define _PATH_PLUGIN   DESTDIR "/lib/pppd/" VERSION
+#define _PATH_PLUGIN   DESTDIR "/lib64/pppd/" VERSION
 #else /* __STDC__ */
-#define _PATH_PLUGIN   "/usr/lib/pppd"
+#define _PATH_PLUGIN   "/usr/lib64/pppd"
 #endif /* __STDC__ */
 
 #endif /* PLUGIN */
--- pppd/plugins/Makefile.linux.orig
+++ pppd/plugins/Makefile.linux
@@ -7,7 +7,7 @@ INSTALL = install
 DESTDIR = $(INSTROOT)@DESTDIR@
 BINDIR = $(DESTDIR)/sbin
 MANDIR = $(DESTDIR)/share/man/man8
-LIBDIR = $(DESTDIR)/lib/pppd/$(VERSION)
+LIBDIR = $(DESTDIR)/lib64/pppd/$(VERSION)
 
 SUBDIRS := rp-pppoe pppoatm pppol2tp
 # Uncomment the next line to include the radius authentication plugin
--- pppd/plugins/pppoatm/Makefile.linux.orig
+++ pppd/plugins/pppoatm/Makefile.linux
@@ -7,7 +7,7 @@ INSTALL = install
 #***********************************************************************
 
 DESTDIR = $(INSTROOT)@DESTDIR@
-LIBDIR = $(DESTDIR)/lib/pppd/$(VERSION)
+LIBDIR = $(DESTDIR)/lib64/pppd/$(VERSION)
 
 VERSION = $(shell awk -F '"' '/VERSION/ { print $$2; }' ../../patchlevel.h)
 
--- pppd/plugins/pppol2tp/Makefile.linux.orig
+++ pppd/plugins/pppol2tp/Makefile.linux
@@ -7,7 +7,7 @@ INSTALL = install
 #***********************************************************************
 
 DESTDIR = @DESTDIR@
-LIBDIR = $(DESTDIR)/lib/pppd/$(VERSION)
+LIBDIR = $(DESTDIR)/lib64/pppd/$(VERSION)
 
 VERSION = $(shell awk -F '"' '/VERSION/ { print $$2; }' ../../patchlevel.h)
 
--- pppd/plugins/radius/Makefile.linux.orig
+++ pppd/plugins/radius/Makefile.linux
@@ -5,7 +5,7 @@
 
 DESTDIR = $(INSTROOT)@DESTDIR@
 MANDIR = $(DESTDIR)/share/man/man8
-LIBDIR = $(DESTDIR)/lib/pppd/$(VERSION)
+LIBDIR = $(DESTDIR)/lib64/pppd/$(VERSION)
 
 VERSION = $(shell awk -F '"' '/VERSION/ { print $$2; }' ../../patchlevel.h)
 
--- pppd/plugins/rp-pppoe/Makefile.linux.orig
+++ pppd/plugins/rp-pppoe/Makefile.linux
@@ -16,7 +16,7 @@
 
 DESTDIR = $(INSTROOT)@DESTDIR@
 BINDIR = $(DESTDIR)/sbin
-LIBDIR = $(DESTDIR)/lib/pppd/$(PPPDVERSION)
+LIBDIR = $(DESTDIR)/lib64/pppd/$(PPPDVERSION)
 
 PPPDVERSION = $(shell awk -F '"' '/VERSION/ { print $$2; }' ../../patchlevel.h)
 
--- pppd/pppd.8.orig
+++ pppd/pppd.8
@@ -946,7 +946,7 @@ persistent connections.
 .B plugin \fIfilename
 Load the shared library object file \fIfilename\fR as a plugin.  This
 is a privileged option.  If \fIfilename\fR does not contain a slash
-(/), pppd will look in the \fB/usr/lib/pppd/\fIversion\fR directory
+(/), pppd will look in the \fB/usr/lib64/pppd/\fIversion\fR directory
 for the plugin, where
 \fIversion\fR is the version number of pppd (for example, 2.4.2).
 .TP
++++++ ppp-make.patch ++++++
--- chat/Makefile.linux.orig
+++ chat/Makefile.linux
@@ -11,7 +11,7 @@ CDEF4=        -DFNDELAY=O_NDELAY              # Old name va
 CDEFS= $(CDEF1) $(CDEF2) $(CDEF3) $(CDEF4)
 
 COPTS= -O2 -g -pipe
-CFLAGS=        $(COPTS) $(CDEFS)
+CFLAGS=        $(MY_CFLAGS) $(COPTS) $(CDEFS)
 
 INSTALL= install
 
@@ -25,8 +25,8 @@ chat.o:       chat.c
 
 install: chat
        mkdir -p $(BINDIR) $(MANDIR)
-       $(INSTALL) -s -c chat $(BINDIR)
-       $(INSTALL) -c -m 644 chat.8 $(MANDIR)
+       $(INSTALL) chat $(BINDIR)
+       $(INSTALL) -m 644 chat.8 $(MANDIR)
 
 clean:
        rm -f chat.o chat *~
--- pppd/Makefile.linux.orig
+++ pppd/Makefile.linux
@@ -32,8 +32,9 @@ endif
 
 # CC = gcc
 #
-COPTS = -O2 -pipe -Wall -g
-LIBS =
+CC = gcc
+COPTS = $(MY_CFLAGS) -O2 -pipe -Wall -fno-strict-aliasing
+LIBS = -lutil
 
 # Uncomment the next line to include support for Microsoft's
 # MS-CHAP authentication protocol.  Also, edit plugins/radius/Makefile.linux.
@@ -219,10 +220,8 @@ all: $(TARGETS)
 install: pppd
        mkdir -p $(BINDIR) $(MANDIR)
        $(EXTRAINSTALL)
-       $(INSTALL) -s -c -m 555 pppd $(BINDIR)/pppd
-       if chgrp pppusers $(BINDIR)/pppd 2>/dev/null; then \
-         chmod o-rx,u+s $(BINDIR)/pppd; fi
-       $(INSTALL) -c -m 444 pppd.8 $(MANDIR)
+       $(INSTALL) -m 755 pppd $(BINDIR)/pppd
+       $(INSTALL) -m 644 pppd.8 $(MANDIR)
 
 pppd: $(PPPDOBJS)
        $(CC) $(CFLAGS) $(LDFLAGS) $(LDFLAGS_PLUGIN) -o pppd $(PPPDOBJS) $(LIBS)
--- pppd/plugins/Makefile.linux.orig
+++ pppd/plugins/Makefile.linux
@@ -1,5 +1,5 @@
-#CC    = gcc
-COPTS  = -O2 -g
+CC     = gcc
+COPTS  = $(MY_CFLAGS) -O2 -g -Wall
 CFLAGS = $(COPTS) -I.. -I../../include -fPIC
 LDFLAGS_SHARED = -shared
 INSTALL        = install
--- pppd/plugins/pppoatm/Makefile.linux.orig
+++ pppd/plugins/pppoatm/Makefile.linux
@@ -1,5 +1,5 @@
 #CC    = gcc
-COPTS  = -O2 -g
+COPTS  = $(MY_CFLAGS) -O2 -g
 CFLAGS = $(COPTS) -I../.. -I../../../include -fPIC
 LDFLAGS_SHARED = -shared
 INSTALL        = install
--- pppd/plugins/pppol2tp/Makefile.linux.orig
+++ pppd/plugins/pppol2tp/Makefile.linux
@@ -1,5 +1,5 @@
-#CC    = gcc
-COPTS  = -O2 -g
+CC     = gcc
+COPTS  = $(MY_CFLAGS) -O2 -pipe -Wall
 CFLAGS = $(COPTS) -I. -I../.. -I../../../include -fPIC
 LDFLAGS_SHARED = -shared
 INSTALL        = install
@@ -20,7 +20,7 @@ all: $(PLUGINS)
 
 install: all
        $(INSTALL) -d -m 755 $(LIBDIR)
-       $(INSTALL) -c -m 755 $(PLUGINS) $(LIBDIR)
+       $(INSTALL) -m 755 $(PLUGINS) $(LIBDIR)
 
 clean:
        rm -f *.o *.so
--- pppd/plugins/radius/Makefile.linux.orig
+++ pppd/plugins/radius/Makefile.linux
@@ -12,7 +12,8 @@ VERSION = $(shell awk -F '"' '/VERSION/
 INSTALL        = install
 
 PLUGIN=radius.so radattr.so radrealms.so
-CFLAGS=-I. -I../.. -I../../../include -O2 -fPIC -DRC_LOG_FACILITY=LOG_DAEMON
+COPTS  = $(MY_CFLAGS) -O2 -fPIC
+CFLAGS= $(COPTS) -I. -I../.. -I../../../include -DRC_LOG_FACILITY=LOG_DAEMON 
-fno-strict-aliasing
 
 # Uncomment the next line to include support for Microsoft's
 # MS-CHAP authentication protocol.
--- pppd/plugins/rp-pppoe/Makefile.linux.orig
+++ pppd/plugins/rp-pppoe/Makefile.linux
@@ -25,7 +25,7 @@ INSTALL       = install
 # Version is set ONLY IN THE MAKEFILE!  Don't delete this!
 RP_VERSION=3.8p
 
-COPTS=-O2 -g
+COPTS= $(MY_CFLAGS) -O2 -pipe -Wall 
 CFLAGS=$(COPTS) -I../../../include '-DRP_VERSION="$(RP_VERSION)"'
 all: rp-pppoe.so pppoe-discovery
 
@@ -43,7 +43,7 @@ rp-pppoe.so: plugin.o discovery.o if.o c
 
 install: all
        $(INSTALL) -d -m 755 $(LIBDIR)
-       $(INSTALL) -s -c -m 4550 rp-pppoe.so $(LIBDIR)
+       $(INSTALL) rp-pppoe.so $(LIBDIR)
        $(INSTALL) -d -m 755 $(BINDIR)
        $(INSTALL) -s -c -m 555 pppoe-discovery $(BINDIR)
 
--- pppdump/Makefile.linux.orig
+++ pppdump/Makefile.linux
@@ -2,7 +2,7 @@ DESTDIR = $(INSTROOT)@DESTDIR@
 BINDIR = $(DESTDIR)/sbin
 MANDIR = $(DESTDIR)/share/man/man8
 
-CFLAGS= -O -I../include/net
+CFLAGS = $(MY_CFLAGS) -pipe -Wall -O -I../include/net
 OBJS = pppdump.o bsd-comp.o deflate.o zlib.o
 
 INSTALL= install
@@ -17,5 +17,5 @@ clean:
 
 install:
        mkdir -p $(BINDIR) $(MANDIR)
-       $(INSTALL) -s -c pppdump $(BINDIR)
-       $(INSTALL) -c -m 444 pppdump.8 $(MANDIR)
+       $(INSTALL) pppdump $(BINDIR)
+       $(INSTALL) -m 444 pppdump.8 $(MANDIR)
--- pppstats/Makefile.linux.orig
+++ pppstats/Makefile.linux
@@ -9,8 +9,8 @@ MANDIR = $(DESTDIR)/share/man/man8
 PPPSTATSRCS = pppstats.c
 PPPSTATOBJS = pppstats.o
 
-#CC = gcc
-COPTS = -O
+CC = gcc
+COPTS = $(MY_CFLAGS) -O2 -pipe -Wall
 COMPILE_FLAGS = -I../include
 LIBS =
 
@@ -22,8 +22,8 @@ all: pppstats
 
 install: pppstats
        -mkdir -p $(MANDIR)
-       $(INSTALL) -s -c pppstats $(BINDIR)
-       $(INSTALL) -c -m 444 pppstats.8 $(MANDIR)
+       $(INSTALL) pppstats $(BINDIR)
+       $(INSTALL) -m 444 pppstats.8 $(MANDIR)
 
 pppstats: $(PPPSTATSRCS)
        $(CC) $(CFLAGS) $(LDFLAGS) -o pppstats pppstats.c $(LIBS)
++++++ ppp-misc.patch ++++++
--- pppd/auth.c.orig
+++ pppd/auth.c
@@ -2105,9 +2105,10 @@ check_access(f, filename)
 
     if (fstat(fileno(f), &sbuf) < 0) {
        warn("cannot stat secret file %s: %m", filename);
-    } else if ((sbuf.st_mode & (S_IRWXG | S_IRWXO)) != 0) {
-       warn("Warning - secret file %s has world and/or group access",
-            filename);
+    } else if ((sbuf.st_mode & S_IRWXO) != 0) {
+       warn("Warning - secret file %s has world access", filename);
+    } else if ((sbuf.st_mode & S_IRWXG) != 0 && sbuf.st_gid != 15) {
+       warn("Warning - secret file %s has group access", filename);
     }
 }
 
--- pppd/lcp.c.orig
+++ pppd/lcp.c
@@ -2302,7 +2302,7 @@ lcp_received_echo_reply (f, id, inp, len
     if (lcp_gotoptions[f->unit].neg_magicnumber
        && magic == lcp_gotoptions[f->unit].magicnumber) {
        warn("appear to have received our own echo-reply!");
-       return;
+       /* M$-Software did get this wrong so we also accept those packets. */
     }
 
     /* Reset the number of outstanding echo frames */
--- pppd/pppd.h.orig
+++ pppd/pppd.h
@@ -873,15 +873,7 @@ extern void (*snoop_send_hook) __P((unsi
 #define DEBUGCHAP      1
 #endif
 
-#ifndef LOG_PPP                        /* we use LOG_LOCAL2 for syslog by 
default */
-#if defined(DEBUGMAIN) || defined(DEBUGFSM) || defined(DEBUGSYS) \
-  || defined(DEBUGLCP) || defined(DEBUGIPCP) || defined(DEBUGUPAP) \
-  || defined(DEBUGCHAP) || defined(DEBUG) || defined(DEBUGIPV6CP)
 #define LOG_PPP LOG_LOCAL2
-#else
-#define LOG_PPP LOG_DAEMON
-#endif
-#endif /* LOG_PPP */
 
 #ifdef DEBUGMAIN
 #define MAINDEBUG(x)   if (debug) dbglog x
++++++ ppp-pie.patch ++++++
--- pppd/Makefile.linux.orig
+++ pppd/Makefile.linux
@@ -224,7 +224,7 @@ install: pppd
        $(INSTALL) -m 644 pppd.8 $(MANDIR)
 
 pppd: $(PPPDOBJS)
-       $(CC) $(CFLAGS) $(LDFLAGS) $(LDFLAGS_PLUGIN) -o pppd $(PPPDOBJS) $(LIBS)
+       $(CC) $(CFLAGS) -pie -fPIC $(LDFLAGS) $(LDFLAGS_PLUGIN) -o pppd 
$(PPPDOBJS) $(LIBS)
 
 srp-entry:     srp-entry.c
        $(CC) $(CFLAGS) $(LDFLAGS) -o $@ srp-entry.c $(LIBS)
--- chat/Makefile.linux.orig
+++ chat/Makefile.linux
@@ -18,7 +18,7 @@ INSTALL= install
 all:   chat
 
 chat:  chat.o
-       $(CC) $(LDFLAGS) -o chat chat.o
+       $(CC) -pie $(LDFLAGS) -o chat chat.o
 
 chat.o:        chat.c
        $(CC) -c $(CFLAGS) -o chat.o chat.c
--- pppstats/Makefile.linux.orig
+++ pppstats/Makefile.linux
@@ -26,7 +26,7 @@ install: pppstats
        $(INSTALL) -m 444 pppstats.8 $(MANDIR)
 
 pppstats: $(PPPSTATSRCS)
-       $(CC) $(CFLAGS) $(LDFLAGS) -o pppstats pppstats.c $(LIBS)
+       $(CC) $(CFLAGS) -pie -fPIE $(LDFLAGS) -o pppstats pppstats.c $(LIBS)
 
 clean:
        rm -f pppstats *~ #* core
++++++ ppp-smpppd.patch ++++++
--- pppd/main.c.orig
+++ pppd/main.c
@@ -1920,8 +1920,8 @@ forget_child(pid, status)
     if (WIFSIGNALED(status)) {
         warn("Child process %s (pid %d) terminated with signal %d",
             (chp? chp->prog: "??"), pid, WTERMSIG(status));
-    } else if (debug)
-        dbglog("Script %s finished (pid %d), status = 0x%x",
+    } else
+        info("Script %s finished (pid %d), status = 0x%x",
               (chp? chp->prog: "??"), pid,
               WIFEXITED(status) ? WEXITSTATUS(status) : status);
     if (chp && chp->done)
++++++ ppp-var_run_resolv_conf.patch ++++++
--- 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
   <nickwal...@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 /var/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
@@ -2148,10 +2148,13 @@ create_resolv(peerdns1, peerdns2)
     u_int32_t peerdns1, peerdns2;
 {
     FILE *f;
+    char rcfilename[MAXIFNAMELEN];
 
-    f = fopen(_PATH_RESOLV, "w");
+    slprintf(rcfilename, sizeof(rcfilename), "%s.%s",
+                 _PATH_RESOLV, ifname);
+    f = fopen(rcfilename, "w");
     if (f == NULL) {
-       error("Failed to create %s: %m", _PATH_RESOLV);
+       error("Failed to create %s: %m", rcfilename);
        return;
     }
 
@@ -2162,7 +2165,7 @@ create_resolv(peerdns1, peerdns2)
        fprintf(f, "nameserver %s\n", ip_ntoa(peerdns2));
 
     if (ferror(f))
-       error("Write failed to %s: %m", _PATH_RESOLV);
+       error("Write failed to %s: %m", rcfilename);
 
     fclose(f);
 }
--- pppd/pathnames.h.orig
+++ pppd/pathnames.h
@@ -30,7 +30,7 @@
 #define _PATH_TTYOPT    _ROOT_PATH "/etc/ppp/options."
 #define _PATH_CONNERRS  _ROOT_PATH "/etc/ppp/connect-errors"
 #define _PATH_PEERFILES         _ROOT_PATH "/etc/ppp/peers/"
-#define _PATH_RESOLV    _ROOT_PATH "/etc/ppp/resolv.conf"
+#define _PATH_RESOLV    _ROOT_PATH "/var/run/ppp_resolv.conf"
 
 #define _PATH_USEROPT   ".ppprc"
 #define        _PATH_PSEUDONYM  ".ppp_pseudonym"
--- pppd/pppd.8.orig
+++ pppd/pppd.8
@@ -1143,8 +1143,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.
+/var/run/ppp_resolv.conf.$INTERFACE file containing one or two nameserver
+lines with the address(es) supplied by the peer.
 .TP
 .B user \fIname
 Sets the name used for authenticating the local system to the peer to
++++++ ppp.keyring ++++++
--- /var/tmp/diff_new_pack.32mDe6/_old  2020-08-06 17:31:08.629080665 +0200
+++ /var/tmp/diff_new_pack.32mDe6/_new  2020-08-06 17:31:08.633080666 +0200
@@ -1,28 +1,157 @@
 -----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: SKS 1.1.6
+Comment: Hostname: sks.pod02.fleetstreetops.com
 
-mQINBE6U85gBEACYU+BDUOcO7uG3S2JilDFgHjr0i9bpoHjvEiFp63i6SDXPtWl4
-QtOVXM+f3uahAHyzfrJ0xe9Jx0hDDVNZqsk3jnEj5siAMAm80atoST5h4bk5TE9w
-5fIOqUuKWh4i7bJOnUzmGoIF9N0xVCfcSaU4+kzRtnBnTPon+q+brDc79Tyk7PVj
-P/2YTa5Vjzx1zqrHTOFBwXRk1RyVSATDAvqkA8vVw1odhmCP7EhKKT7nLBh8swz4
-DVk8ylVCkB+6UFlAXlq8c0cbFMB8Zjr9gYJaQ4nxJVQcSFizS67EalathxeHOjjg
-QUK9kCWExOfkcf3zAfKxFUM6oq/iH+A1O0ieVYKxbGHYDZLmMAgkJweDhbyWzSoZ
-WeWneuIIxaPvxH3wHDf5NLlsHaiTxoR08zq2PN5IHEmYgR6nvYxAd3ZXLEojWXZB
-AbOIZxPUvbB+DHF+7WYMKPdBLWvY6W8w0t4EYOt5N0W+/+AL2ZTCYJjZCHvhZxhC
-ki8grkIcShPf6BQLe3UJc/maJGu0Co1mhiCYx2a3AAkq8E1NZ0nzEP9+eoGohjvF
-ht5P/omDpU/VrZOBrgCFBDHUymvBsKw9ofaLUIplH4gJRHB47pLLFob3LDzbXyb4
-GB3LrOuioqLaVgrjz6lymzxXVTzHlQkAYayN4jvve6jauFQF/QAZg1gotwARAQAB
-tC9QYXVsIE1hY2tlcnJhcyAoU2lnbmluZyBrZXkpIDxwYXVsdXNAc2FtYmEub3Jn
-PokCOAQTAQIAIgUCTpTzmAIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQ
-nkKV1gX2bOmPOA/9Eom5EbPMPYjj7ejB3pHm3Sbz/F93NYfvKcCa/wGjrvwXegLG
-7HONztAyD2ftr81LfiSTE+9iPcbEmjcvJrWaO+Id3LuTVTvNe7Nyzu/SpM2DUVDI
-suqKDpVrXO5FUjAU3JRxTyPscaC7BJJFoksbwXEuNyCtZ8jCxb+Z7nxnVJrxh4p6
-Z5DucisiQbgVuMcM2LBtZz8CTeAOIwUgmNVuKnRJzvyPEiC7xMN8ilka/A5XHDbc
-J8MEuWSb2cK3ETA4OU2h/xYS6hK2eHij2KOSlWbwBbtpAAy73+wku1v2KEulsC1Y
-aRYCJE1lyZ9Wkvg0ErWxYml7HDluA7swWDxu+J4PyxfWood+8eEAs4kb8WCY1KTX
-EhooIoX7Xo6CCu4FxUH1Qa0jdtqE/we9L0NNXul+AfhPUTDykWAXYGlNgFnDzJ4l
-WsGlRK21Ku6a4RFrK9O1bvl3B3wAH57kWKcYVgDe1i/C/oHLDaWKQ+e/g2g07ooT
-9gzJIyFbT8DHfFYAP5a5oCLKnR2tAfmtqWxuSoGX02IcBY2bmjZ1qEeiWOvz+WQb
-MAx/1l0e42NODvUOHK2SInz+EPLyroQ/uaSSTnlR3yNgyhmr0Cllll5gqFIwVscs
-TTzDLoR3NYb5IPRbye9aL8BDO6o/+TFaWQ7YYGAdQUABIqiirEWU6wu62xk=
-=lGHU
+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
+=lvBd
 -----END PGP PUBLIC KEY BLOCK-----
+



Reply via email to