summaryrefslogtreecommitdiff
path: root/net/pppd/patches/patch-aq
diff options
context:
space:
mode:
authorcube <cube@pkgsrc.org>2005-01-02 02:51:40 +0000
committercube <cube@pkgsrc.org>2005-01-02 02:51:40 +0000
commit986ee10b0a17201e46d41630992fdad4bba97130 (patch)
treeb76aa88f42b440cfb17fc25332b40488fe8a010c /net/pppd/patches/patch-aq
parent89838689540b186d5ec6e1972388464d314fd102 (diff)
downloadpkgsrc-986ee10b0a17201e46d41630992fdad4bba97130.tar.gz
Initial import of pppd, version 2.4.3, into the NetBSD Package Collection.
The PPP Daemon is the userland part of the Point-to-Point Protocol. It works in combination with a dedicated kernel network interface usually named ppp. PPP is a very extensible protocol and pppd supports a large number of options, including compression (through various algorithms), cryptography (Microsoft's MPPE) and authentication (PAP, CHAP, Microsoft CHAP), provided the kernel has the relevant back-ends in some cases.
Diffstat (limited to 'net/pppd/patches/patch-aq')
-rw-r--r--net/pppd/patches/patch-aq85
1 files changed, 85 insertions, 0 deletions
diff --git a/net/pppd/patches/patch-aq b/net/pppd/patches/patch-aq
new file mode 100644
index 00000000000..2556bbfe3a5
--- /dev/null
+++ b/net/pppd/patches/patch-aq
@@ -0,0 +1,85 @@
+$NetBSD: patch-aq,v 1.1.1.1 2005/01/02 02:51:42 cube Exp $
+
+--- pppd/ipv6cp.c.orig 2004-11-13 03:28:15.000000000 +0100
++++ pppd/ipv6cp.c
+@@ -151,6 +151,7 @@
+ */
+
+ #include <stdio.h>
++#include <stdlib.h>
+ #include <string.h>
+ #include <unistd.h>
+ #include <netdb.h>
+@@ -163,12 +164,17 @@
+ #include "pppd.h"
+ #include "fsm.h"
+ #include "ipcp.h"
++#ifdef INET6
+ #include "ipv6cp.h"
++#endif
+ #include "magic.h"
+ #include "pathnames.h"
+
++#ifdef RCSID
+ static const char rcsid[] = RCSID;
++#endif
+
++#ifdef INET6
+ /* global vars */
+ ipv6cp_options ipv6cp_wantoptions[NUM_PPP]; /* Options that we want to request */
+ ipv6cp_options ipv6cp_gotoptions[NUM_PPP]; /* Options that peer ack'd */
+@@ -192,6 +198,7 @@ static int ipv6cp_reqci __P((fsm *, u_c
+ static void ipv6cp_up __P((fsm *)); /* We're UP */
+ static void ipv6cp_down __P((fsm *)); /* We're DOWN */
+ static void ipv6cp_finished __P((fsm *)); /* Don't need lower layer */
++static char *llv6_ntoa __P((eui64_t));
+
+ fsm ipv6cp_fsm[NUM_PPP]; /* IPV6CP fsm structure */
+
+@@ -328,9 +335,10 @@ setifaceid(argv)
+ struct in6_addr addr;
+ static int prio_local, prio_remote;
+
++#define s6_addr32 __u6_addr.__u6_addr32 /* non-standard */
+ #define VALIDID(a) ( (((a).s6_addr32[0] == 0) && ((a).s6_addr32[1] == 0)) && \
+ (((a).s6_addr32[2] != 0) || ((a).s6_addr32[3] != 0)) )
+-
++
+ arg = *argv;
+ if ((comma = strchr(arg, ',')) == NULL)
+ comma = arg + strlen(arg);
+@@ -395,13 +403,13 @@ printifaceid(opt, printer, arg)
+ /*
+ * Make a string representation of a network address.
+ */
+-char *
++static char *
+ llv6_ntoa(ifaceid)
+ eui64_t ifaceid;
+ {
+ static char b[64];
+
+- sprintf(b, "fe80::%s", eui64_ntoa(ifaceid));
++ snprintf(b, sizeof(b), "fe80::%s", eui64_ntoa(ifaceid));
+ return b;
+ }
+
+@@ -1406,9 +1414,10 @@ ipv6cp_script(script)
+ char strspeed[32], strlocal[32], strremote[32];
+ char *argv[8];
+
+- sprintf(strspeed, "%d", baud_rate);
+- strcpy(strlocal, llv6_ntoa(ipv6cp_gotoptions[0].ourid));
+- strcpy(strremote, llv6_ntoa(ipv6cp_hisoptions[0].hisid));
++ snprintf(strspeed, sizeof(strspeed), "%d", baud_rate);
++ strlcpy(strlocal, llv6_ntoa(ipv6cp_gotoptions[0].ourid), sizeof(strlocal));
++ strlcpy(strremote, llv6_ntoa(ipv6cp_hisoptions[0].hisid),
++ sizeof(strremote));
+
+ argv[0] = script;
+ argv[1] = ifname;
+@@ -1559,3 +1568,4 @@ ipv6_active_pkt(pkt, len)
+ return 0;
+ return 1;
+ }
++#endif