summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHeinrich Wendel <lanius@gentoo.org>2004-03-06 14:46:39 +0000
committerHeinrich Wendel <lanius@gentoo.org>2004-03-06 14:46:39 +0000
commitab789fbf39fe8865e87de9393aa071f47c31a306 (patch)
treebbe1f239676e302e634430d357b7b60464bf7fe7 /net-dialup/ppp/files
parentFixed small depend bug. (diff)
downloadhistorical-ab789fbf39fe8865e87de9393aa071f47c31a306.tar.gz
historical-ab789fbf39fe8865e87de9393aa071f47c31a306.tar.bz2
historical-ab789fbf39fe8865e87de9393aa071f47c31a306.zip
dd atm support (bug #41607) and mppc support (bug #42212)
Diffstat (limited to 'net-dialup/ppp/files')
-rw-r--r--net-dialup/ppp/files/2.4.2/killaddr-smarter.patch176
-rw-r--r--net-dialup/ppp/files/2.4.2/killaddr-smarter.patch.gzbin0 -> 2257 bytes
-rw-r--r--net-dialup/ppp/files/2.4.2/mpls.patch431
-rw-r--r--net-dialup/ppp/files/2.4.2/mpls.patch.gzbin0 -> 3151 bytes
-rw-r--r--net-dialup/ppp/files/2.4.2/pppoatm.diff.gzbin0 -> 3567 bytes
-rw-r--r--net-dialup/ppp/files/2.4.2/stdopt-mppe-mppc-0.82.patch.gzbin0 -> 10108 bytes
-rw-r--r--net-dialup/ppp/files/digest-ppp-2.4.2-r11
7 files changed, 1 insertions, 607 deletions
diff --git a/net-dialup/ppp/files/2.4.2/killaddr-smarter.patch b/net-dialup/ppp/files/2.4.2/killaddr-smarter.patch
deleted file mode 100644
index b49afdce37bc..000000000000
--- a/net-dialup/ppp/files/2.4.2/killaddr-smarter.patch
+++ /dev/null
@@ -1,176 +0,0 @@
-diff -urN ppp-2.4.1.pppoe4-orig/chat/Makefile.linux ppp-2.4.1.pppoe4/chat/Makefile.linux
---- ppp-2.4.1.pppoe4-orig/chat/Makefile.linux 1999-08-12 21:54:32.000000000 -0400
-+++ ppp-2.4.1.pppoe4/chat/Makefile.linux 2002-10-04 12:46:49.000000000 -0400
-@@ -6,7 +6,7 @@
- CDEF4= -DFNDELAY=O_NDELAY # Old name value
- CDEFS= $(CDEF1) $(CDEF2) $(CDEF3) $(CDEF4)
-
--COPTS= -O2 -g -pipe $(CDEFS)
-+COPTS= ${COPTS} $(CDEFS)
- CFLAGS= $(COPTS) $(CDEFS)
-
- INSTALL= install
-diff -urN ppp-2.4.1.pppoe4-orig/pppd/options.c ppp-2.4.1.pppoe4/pppd/options.c
---- ppp-2.4.1.pppoe4-orig/pppd/options.c 2001-03-30 19:33:55.000000000 -0500
-+++ ppp-2.4.1.pppoe4/pppd/options.c 2002-10-04 12:48:21.000000000 -0400
-@@ -67,6 +67,9 @@
- char user[MAXNAMELEN]; /* Username for PAP */
- char passwd[MAXSECRETLEN]; /* Password for PAP */
- bool persist = 0; /* Reopen link after it goes down */
-+bool killoldaddr = 0; /* If our IP is reassigned on
-+ reconnect, kill active TCP
-+ connections using the old IP. */
- char our_name[MAXNAMELEN]; /* Our name for authentication purposes */
- bool demand = 0; /* do dial-on-demand */
- char *ipparam = NULL; /* Extra parameter for ip up/down scripts */
-@@ -186,6 +189,11 @@
- { "demand", o_bool, &demand,
- "Dial on demand", OPT_INITONLY | 1, &persist },
-
-+ { "killoldaddr", o_bool, &killoldaddr,
-+ "Kill connections from an old source address", 1},
-+ { "nokilloldaddr", o_bool,&killoldaddr,
-+ "Don't kill connections from an old source address" },
-+
- { "--version", o_special_noarg, (void *)showversion,
- "Show version number" },
- { "--help", o_special_noarg, (void *)showhelp,
-diff -urN ppp-2.4.1.pppoe4-orig/pppd/pppd.h ppp-2.4.1.pppoe4/pppd/pppd.h
---- ppp-2.4.1.pppoe4-orig/pppd/pppd.h 2001-04-01 15:06:17.000000000 -0400
-+++ ppp-2.4.1.pppoe4/pppd/pppd.h 2002-10-04 12:46:49.000000000 -0400
-@@ -252,6 +252,9 @@
- extern char remote_name[MAXNAMELEN]; /* Peer's name for authentication */
- extern bool explicit_remote;/* remote_name specified with remotename opt */
- extern bool demand; /* Do dial-on-demand */
-+extern bool killoldaddr; /* If our IP is reassigned on
-+ reconnect, kill active TCP
-+ connections using the old IP. */
- extern char *ipparam; /* Extra parameter for ip up/down scripts */
- extern bool cryptpap; /* Others' PAP passwords are encrypted */
- extern int idle_time_limit;/* Shut down link if idle for this long */
-diff -urN ppp-2.4.1.pppoe4-orig/pppd/sys-linux.c ppp-2.4.1.pppoe4/pppd/sys-linux.c
---- ppp-2.4.1.pppoe4-orig/pppd/sys-linux.c 2001-07-26 16:19:33.000000000 -0400
-+++ ppp-2.4.1.pppoe4/pppd/sys-linux.c 2002-10-04 12:46:49.000000000 -0400
-@@ -114,6 +114,10 @@
-
- #endif /* INET6 */
-
-+#ifndef SIOCKILLADDR
-+#define SIOCKILLADDR 0x8939
-+#endif
-+
- /* We can get an EIO error on an ioctl if the modem has hung up */
- #define ok_error(num) ((num)==EIO)
-
-@@ -151,6 +155,7 @@
- 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 */
-+static u_int32_t our_current_addr;
- static int dynaddr_set; /* 1 if ip_dynaddr set */
- static int looped; /* 1 if using loop */
- static int link_mtu; /* mtu for the link (not bundle) */
-@@ -504,6 +509,27 @@
- return -1;
- }
-
-+static void do_killaddr(u_int32_t oldaddr)
-+{
-+ struct ifreq ifr;
-+
-+ memset(&ifr,0,sizeof ifr);
-+
-+ SET_SA_FAMILY (ifr.ifr_addr, AF_INET);
-+ SET_SA_FAMILY (ifr.ifr_dstaddr, AF_INET);
-+ SET_SA_FAMILY (ifr.ifr_netmask, AF_INET);
-+
-+ SIN_ADDR(ifr.ifr_addr) = oldaddr;
-+
-+ strlcpy(ifr.ifr_name, ifname, sizeof (ifr.ifr_name));
-+
-+ if(ioctl(sock_fd,SIOCKILLADDR,&ifr) < 0) {
-+ if (!ok_error (errno))
-+ error("ioctl(SIOCKILLADDR): %m(%d)", errno);
-+ return;
-+ }
-+}
-+
- /********************************************************************
- *
- * tty_disestablish_ppp - Restore the serial port to normal operation.
-@@ -2290,21 +2316,29 @@
- }
- }
-
-- /* set ip_dynaddr in demand mode if address changes */
-- if (demand && tune_kernel && !dynaddr_set
-- && our_old_addr && our_old_addr != our_adr) {
-+ if(persist && our_old_addr && our_old_addr != our_adr) {
-+
-+ if(killoldaddr)
-+ do_killaddr(our_old_addr);
-+
-+
-+ /* set ip_dynaddr in persist mode if address changes */
-+ if (tune_kernel && !dynaddr_set) {
- /* set ip_dynaddr if possible */
- char *path;
- int fd;
-
- path = path_to_procfs("/sys/net/ipv4/ip_dynaddr");
- if (path != 0 && (fd = open(path, O_WRONLY)) >= 0) {
-- if (write(fd, "1", 1) != 1)
-- error("Couldn't enable dynamic IP addressing: %m");
-- close(fd);
-+ if (write(fd, "1", 1) != 1)
-+ error("Couldn't enable dynamic IP addressing: %m");
-+ close(fd);
- }
- dynaddr_set = 1; /* only 1 attempt */
-+ }
- }
-+
-+ our_current_addr = our_adr;
- our_old_addr = 0;
-
- return 1;
-@@ -2360,7 +2394,8 @@
- }
-
- our_old_addr = our_adr;
--
-+ our_current_addr = 0;
-+
- return 1;
- }
-
-diff -urN ppp-2.4.1.pppoe4-orig/pppdump/Makefile.linux ppp-2.4.1.pppoe4/pppdump/Makefile.linux
---- ppp-2.4.1.pppoe4-orig/pppdump/Makefile.linux 1999-07-26 07:09:29.000000000 -0400
-+++ ppp-2.4.1.pppoe4/pppdump/Makefile.linux 2002-10-04 12:46:49.000000000 -0400
-@@ -1,4 +1,4 @@
--CFLAGS= -O -I../include/net
-+CFLAGS= $(COPTS) -I../include/net
- OBJS = pppdump.o bsd-comp.o deflate.o zlib.o
-
- INSTALL= install
-@@ -6,7 +6,7 @@
- all: pppdump
-
- pppdump: $(OBJS)
-- $(CC) -o pppdump $(OBJS)
-+ $(CC) $(LDFLAGS) -o pppdump $(OBJS)
-
- clean:
- rm -f pppdump $(OBJS) *~
-diff -urN ppp-2.4.1.pppoe4-orig/pppstats/Makefile.linux ppp-2.4.1.pppoe4/pppstats/Makefile.linux
---- ppp-2.4.1.pppoe4-orig/pppstats/Makefile.linux 1998-03-24 21:21:19.000000000 -0500
-+++ ppp-2.4.1.pppoe4/pppstats/Makefile.linux 2002-10-04 12:46:49.000000000 -0400
-@@ -22,7 +22,7 @@
- $(INSTALL) -c -m 444 pppstats.8 $(MANDIR)/man8/pppstats.8
-
- pppstats: $(PPPSTATSRCS)
-- $(CC) $(CFLAGS) -o pppstats pppstats.c $(LIBS)
-+ $(CC) $(CFLAGS) $(LDFLAGS) -o pppstats pppstats.c $(LIBS)
-
- clean:
- rm -f pppstats *~ #* core
diff --git a/net-dialup/ppp/files/2.4.2/killaddr-smarter.patch.gz b/net-dialup/ppp/files/2.4.2/killaddr-smarter.patch.gz
new file mode 100644
index 000000000000..a4cca63c6947
--- /dev/null
+++ b/net-dialup/ppp/files/2.4.2/killaddr-smarter.patch.gz
Binary files differ
diff --git a/net-dialup/ppp/files/2.4.2/mpls.patch b/net-dialup/ppp/files/2.4.2/mpls.patch
deleted file mode 100644
index b711ce328b72..000000000000
--- a/net-dialup/ppp/files/2.4.2/mpls.patch
+++ /dev/null
@@ -1,431 +0,0 @@
-diff -uarN ppp-2.4.2-orig/pppd/Makefile.linux ppp-2.4.2/pppd/Makefile.linux
---- ppp-2.4.2-orig/pppd/Makefile.linux 2003-01-31 06:11:17.000000000 -0500
-+++ ppp-2.4.2/pppd/Makefile.linux 2003-12-08 11:21:50.000000000 -0500
-@@ -12,16 +12,16 @@
-
- PPPDSRCS = main.c magic.c fsm.c lcp.c ipcp.c upap.c chap-new.c md5.c ccp.c \
- ecp.c ipxcp.c auth.c options.c sys-linux.c md4.c chap_ms.c \
-- demand.c utils.c tty.c eap.c chap-md5.c
-+ demand.c utils.c tty.c eap.c chap-md5.c mplscp.c
-
- HEADERS = ccp.h chap-new.h ecp.h fsm.h ipcp.h \
- ipxcp.h lcp.h magic.h md5.h patchlevel.h pathnames.h pppd.h \
-- upap.h eap.h
-+ upap.h eap.h mplscp.h
-
- MANPAGES = pppd.8
- PPPDOBJS = main.o magic.o fsm.o lcp.o ipcp.o upap.o chap-new.o md5.o ccp.o \
- ecp.o auth.o options.o demand.o utils.o sys-linux.o ipxcp.o tty.o \
-- eap.o chap-md5.o
-+ eap.o chap-md5.o mplscp.o
-
- #
- # include dependencies if present
-diff -uarN ppp-2.4.2-orig/pppd/main.c ppp-2.4.2/pppd/main.c
---- ppp-2.4.2-orig/pppd/main.c 2003-04-06 20:01:45.000000000 -0400
-+++ ppp-2.4.2/pppd/main.c 2003-12-08 11:20:42.000000000 -0500
-@@ -70,6 +70,9 @@
- #include "fsm.h"
- #include "lcp.h"
- #include "ipcp.h"
-+
-+#include "mplscp.h"
-+
- #ifdef INET6
- #include "ipv6cp.h"
- #endif
-@@ -246,6 +249,7 @@
- &cbcp_protent,
- #endif
- &ipcp_protent,
-+ &mplscp_protent,
- #ifdef INET6
- &ipv6cp_protent,
- #endif
-diff -uarN ppp-2.4.2-orig/pppd/mplscp.c ppp-2.4.2/pppd/mplscp.c
---- ppp-2.4.2-orig/pppd/mplscp.c 1969-12-31 19:00:00.000000000 -0500
-+++ ppp-2.4.2/pppd/mplscp.c 2003-12-08 11:20:44.000000000 -0500
-@@ -0,0 +1,371 @@
-+
-+/* MPLSCP - Serge.Krier@advalvas.be (C) 2001 */
-+
-+#include <stdio.h>
-+#include <string.h>
-+#include <netdb.h>
-+#include <sys/param.h>
-+#include <sys/types.h>
-+#include <sys/socket.h>
-+#include <netinet/in.h>
-+#include <arpa/inet.h>
-+
-+#include "pppd.h"
-+#include "fsm.h"
-+#include "mplscp.h"
-+
-+
-+/* local vars */
-+/* static int mplscp_is_up; */ /* have called np_up() */
-+
-+/*
-+ * Callbacks for fsm code. (CI = Configuration Information)
-+ */
-+static void mplscp_resetci __P((fsm *)); /* Reset our CI */
-+static int mplscp_cilen __P((fsm *)); /* Return length of our CI */
-+static void mplscp_addci __P((fsm *, u_char *, int *)); /* Add our CI */
-+static int mplscp_ackci __P((fsm *, u_char *, int)); /* Peer ack'd our CI */
-+static int mplscp_nakci __P((fsm *, u_char *, int)); /* Peer nak'd our CI */
-+static int mplscp_rejci __P((fsm *, u_char *, int)); /* Peer rej'd our CI */
-+static int mplscp_reqci __P((fsm *, u_char *, int *, int)); /* Rcv CI */
-+static void mplscp_up __P((fsm *)); /* We're UP */
-+static void mplscp_down __P((fsm *)); /* We're DOWN */
-+static void mplscp_finished __P((fsm *)); /* Don't need lower layer */
-+
-+fsm mplscp_fsm[NUM_PPP]; /* MPLSCP fsm structure */
-+
-+static fsm_callbacks mplscp_callbacks = { /* MPLSCP callback routines */
-+ mplscp_resetci, /* Reset our Configuration Information */
-+ mplscp_cilen, /* Length of our Configuration Information */
-+ mplscp_addci, /* Add our Configuration Information */
-+ mplscp_ackci, /* ACK our Configuration Information */
-+ mplscp_nakci, /* NAK our Configuration Information */
-+ mplscp_rejci, /* Reject our Configuration Information */
-+ mplscp_reqci, /* Request peer's Configuration Information */
-+ mplscp_up, /* Called when fsm reaches OPENED state */
-+ mplscp_down, /* Called when fsm leaves OPENED state */
-+ NULL, /* Called when we want the lower layer up */
-+ mplscp_finished, /* Called when we want the lower layer down */
-+ NULL, /* Called when Protocol-Reject received */
-+ NULL, /* Retransmission is necessary */
-+ NULL, /* Called to handle protocol-specific codes */
-+ "MPLSCP" /* String name of protocol */
-+};
-+
-+static option_t mplscp_option_list[] = {
-+ { "mpls", o_bool, &mplscp_protent.enabled_flag,
-+ "Enable MPLSCP (and MPLS)", 1 },
-+ { NULL } };
-+
-+/*
-+ * Protocol entry points from main code.
-+ */
-+
-+static void mplscp_init __P((int));
-+static void mplscp_open __P((int));
-+static void mplscp_close __P((int, char *));
-+static void mplscp_lowerup __P((int));
-+static void mplscp_lowerdown __P((int));
-+static void mplscp_input __P((int, u_char *, int));
-+static void mplscp_protrej __P((int));
-+static int mplscp_printpkt __P((u_char *, int,
-+ void (*) __P((void *, char *, ...)), void *));
-+
-+struct protent mplscp_protent = {
-+ PPP_MPLSCP,
-+ mplscp_init,
-+ mplscp_input,
-+ mplscp_protrej,
-+ mplscp_lowerup,
-+ mplscp_lowerdown,
-+ mplscp_open,
-+ mplscp_close,
-+ mplscp_printpkt,
-+ NULL,
-+ 0, /* MPLS not enabled by default */
-+ "MPLSCP",
-+ "MPLS",
-+ mplscp_option_list,
-+ NULL,
-+ NULL,
-+ NULL
-+};
-+
-+/*
-+ * mplscp_init - Initialize MPLSCP.
-+ */
-+static void
-+mplscp_init(int unit) {
-+
-+ fsm *f = &mplscp_fsm[unit];
-+
-+ f->unit = unit;
-+ f->protocol = PPP_MPLSCP;
-+ f->callbacks = &mplscp_callbacks;
-+ fsm_init(&mplscp_fsm[unit]);
-+
-+}
-+
-+/*
-+ * mplscp_open - MPLSCP is allowed to come up.
-+ */
-+static void
-+mplscp_open(int unit) {
-+
-+ fsm_open(&mplscp_fsm[unit]);
-+
-+}
-+
-+/*
-+ * mplscp_close - Take MPLSCP down.
-+ */
-+static void
-+mplscp_close(int unit, char *reason) {
-+
-+ fsm_close(&mplscp_fsm[unit], reason);
-+
-+}
-+
-+/*
-+ * mplscp_lowerup - The lower layer is up.
-+ */
-+static void
-+mplscp_lowerup(int unit) {
-+
-+ fsm_lowerup(&mplscp_fsm[unit]);
-+}
-+
-+/*
-+ * mplscp_lowerdown - The lower layer is down.
-+ */
-+static void
-+mplscp_lowerdown(int unit) {
-+
-+ fsm_lowerdown(&mplscp_fsm[unit]);
-+}
-+
-+/*
-+ * mplscp_input - Input MPLSCP packet.
-+ */
-+static void
-+mplscp_input(int unit, u_char *p, int len) {
-+
-+ fsm_input(&mplscp_fsm[unit], p, len);
-+}
-+
-+/*
-+ * mplscp_protrej - A Protocol-Reject was received for MPLSCP.
-+ * Pretend the lower layer went down, so we shut up.
-+ */
-+static void
-+mplscp_protrej(int unit) {
-+
-+ fsm_lowerdown(&mplscp_fsm[unit]);
-+}
-+
-+/*
-+ * mplscp_resetci - Reset our CI.
-+ * Called by fsm_sconfreq, Send Configure Request.
-+ */
-+static void
-+mplscp_resetci(fsm *f) {
-+
-+ return;
-+}
-+
-+/*
-+ * mplscp_cilen - Return length of our CI.
-+ * Called by fsm_sconfreq, Send Configure Request.
-+ */
-+static int
-+mplscp_cilen(fsm *f) {
-+
-+ return 0;
-+}
-+
-+/*
-+ * mplscp_addci - Add our desired CIs to a packet.
-+ * Called by fsm_sconfreq, Send Configure Request.
-+ */
-+static void
-+mplscp_addci(fsm *f, u_char *ucp, int *lenp) {
-+
-+}
-+
-+/*
-+ * ipcp_ackci - Ack our CIs.
-+ * Called by fsm_rconfack, Receive Configure ACK.
-+ *
-+ * Returns:
-+ * 0 - Ack was bad.
-+ * 1 - Ack was good.
-+ */
-+static int
-+mplscp_ackci(fsm *f, u_char *p, int len) {
-+
-+ return 1;
-+
-+}
-+
-+/*
-+ * mplscp_nakci - Peer has sent a NAK for some of our CIs.
-+ * This should not modify any state if the Nak is bad
-+ * or if MPLSCP is in the OPENED state.
-+ * Calback from fsm_rconfnakrej - Receive Configure-Nak or Configure-Reject.
-+ *
-+ * Returns:
-+ * 0 - Nak was bad.
-+ * 1 - Nak was good.
-+ */
-+static int
-+mplscp_nakci(fsm *f, u_char *p, int len) {
-+
-+ return 1;
-+}
-+
-+/*
-+ * MPLSVP_rejci - Reject some of our CIs.
-+ * Callback from fsm_rconfnakrej.
-+ */
-+static int
-+mplscp_rejci(fsm *f, u_char *p, int len) {
-+
-+ return 1;
-+
-+}
-+
-+/*
-+ * mplscp_reqci - Check the peer's requested CIs and send appropriate response.
-+ * Callback from fsm_rconfreq, Receive Configure Request
-+ *
-+ * Returns: CONFACK, CONFNAK or CONFREJ and input packet modified
-+ * appropriately. If reject_if_disagree is non-zero, doesn't return
-+ * CONFNAK; returns CONFREJ if it can't return CONFACK.
-+ */
-+static int
-+mplscp_reqci(fsm *f, u_char *inp, int *len, int reject_if_disagree) {
-+
-+
-+ int rc = CONFACK; /* Final packet return code */
-+
-+ PUTCHAR(CONFACK,inp);
-+
-+ return rc;
-+
-+}
-+
-+static void
-+mplscp_up(fsm *f) {
-+
-+ sifnpmode(f->unit, PPP_MPLS_UC, NPMODE_PASS);
-+ /* sifnpmode(f->unit, PPP_MPLS_MC, NPMODE_PASS);*/
-+
-+ np_up(f->unit, PPP_MPLS_UC);
-+ /* np_up(f->unit, PPP_MPLS_MC);*/
-+ /* ipcp_is_up = 1;*/
-+
-+
-+#if 1
-+ printf("MPLSCP is OPENED\n");
-+#endif
-+
-+}
-+
-+static void
-+mplscp_down(fsm *f) {
-+
-+ sifnpmode(f->unit, PPP_MPLS_UC, NPMODE_DROP);
-+ /* sifnpmode(f->unit, PPP_MPLS_MC, NPMODE_DROP);*/
-+
-+ sifdown(f->unit);
-+
-+#if 1
-+ printf("MPLSCP is CLOSED\n");
-+#endif
-+
-+
-+}
-+
-+static void
-+mplscp_finished(fsm *f) {
-+
-+ np_finished(f->unit, PPP_MPLS_UC);
-+ /* np_finished(f->unit, PPP_MPLS_MC);*/
-+
-+}
-+
-+/*
-+ * mpls_printpkt - print the contents of an MPLSCP packet.
-+ */
-+static char *mplscp_codenames[] = {
-+ "ConfReq", "ConfAck", "ConfNak", "ConfRej",
-+ "TermReq", "TermAck", "CodeRej"
-+};
-+
-+static int
-+mplscp_printpkt(u_char *p, int plen,
-+ void (*printer) __P((void *, char *, ...)),
-+ void *arg) {
-+
-+ int code, id, len, olen;
-+ u_char *pstart, *optend;
-+
-+ if (plen < HEADERLEN)
-+ return 0;
-+ pstart = p;
-+ GETCHAR(code, p);
-+ GETCHAR(id, p);
-+ GETSHORT(len, p);
-+ if (len < HEADERLEN || len > plen)
-+ return 0;
-+
-+ if (code >= 1 && code <= sizeof(mplscp_codenames) / sizeof(char *))
-+ printer(arg, " %s", mplscp_codenames[code-1]);
-+ else
-+ printer(arg, " code=0x%x", code);
-+ printer(arg, " id=0x%x", id);
-+ len -= HEADERLEN;
-+ switch (code) {
-+ case CONFREQ:
-+ case CONFACK:
-+ case CONFNAK:
-+ case CONFREJ:
-+ /* print option list */
-+ while (len >= 2) {
-+ GETCHAR(code, p);
-+ GETCHAR(olen, p);
-+ p -= 2;
-+ if (olen < 2 || olen > len) {
-+ break;
-+ }
-+ printer(arg, " <");
-+ len -= olen;
-+ optend = p + olen;
-+ while (p < optend) {
-+ GETCHAR(code, p);
-+ printer(arg, " %.2x", code);
-+ }
-+ printer(arg, ">");
-+ }
-+ break;
-+
-+ case TERMACK:
-+ case TERMREQ:
-+ if (len > 0 && *p >= ' ' && *p < 0x7f) {
-+ printer(arg, " ");
-+ print_string((char *)p, len, printer, arg);
-+ p += len;
-+ len = 0;
-+ }
-+ break;
-+ }
-+
-+ /* print the rest of the bytes in the packet */
-+ for (; len > 0; --len) {
-+ GETCHAR(code, p);
-+ printer(arg, " %.2x", code);
-+ }
-+
-+ return p - pstart;
-+
-+}
-diff -uarN ppp-2.4.2-orig/pppd/mplscp.h ppp-2.4.2/pppd/mplscp.h
---- ppp-2.4.2-orig/pppd/mplscp.h 1969-12-31 19:00:00.000000000 -0500
-+++ ppp-2.4.2/pppd/mplscp.h 2003-12-08 11:20:44.000000000 -0500
-@@ -0,0 +1,8 @@
-+
-+/* MPLSCP - Serge.Krier@advalvas.be (C) 2001 */
-+
-+#define PPP_MPLSCP 0x8281
-+#define PPP_MPLS_UC 0x0281
-+#define PPP_MPLS_MC 0x0283
-+
-+extern struct protent mplscp_protent;
diff --git a/net-dialup/ppp/files/2.4.2/mpls.patch.gz b/net-dialup/ppp/files/2.4.2/mpls.patch.gz
new file mode 100644
index 000000000000..50acff426221
--- /dev/null
+++ b/net-dialup/ppp/files/2.4.2/mpls.patch.gz
Binary files differ
diff --git a/net-dialup/ppp/files/2.4.2/pppoatm.diff.gz b/net-dialup/ppp/files/2.4.2/pppoatm.diff.gz
new file mode 100644
index 000000000000..e37807c37315
--- /dev/null
+++ b/net-dialup/ppp/files/2.4.2/pppoatm.diff.gz
Binary files differ
diff --git a/net-dialup/ppp/files/2.4.2/stdopt-mppe-mppc-0.82.patch.gz b/net-dialup/ppp/files/2.4.2/stdopt-mppe-mppc-0.82.patch.gz
new file mode 100644
index 000000000000..d986981ce497
--- /dev/null
+++ b/net-dialup/ppp/files/2.4.2/stdopt-mppe-mppc-0.82.patch.gz
Binary files differ
diff --git a/net-dialup/ppp/files/digest-ppp-2.4.2-r1 b/net-dialup/ppp/files/digest-ppp-2.4.2-r1
new file mode 100644
index 000000000000..105b43c0d08b
--- /dev/null
+++ b/net-dialup/ppp/files/digest-ppp-2.4.2-r1
@@ -0,0 +1 @@
+MD5 362bcf218fba8afbb9afbee7471e5dac ppp-2.4.2.tar.gz 774441