aboutsummaryrefslogtreecommitdiff
path: root/usr.sbin
diff options
context:
space:
mode:
Diffstat (limited to 'usr.sbin')
-rw-r--r--usr.sbin/ppp/alias_cmd.c4
-rw-r--r--usr.sbin/ppp/auth.c9
-rw-r--r--usr.sbin/ppp/command.c51
-rw-r--r--usr.sbin/ppp/filter.c7
-rw-r--r--usr.sbin/ppp/hdlc.c4
-rw-r--r--usr.sbin/ppp/ip.c4
-rw-r--r--usr.sbin/ppp/ipcp.c159
-rw-r--r--usr.sbin/ppp/ipcp.h54
-rw-r--r--usr.sbin/ppp/lcp.c4
-rw-r--r--usr.sbin/ppp/main.c6
-rw-r--r--usr.sbin/ppp/os.c10
-rw-r--r--usr.sbin/ppp/phase.c4
-rw-r--r--usr.sbin/ppp/route.c12
-rw-r--r--usr.sbin/ppp/slcompress.c6
-rw-r--r--usr.sbin/ppp/slcompress.h10
-rw-r--r--usr.sbin/ppp/vjcomp.c5
16 files changed, 195 insertions, 154 deletions
diff --git a/usr.sbin/ppp/alias_cmd.c b/usr.sbin/ppp/alias_cmd.c
index d79ff328256d..9f0898bacf0c 100644
--- a/usr.sbin/ppp/alias_cmd.c
+++ b/usr.sbin/ppp/alias_cmd.c
@@ -2,7 +2,7 @@
* The code in this file was written by Eivind Eklund <perhaps@yes.no>,
* who places it in the public domain without restriction.
*
- * $Id: alias_cmd.c,v 1.11 1997/12/24 10:28:37 brian Exp $
+ * $Id: alias_cmd.c,v 1.12 1998/01/21 02:15:07 brian Exp $
*/
#include <sys/param.h>
@@ -76,7 +76,7 @@ AliasRedirectPort(struct cmdargs const *arg)
}
return 1;
}
- null_addr.s_addr = 0;
+ null_addr.s_addr = INADDR_ANY;
link = VarPacketAliasRedirectPort(local_addr, local_port,
null_addr, 0,
diff --git a/usr.sbin/ppp/auth.c b/usr.sbin/ppp/auth.c
index 0b04487bae72..e487437e6fe1 100644
--- a/usr.sbin/ppp/auth.c
+++ b/usr.sbin/ppp/auth.c
@@ -17,7 +17,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id: auth.c,v 1.27 1998/01/21 02:15:09 brian Exp $
+ * $Id: auth.c,v 1.27.2.1 1998/01/29 00:49:11 brian Exp $
*
* TODO:
* o Implement check against with registered IP addresses.
@@ -35,6 +35,8 @@
#include "defs.h"
#include "timer.h"
#include "fsm.h"
+#include "iplist.h"
+#include "throughput.h"
#include "ipcp.h"
#include "loadalias.h"
#include "vars.h"
@@ -160,9 +162,8 @@ AuthGetSecret(const char *fname, const char *system, int len, int setaddr,
continue;
if (strlen(vector[0]) == len && strncmp(vector[0], system, len) == 0) {
ExpandString(vector[1], passwd, sizeof passwd, 0);
- if (setaddr) {
- memset(&DefHisAddress, '\0', sizeof DefHisAddress);
- }
+ if (setaddr)
+ memset(&IpcpInfo.DefHisAddress, '\0', sizeof IpcpInfo.DefHisAddress);
if (n > 2 && setaddr)
if (UseHisaddr(vector[2], 1))
IpcpInit(physical);
diff --git a/usr.sbin/ppp/command.c b/usr.sbin/ppp/command.c
index b91904a22d28..ccc02dd650cc 100644
--- a/usr.sbin/ppp/command.c
+++ b/usr.sbin/ppp/command.c
@@ -17,7 +17,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id: command.c,v 1.131 1998/01/27 23:14:49 brian Exp $
+ * $Id: command.c,v 1.131.2.1 1998/01/29 00:49:15 brian Exp $
*
*/
#include <sys/param.h>
@@ -54,6 +54,7 @@
#include "phase.h"
#include "lcp.h"
#include "iplist.h"
+#include "throughput.h"
#include "ipcp.h"
#include "modem.h"
#include "filter.h"
@@ -586,10 +587,14 @@ ShowMSExt(struct cmdargs const *arg)
{
if (VarTerm) {
fprintf(VarTerm, " MS PPP extention values \n");
- fprintf(VarTerm, " Primary NS : %s\n", inet_ntoa(ns_entries[0]));
- fprintf(VarTerm, " Secondary NS : %s\n", inet_ntoa(ns_entries[1]));
- fprintf(VarTerm, " Primary NBNS : %s\n", inet_ntoa(nbns_entries[0]));
- fprintf(VarTerm, " Secondary NBNS : %s\n", inet_ntoa(nbns_entries[1]));
+ fprintf(VarTerm, " Primary NS : %s\n",
+ inet_ntoa(IpcpInfo.ns_entries[0]));
+ fprintf(VarTerm, " Secondary NS : %s\n",
+ inet_ntoa(IpcpInfo.ns_entries[1]));
+ fprintf(VarTerm, " Primary NBNS : %s\n",
+ inet_ntoa(IpcpInfo.nbns_entries[0]));
+ fprintf(VarTerm, " Secondary NBNS : %s\n",
+ inet_ntoa(IpcpInfo.nbns_entries[1]));
}
return 0;
}
@@ -1242,26 +1247,27 @@ SetInterfaceAddr(struct cmdargs const *arg)
const char *hisaddr;
hisaddr = NULL;
- DefMyAddress.ipaddr.s_addr = DefHisAddress.ipaddr.s_addr = 0L;
+ IpcpInfo.DefMyAddress.ipaddr.s_addr = INADDR_ANY;
+ IpcpInfo.DefHisAddress.ipaddr.s_addr = INADDR_ANY;
if (arg->argc > 4)
return -1;
- HaveTriggerAddress = 0;
+ IpcpInfo.HaveTriggerAddress = 0;
ifnetmask.s_addr = 0;
- iplist_reset(&DefHisChoice);
+ iplist_reset(&IpcpInfo.DefHisChoice);
if (arg->argc > 0) {
- if (!ParseAddr(arg->argc, arg->argv, &DefMyAddress.ipaddr,
- &DefMyAddress.mask, &DefMyAddress.width))
+ if (!ParseAddr(arg->argc, arg->argv, &IpcpInfo.DefMyAddress.ipaddr,
+ &IpcpInfo.DefMyAddress.mask, &IpcpInfo.DefMyAddress.width))
return 1;
if (arg->argc > 1) {
hisaddr = arg->argv[1];
if (arg->argc > 2) {
ifnetmask = GetIpAddr(arg->argv[2]);
if (arg->argc > 3) {
- TriggerAddress = GetIpAddr(arg->argv[3]);
- HaveTriggerAddress = 1;
+ IpcpInfo.TriggerAddress = GetIpAddr(arg->argv[3]);
+ IpcpInfo.HaveTriggerAddress = 1;
}
}
}
@@ -1270,14 +1276,15 @@ SetInterfaceAddr(struct cmdargs const *arg)
/*
* For backwards compatibility, 0.0.0.0 means any address.
*/
- if (DefMyAddress.ipaddr.s_addr == 0) {
- DefMyAddress.mask.s_addr = 0;
- DefMyAddress.width = 0;
+ if (IpcpInfo.DefMyAddress.ipaddr.s_addr == INADDR_ANY) {
+ IpcpInfo.DefMyAddress.mask.s_addr = INADDR_ANY;
+ IpcpInfo.DefMyAddress.width = 0;
}
- IpcpInfo.want_ipaddr.s_addr = DefMyAddress.ipaddr.s_addr;
- if (DefHisAddress.ipaddr.s_addr == 0) {
- DefHisAddress.mask.s_addr = 0;
- DefHisAddress.width = 0;
+ IpcpInfo.want_ipaddr.s_addr = IpcpInfo.DefMyAddress.ipaddr.s_addr;
+
+ if (IpcpInfo.DefHisAddress.ipaddr.s_addr == INADDR_ANY) {
+ IpcpInfo.DefHisAddress.mask.s_addr = INADDR_ANY;
+ IpcpInfo.DefHisAddress.width = 0;
}
if (hisaddr && !UseHisaddr(hisaddr, mode & MODE_AUTO))
@@ -1319,14 +1326,16 @@ SetMSEXT(struct in_addr * pri_addr,
static int
SetNS(struct cmdargs const *arg)
{
- SetMSEXT(&ns_entries[0], &ns_entries[1], arg->argc, arg->argv);
+ SetMSEXT(&IpcpInfo.ns_entries[0], &IpcpInfo.ns_entries[1],
+ arg->argc, arg->argv);
return 0;
}
static int
SetNBNS(struct cmdargs const *arg)
{
- SetMSEXT(&nbns_entries[0], &nbns_entries[1], arg->argc, arg->argv);
+ SetMSEXT(&IpcpInfo.nbns_entries[0], &IpcpInfo.nbns_entries[1],
+ arg->argc, arg->argv);
return 0;
}
diff --git a/usr.sbin/ppp/filter.c b/usr.sbin/ppp/filter.c
index b426e31ffc47..b3f2588f7ce7 100644
--- a/usr.sbin/ppp/filter.c
+++ b/usr.sbin/ppp/filter.c
@@ -17,7 +17,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id: filter.c,v 1.21 1997/12/24 09:28:57 brian Exp $
+ * $Id: filter.c,v 1.22 1998/01/21 02:15:14 brian Exp $
*
* TODO: Shoud send ICMP error message when we discard packets.
*/
@@ -37,6 +37,9 @@
#include "loadalias.h"
#include "defs.h"
#include "vars.h"
+#include "iplist.h"
+#include "timer.h"
+#include "throughput.h"
#include "ipcp.h"
#include "filter.h"
@@ -76,7 +79,7 @@ ParseAddr(int argc,
}
if (pmask)
- pmask->s_addr = 0xffffffff; /* Assume 255.255.255.255 as default */
+ pmask->s_addr = INADDR_BROADCAST; /* Assume 255.255.255.255 as default */
cp = pmask || pwidth ? strchr(*argv, '/') : NULL;
len = cp ? cp - *argv : strlen(*argv);
diff --git a/usr.sbin/ppp/hdlc.c b/usr.sbin/ppp/hdlc.c
index d05128535f6b..b5f77d3aaedc 100644
--- a/usr.sbin/ppp/hdlc.c
+++ b/usr.sbin/ppp/hdlc.c
@@ -17,7 +17,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id: hdlc.c,v 1.28 1998/01/21 02:15:15 brian Exp $
+ * $Id: hdlc.c,v 1.28.2.1 1998/01/29 00:49:21 brian Exp $
*
* TODO:
*/
@@ -36,6 +36,8 @@
#include "fsm.h"
#include "hdlc.h"
#include "lcpproto.h"
+#include "iplist.h"
+#include "throughput.h"
#include "ipcp.h"
#include "ip.h"
#include "vjcomp.h"
diff --git a/usr.sbin/ppp/ip.c b/usr.sbin/ppp/ip.c
index 56d10dd4e072..bf354f1d43eb 100644
--- a/usr.sbin/ppp/ip.c
+++ b/usr.sbin/ppp/ip.c
@@ -17,7 +17,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id: ip.c,v 1.38 1998/01/21 02:15:16 brian Exp $
+ * $Id: ip.c,v 1.38.2.1 1998/01/29 00:49:22 brian Exp $
*
* TODO:
* o Return ICMP message for filterd packet
@@ -57,6 +57,8 @@
#include "vars.h"
#include "filter.h"
#include "os.h"
+#include "iplist.h"
+#include "throughput.h"
#include "ipcp.h"
#include "vjcomp.h"
#include "lcp.h"
diff --git a/usr.sbin/ppp/ipcp.c b/usr.sbin/ppp/ipcp.c
index 4885308753f7..d12189f1407d 100644
--- a/usr.sbin/ppp/ipcp.c
+++ b/usr.sbin/ppp/ipcp.c
@@ -17,7 +17,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id: ipcp.c,v 1.50 1998/01/21 02:15:17 brian Exp $
+ * $Id: ipcp.c,v 1.50.2.1 1998/01/29 00:49:23 brian Exp $
*
* TODO:
* o More RFC1772 backwoard compatibility
@@ -44,6 +44,7 @@
#include "lcpproto.h"
#include "lcp.h"
#include "iplist.h"
+#include "throughput.h"
#include "ipcp.h"
#include "slcompress.h"
#include "os.h"
@@ -52,22 +53,17 @@
#include "vars.h"
#include "vjcomp.h"
#include "ip.h"
-#include "throughput.h"
#include "route.h"
#include "filter.h"
#include "physical.h"
-#ifndef NOMSEXT
-struct in_addr ns_entries[2];
-struct in_addr nbns_entries[2];
-#endif
+struct compreq {
+ u_short proto;
+ u_char slots;
+ u_char compcid;
+};
-struct ipcpstate IpcpInfo;
-struct in_range DefMyAddress;
-struct in_range DefHisAddress;
-struct iplist DefHisChoice;
-struct in_addr TriggerAddress;
-int HaveTriggerAddress;
+struct ipcpstate IpcpInfo = { MAX_VJ_STATES, 1 };
static void IpcpSendConfigReq(struct fsm *);
static void IpcpSendTerminateAck(struct fsm *);
@@ -126,18 +122,16 @@ static const char *cftypes128[] = {
#define NCFTYPES128 (sizeof cftypes128/sizeof cftypes128[0])
-static struct pppThroughput throughput;
-
void
IpcpAddInOctets(int n)
{
- throughput_addin(&throughput, n);
+ throughput_addin(&IpcpInfo.throughput, n);
}
void
IpcpAddOutOctets(int n)
{
- throughput_addout(&throughput, n);
+ throughput_addout(&IpcpInfo.throughput, n);
}
int
@@ -157,19 +151,21 @@ ReportIpcpStatus(struct cmdargs const *arg)
fprintf(VarTerm, "Defaults:\n");
fprintf(VarTerm, " My Address: %s/%d\n",
- inet_ntoa(DefMyAddress.ipaddr), DefMyAddress.width);
- if (iplist_isvalid(&DefHisChoice))
- fprintf(VarTerm, " His Address: %s\n", DefHisChoice.src);
+ inet_ntoa(IpcpInfo.DefMyAddress.ipaddr), IpcpInfo.DefMyAddress.width);
+ if (iplist_isvalid(&IpcpInfo.DefHisChoice))
+ fprintf(VarTerm, " His Address: %s\n", IpcpInfo.DefHisChoice.src);
else
fprintf(VarTerm, " His Address: %s/%d\n",
- inet_ntoa(DefHisAddress.ipaddr), DefHisAddress.width);
- if (HaveTriggerAddress)
- fprintf(VarTerm, " Negotiation(trigger): %s\n", inet_ntoa(TriggerAddress));
+ inet_ntoa(IpcpInfo.DefHisAddress.ipaddr),
+ IpcpInfo.DefHisAddress.width);
+ if (IpcpInfo.HaveTriggerAddress)
+ fprintf(VarTerm, " Negotiation(trigger): %s\n",
+ inet_ntoa(IpcpInfo.TriggerAddress));
else
fprintf(VarTerm, " Negotiation(trigger): MYADDR\n");
fprintf(VarTerm, "\n");
- throughput_disp(&throughput, VarTerm);
+ throughput_disp(&IpcpInfo.throughput, VarTerm);
return 0;
}
@@ -180,21 +176,16 @@ IpcpDefAddress()
struct hostent *hp;
char name[200];
- memset(&DefMyAddress, '\0', sizeof DefMyAddress);
- memset(&DefHisAddress, '\0', sizeof DefHisAddress);
- TriggerAddress.s_addr = 0;
- HaveTriggerAddress = 0;
+ memset(&IpcpInfo.DefMyAddress, '\0', sizeof IpcpInfo.DefMyAddress);
+ memset(&IpcpInfo.DefHisAddress, '\0', sizeof IpcpInfo.DefHisAddress);
+ IpcpInfo.HaveTriggerAddress = 0;
if (gethostname(name, sizeof name) == 0) {
hp = gethostbyname(name);
- if (hp && hp->h_addrtype == AF_INET) {
- memcpy(&DefMyAddress.ipaddr.s_addr, hp->h_addr, hp->h_length);
- }
+ if (hp && hp->h_addrtype == AF_INET)
+ memcpy(&IpcpInfo.DefMyAddress.ipaddr.s_addr, hp->h_addr, hp->h_length);
}
}
-static int VJInitSlots = MAX_STATES;
-static int VJInitComp = 1;
-
int
SetInitVJ(struct cmdargs const *args)
{
@@ -206,13 +197,13 @@ SetInitVJ(struct cmdargs const *args)
slots = atoi(args->argv[1]);
if (slots < 4 || slots > 16)
return 1;
- VJInitSlots = slots;
+ IpcpInfo.VJInitSlots = slots;
return 0;
} else if (!strcasecmp(args->argv[0], "slotcomp")) {
if (!strcasecmp(args->argv[1], "on"))
- VJInitComp = 1;
+ IpcpInfo.VJInitComp = 1;
else if (!strcasecmp(args->argv[1], "off"))
- VJInitComp = 0;
+ IpcpInfo.VJInitComp = 0;
else
return 2;
return 0;
@@ -224,8 +215,9 @@ int
ShowInitVJ(struct cmdargs const *args)
{
if (VarTerm) {
- fprintf(VarTerm, "Initial slots: %d\n", VJInitSlots);
- fprintf(VarTerm, "Initial compression: %s\n", VJInitComp ? "on" : "off");
+ fprintf(VarTerm, "Initial slots: %d\n", IpcpInfo.VJInitSlots);
+ fprintf(VarTerm, "Initial compression: %s\n",
+ IpcpInfo.VJInitComp ? "on" : "off");
}
return 0;
}
@@ -233,15 +225,18 @@ ShowInitVJ(struct cmdargs const *args)
void
IpcpInit(struct physical *physical)
{
- if (iplist_isvalid(&DefHisChoice))
- iplist_setrandpos(&DefHisChoice);
+ if (iplist_isvalid(&IpcpInfo.DefHisChoice))
+ iplist_setrandpos(&IpcpInfo.DefHisChoice);
FsmInit(&IpcpFsm, physical);
- memset(&IpcpInfo, '\0', sizeof IpcpInfo);
+ IpcpInfo.his_compproto = 0;
+ IpcpInfo.his_reject = IpcpInfo.my_reject = 0;
+
if ((mode & MODE_DEDICATED) && !GetLabel()) {
- IpcpInfo.want_ipaddr.s_addr = IpcpInfo.his_ipaddr.s_addr = 0;
+ IpcpInfo.want_ipaddr.s_addr = IpcpInfo.his_ipaddr.s_addr = INADDR_ANY;
+ IpcpInfo.his_ipaddr.s_addr = INADDR_ANY;
} else {
- IpcpInfo.want_ipaddr.s_addr = DefMyAddress.ipaddr.s_addr;
- IpcpInfo.his_ipaddr.s_addr = DefHisAddress.ipaddr.s_addr;
+ IpcpInfo.want_ipaddr.s_addr = IpcpInfo.DefMyAddress.ipaddr.s_addr;
+ IpcpInfo.his_ipaddr.s_addr = IpcpInfo.DefHisAddress.ipaddr.s_addr;
}
/*
@@ -249,18 +244,22 @@ IpcpInit(struct physical *physical)
* *special* value as our address, even though the rfc specifies
* full negotiation (e.g. "0.0.0.0" or Not "0.0.0.0").
*/
- if (HaveTriggerAddress) {
- IpcpInfo.want_ipaddr.s_addr = TriggerAddress.s_addr;
- LogPrintf(LogIPCP, "Using trigger address %s\n", inet_ntoa(TriggerAddress));
+ if (IpcpInfo.HaveTriggerAddress) {
+ IpcpInfo.want_ipaddr.s_addr = IpcpInfo.TriggerAddress.s_addr;
+ LogPrintf(LogIPCP, "Using trigger address %s\n",
+ inet_ntoa(IpcpInfo.TriggerAddress));
}
+
if (Enabled(ConfVjcomp))
- IpcpInfo.want_compproto = (PROTO_VJCOMP << 16) | ((VJInitSlots - 1) << 8) |
- VJInitComp;
+ IpcpInfo.want_compproto = (PROTO_VJCOMP << 16) +
+ ((IpcpInfo.VJInitSlots - 1) << 8) +
+ IpcpInfo.VJInitComp;
else
IpcpInfo.want_compproto = 0;
+
IpcpInfo.heis1172 = 0;
IpcpFsm.maxconfig = 10;
- throughput_init(&throughput);
+ throughput_init(&IpcpInfo.throughput);
}
static void
@@ -306,7 +305,7 @@ IpcpSendConfigReq(struct fsm * fp)
static void
IpcpSendTerminateReq(struct fsm * fp)
{
- /* XXX: No code yet */
+ /* Fsm has just send a terminate request */
}
static void
@@ -335,8 +334,8 @@ static void
IpcpLayerDown(struct fsm * fp)
{
LogPrintf(LogIPCP, "IpcpLayerDown.\n");
- throughput_stop(&throughput);
- throughput_log(&throughput, LogIPCP, NULL);
+ throughput_stop(&IpcpInfo.throughput);
+ throughput_log(&IpcpInfo.throughput, LogIPCP, NULL);
}
/*
@@ -367,7 +366,7 @@ IpcpLayerUp(struct fsm * fp)
VarPacketAliasSetAddress(IpcpInfo.want_ipaddr);
#endif
OsLinkup();
- throughput_start(&throughput);
+ throughput_start(&IpcpInfo.throughput);
StartIdleTimer();
}
@@ -428,13 +427,13 @@ IpcpDecodeConfig(u_char * cp, int plen, int mode_type)
switch (mode_type) {
case MODE_REQ:
- if (iplist_isvalid(&DefHisChoice)) {
+ if (iplist_isvalid(&IpcpInfo.DefHisChoice)) {
if (ipaddr.s_addr == INADDR_ANY ||
- iplist_ip2pos(&DefHisChoice, ipaddr) < 0 ||
- OsTrySetIpaddress(DefMyAddress.ipaddr, ipaddr) != 0) {
+ iplist_ip2pos(&IpcpInfo.DefHisChoice, ipaddr) < 0 ||
+ OsTrySetIpaddress(IpcpInfo.DefMyAddress.ipaddr, ipaddr) != 0) {
LogPrintf(LogIPCP, "%s: Address invalid or already in use\n",
inet_ntoa(ipaddr));
- IpcpInfo.his_ipaddr = ChooseHisAddr(DefMyAddress.ipaddr);
+ IpcpInfo.his_ipaddr = ChooseHisAddr(IpcpInfo.DefMyAddress.ipaddr);
if (IpcpInfo.his_ipaddr.s_addr == INADDR_ANY) {
memcpy(rejp, cp, length);
rejp += length;
@@ -445,7 +444,7 @@ IpcpDecodeConfig(u_char * cp, int plen, int mode_type)
}
break;
}
- } else if (!AcceptableAddr(&DefHisAddress, ipaddr)) {
+ } else if (!AcceptableAddr(&IpcpInfo.DefHisAddress, ipaddr)) {
/*
* If destination address is not acceptable, insist to use what we
* want to use.
@@ -460,7 +459,7 @@ IpcpDecodeConfig(u_char * cp, int plen, int mode_type)
ackp += length;
break;
case MODE_NAK:
- if (AcceptableAddr(&DefMyAddress, ipaddr)) {
+ if (AcceptableAddr(&IpcpInfo.DefMyAddress, ipaddr)) {
/* Use address suggested by peer */
snprintf(tbuff2, sizeof tbuff2, "%s changing address: %s ", tbuff,
inet_ntoa(IpcpInfo.want_ipaddr));
@@ -505,7 +504,7 @@ IpcpDecodeConfig(u_char * cp, int plen, int mode_type)
break;
case 6: /* RFC1332 */
if (ntohs(pcomp->proto) == PROTO_VJCOMP
- && pcomp->slots < MAX_STATES && pcomp->slots > 2) {
+ && pcomp->slots < MAX_VJ_STATES && pcomp->slots > 2) {
IpcpInfo.his_compproto = compproto;
IpcpInfo.heis1172 = 0;
memcpy(ackp, cp, length);
@@ -513,7 +512,7 @@ IpcpDecodeConfig(u_char * cp, int plen, int mode_type)
} else {
memcpy(nakp, cp, 2);
pcomp->proto = htons(PROTO_VJCOMP);
- pcomp->slots = MAX_STATES - 1;
+ pcomp->slots = MAX_VJ_STATES - 1;
pcomp->compcid = 0;
memcpy(nakp+2, &pcomp, sizeof pcomp);
nakp += length;
@@ -582,7 +581,8 @@ IpcpDecodeConfig(u_char * cp, int plen, int mode_type)
case MODE_REQ:
lp = (u_long *) (cp + 2);
dnsstuff.s_addr = *lp;
- ms_info_req.s_addr = ns_entries[((type - TY_PRIMARY_DNS) ? 1 : 0)].s_addr;
+ ms_info_req.s_addr = IpcpInfo.ns_entries
+ [(type - TY_PRIMARY_DNS) ? 1 : 0].s_addr;
if (dnsstuff.s_addr != ms_info_req.s_addr) {
/*
@@ -631,7 +631,8 @@ IpcpDecodeConfig(u_char * cp, int plen, int mode_type)
case MODE_REQ:
lp = (u_long *) (cp + 2);
dnsstuff.s_addr = *lp;
- ms_info_req.s_addr = nbns_entries[((type - TY_PRIMARY_NBNS) ? 1 : 0)].s_addr;
+ ms_info_req.s_addr = IpcpInfo.nbns_entries
+ [(type - TY_PRIMARY_NBNS) ? 1 : 0].s_addr;
if (dnsstuff.s_addr != ms_info_req.s_addr) {
memcpy(nakp, cp, 2);
memcpy(nakp+2, &ms_info_req.s_addr, length);
@@ -679,31 +680,33 @@ IpcpInput(struct mbuf * bp)
int
UseHisaddr(const char *hisaddr, int setaddr)
{
- memset(&DefHisAddress, '\0', sizeof DefHisAddress);
- iplist_reset(&DefHisChoice);
+ memset(&IpcpInfo.DefHisAddress, '\0', sizeof IpcpInfo.DefHisAddress);
+ iplist_reset(&IpcpInfo.DefHisChoice);
if (strpbrk(hisaddr, ",-")) {
- iplist_setsrc(&DefHisChoice, hisaddr);
- if (iplist_isvalid(&DefHisChoice)) {
- iplist_setrandpos(&DefHisChoice);
+ iplist_setsrc(&IpcpInfo.DefHisChoice, hisaddr);
+ if (iplist_isvalid(&IpcpInfo.DefHisChoice)) {
+ iplist_setrandpos(&IpcpInfo.DefHisChoice);
IpcpInfo.his_ipaddr = ChooseHisAddr(IpcpInfo.want_ipaddr);
if (IpcpInfo.his_ipaddr.s_addr == INADDR_ANY) {
- LogPrintf(LogWARN, "%s: None available !\n", DefHisChoice.src);
+ LogPrintf(LogWARN, "%s: None available !\n", IpcpInfo.DefHisChoice.src);
return(0);
}
- DefHisAddress.ipaddr.s_addr = IpcpInfo.his_ipaddr.s_addr;
- DefHisAddress.mask.s_addr = 0xffffffff;
- DefHisAddress.width = 32;
+ IpcpInfo.DefHisAddress.ipaddr.s_addr = IpcpInfo.his_ipaddr.s_addr;
+ IpcpInfo.DefHisAddress.mask.s_addr = INADDR_BROADCAST;
+ IpcpInfo.DefHisAddress.width = 32;
} else {
LogPrintf(LogWARN, "%s: Invalid range !\n", hisaddr);
return 0;
}
- } else if (ParseAddr(1, &hisaddr, &DefHisAddress.ipaddr,
- &DefHisAddress.mask, &DefHisAddress.width) != 0) {
- IpcpInfo.his_ipaddr.s_addr = DefHisAddress.ipaddr.s_addr;
+ } else if (ParseAddr(1, &hisaddr, &IpcpInfo.DefHisAddress.ipaddr,
+ &IpcpInfo.DefHisAddress.mask,
+ &IpcpInfo.DefHisAddress.width) != 0) {
+ IpcpInfo.his_ipaddr.s_addr = IpcpInfo.DefHisAddress.ipaddr.s_addr;
if (setaddr && OsSetIpaddress
- (DefMyAddress.ipaddr, DefHisAddress.ipaddr) < 0) {
- DefMyAddress.ipaddr.s_addr = DefHisAddress.ipaddr.s_addr = 0L;
+ (IpcpInfo.DefMyAddress.ipaddr, IpcpInfo.DefHisAddress.ipaddr) < 0) {
+ IpcpInfo.DefMyAddress.ipaddr.s_addr = INADDR_ANY;
+ IpcpInfo.DefHisAddress.ipaddr.s_addr = INADDR_ANY;
return 0;
}
} else
diff --git a/usr.sbin/ppp/ipcp.h b/usr.sbin/ppp/ipcp.h
index 7b55f022a20c..5f39644adc14 100644
--- a/usr.sbin/ppp/ipcp.h
+++ b/usr.sbin/ppp/ipcp.h
@@ -15,7 +15,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id: ipcp.h,v 1.18 1998/01/18 20:49:19 brian Exp $
+ * $Id: ipcp.h,v 1.18.2.1 1998/01/29 00:49:24 brian Exp $
*
* TODO:
*/
@@ -26,40 +26,48 @@
#define TY_COMPPROTO 2
#define TY_IPADDR 3
-/* MS PPP NameServer and NetBIOS NameServer stuff */
+/* Domain NameServer and NetBIOS NameServer options */
-#ifndef NOMSEXT
#define TY_PRIMARY_DNS 129
#define TY_PRIMARY_NBNS 130
#define TY_SECONDARY_DNS 131
#define TY_SECONDARY_NBNS 132
-extern struct in_addr ns_entries[2];
-extern struct in_addr nbns_entries[2];
-#endif
+struct in_range {
+ struct in_addr ipaddr;
+ struct in_addr mask;
+ int width;
+};
struct ipcpstate {
- struct in_addr his_ipaddr; /* IP address he is willing to use */
- u_int32_t his_compproto;
+ int VJInitSlots; /* Maximum VJ slots */
+ int VJInitComp : 1; /* Slot compression */
- struct in_addr want_ipaddr; /* IP address I'm willing to use */
- u_int32_t want_compproto;
+ int heis1172 : 1; /* True if he is speaking rfc1172 */
- u_int32_t his_reject; /* Request codes rejected by peer */
- u_int32_t my_reject; /* Request codes I have rejected */
- int heis1172; /* True if he is speaking rfc1172 */
-};
+ struct in_addr his_ipaddr; /* IP address he's willing to use */
+ u_int32_t his_compproto; /* VJ params he's willing to use */
-struct compreq {
- u_short proto;
- u_char slots;
- u_char compcid;
-};
+ struct in_addr want_ipaddr; /* IP address I'm willing to use */
+ u_int32_t want_compproto; /* VJ params I'm willing to use */
-struct in_range {
- struct in_addr ipaddr;
- struct in_addr mask;
- int width;
+ u_int32_t his_reject; /* Request codes rejected by peer */
+ u_int32_t my_reject; /* Request codes I have rejected */
+
+#ifndef NOMSEXT
+ struct in_addr ns_entries[2]; /* DNS addresses offered */
+ struct in_addr nbns_entries[2]; /* NetBIOS NS addresses offered */
+#endif
+
+ struct in_range DefMyAddress; /* MYADDR spec */
+
+ struct in_range DefHisAddress; /* HISADDR spec */
+ struct iplist DefHisChoice; /* Ranges of HISADDR values */
+
+ struct in_addr TriggerAddress; /* Address to suggest in REQ */
+ int HaveTriggerAddress : 1; /* Trigger address specified */
+
+ struct pppThroughput throughput; /* throughput statistics */
};
extern struct ipcpstate IpcpInfo;
diff --git a/usr.sbin/ppp/lcp.c b/usr.sbin/ppp/lcp.c
index 5cd2d1130629..079836c1a2d7 100644
--- a/usr.sbin/ppp/lcp.c
+++ b/usr.sbin/ppp/lcp.c
@@ -17,7 +17,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id: lcp.c,v 1.55 1998/01/21 02:15:18 brian Exp $
+ * $Id: lcp.c,v 1.55.2.1 1998/01/29 00:49:24 brian Exp $
*
* TODO:
* o Validate magic number received from peer.
@@ -47,6 +47,8 @@
#include "timer.h"
#include "fsm.h"
#include "lcp.h"
+#include "iplist.h"
+#include "throughput.h"
#include "ipcp.h"
#include "lcpproto.h"
#include "os.h"
diff --git a/usr.sbin/ppp/main.c b/usr.sbin/ppp/main.c
index 488d13161ed0..7fc7415d7550 100644
--- a/usr.sbin/ppp/main.c
+++ b/usr.sbin/ppp/main.c
@@ -17,7 +17,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id: main.c,v 1.121 1998/01/29 00:42:05 brian Exp $
+ * $Id: main.c,v 1.121.2.1 1998/01/29 00:49:26 brian Exp $
*
* TODO:
* o Add commands for traffic summary, version display, etc.
@@ -58,6 +58,8 @@
#include "hdlc.h"
#include "lcp.h"
#include "ccp.h"
+#include "iplist.h"
+#include "throughput.h"
#include "ipcp.h"
#include "loadalias.h"
#include "vars.h"
@@ -466,7 +468,7 @@ main(int argc, char **argv)
*/
SetLabel(label);
if (mode & MODE_OUTGOING_DAEMON &&
- DefHisAddress.ipaddr.s_addr == INADDR_ANY) {
+ IpcpInfo.DefHisAddress.ipaddr.s_addr == INADDR_ANY) {
LogPrintf(LogWARN, "You must \"set ifaddr\" in label %s for"
" auto, background or ddial mode.\n", label);
Cleanup(EX_START);
diff --git a/usr.sbin/ppp/os.c b/usr.sbin/ppp/os.c
index 5cdb70cea996..e753270d8008 100644
--- a/usr.sbin/ppp/os.c
+++ b/usr.sbin/ppp/os.c
@@ -17,7 +17,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id: os.c,v 1.41 1998/01/19 02:59:33 brian Exp $
+ * $Id: os.c,v 1.42 1998/01/21 02:15:23 brian Exp $
*
*/
#include <sys/param.h>
@@ -42,6 +42,8 @@
#include "defs.h"
#include "timer.h"
#include "fsm.h"
+#include "iplist.h"
+#include "throughput.h"
#include "ipcp.h"
#include "os.h"
#include "loadalias.h"
@@ -79,7 +81,7 @@ SetIpDevice(struct in_addr myaddr,
if (how == SET_DOWN) {
if (Enabled(ConfProxy))
cifproxyarp(s, oldhis);
- if (oldmine.s_addr == 0 && oldhis.s_addr == 0) {
+ if (oldmine.s_addr == INADDR_ANY && oldhis.s_addr == INADDR_ANY) {
close(s);
return (0);
}
@@ -92,7 +94,7 @@ SetIpDevice(struct in_addr myaddr,
close(s);
return (-1);
}
- oldmine.s_addr = oldhis.s_addr = 0;
+ oldmine.s_addr = oldhis.s_addr = INADDR_ANY;
} else {
/* If given addresses are alreay set, then ignore this request */
if (oldmine.s_addr == myaddr.s_addr && oldhis.s_addr == hisaddr.s_addr) {
@@ -299,7 +301,7 @@ OsInterfaceDown(int final)
close(s);
return (-1);
}
- zeroaddr.s_addr = 0;
+ zeroaddr.s_addr = INADDR_ANY;
SetIpDevice(zeroaddr, zeroaddr, zeroaddr, SET_DOWN);
close(s);
diff --git a/usr.sbin/ppp/phase.c b/usr.sbin/ppp/phase.c
index b05c1c7b6909..65128bf87576 100644
--- a/usr.sbin/ppp/phase.c
+++ b/usr.sbin/ppp/phase.c
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: phase.c,v 1.6 1997/12/21 12:11:07 brian Exp $
+ * $Id: phase.c,v 1.6.4.1 1998/01/29 00:49:28 brian Exp $
*/
#include <sys/param.h>
@@ -41,6 +41,8 @@
#include "pap.h"
#include "chap.h"
#include "defs.h"
+#include "iplist.h"
+#include "throughput.h"
#include "ipcp.h"
#include "ccp.h"
#include "main.h"
diff --git a/usr.sbin/ppp/route.c b/usr.sbin/ppp/route.c
index bf705b3e205f..1a63bd18c00c 100644
--- a/usr.sbin/ppp/route.c
+++ b/usr.sbin/ppp/route.c
@@ -17,7 +17,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id: route.c,v 1.41 1998/01/19 02:59:33 brian Exp $
+ * $Id: route.c,v 1.42 1998/01/21 02:15:26 brian Exp $
*
*/
@@ -48,8 +48,10 @@
#include "vars.h"
#include "id.h"
#include "os.h"
-#include "ipcp.h"
#include "iplist.h"
+#include "timer.h"
+#include "throughput.h"
+#include "ipcp.h"
#include "route.h"
static int IfIndex;
@@ -557,8 +559,8 @@ ChooseHisAddr(const struct in_addr gw)
struct in_addr try;
int f;
- for (f = 0; f < DefHisChoice.nItems; f++) {
- try = iplist_next(&DefHisChoice);
+ for (f = 0; f < IpcpInfo.DefHisChoice.nItems; f++) {
+ try = iplist_next(&IpcpInfo.DefHisChoice);
LogPrintf(LogDEBUG, "ChooseHisAddr: Check item %d (%s)\n",
f, inet_ntoa(try));
if (OsTrySetIpaddress(gw, try) == 0) {
@@ -568,7 +570,7 @@ ChooseHisAddr(const struct in_addr gw)
}
}
- if (f == DefHisChoice.nItems) {
+ if (f == IpcpInfo.DefHisChoice.nItems) {
LogPrintf(LogDEBUG, "ChooseHisAddr: All addresses in use !\n");
try.s_addr = INADDR_ANY;
}
diff --git a/usr.sbin/ppp/slcompress.c b/usr.sbin/ppp/slcompress.c
index 1678531b6b18..4adcf0ee1e6b 100644
--- a/usr.sbin/ppp/slcompress.c
+++ b/usr.sbin/ppp/slcompress.c
@@ -17,7 +17,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id: slcompress.c,v 1.14 1997/11/22 03:37:50 brian Exp $
+ * $Id: slcompress.c,v 1.15 1997/12/24 09:29:17 brian Exp $
*
* Van Jacobson (van@helios.ee.lbl.gov), Dec 31, 1989:
* - Initial distribution.
@@ -414,7 +414,7 @@ sl_uncompress_tcp(u_char ** bufp,
case TYPE_UNCOMPRESSED_TCP:
ip = (struct ip *) * bufp;
- if (ip->ip_p >= MAX_STATES)
+ if (ip->ip_p >= MAX_VJ_STATES)
goto bad;
cs = &comp->rstate[comp->last_recv = ip->ip_p];
comp->flags &= ~SLF_TOSS;
@@ -454,7 +454,7 @@ sl_uncompress_tcp(u_char ** bufp,
* Make sure the state index is in range, then grab the state. If we have
* a good state index, clear the 'discard' flag.
*/
- if (*cp >= MAX_STATES || comp->last_recv == 255)
+ if (*cp >= MAX_VJ_STATES || comp->last_recv == 255)
goto bad;
comp->flags &= ~SLF_TOSS;
diff --git a/usr.sbin/ppp/slcompress.h b/usr.sbin/ppp/slcompress.h
index 56328207863c..b1003cc69ab9 100644
--- a/usr.sbin/ppp/slcompress.h
+++ b/usr.sbin/ppp/slcompress.h
@@ -1,7 +1,7 @@
/*
* Definitions for tcp compression routines.
*
- * $Header: /home/ncvs/src/usr.sbin/ppp/slcompress.h,v 1.9 1997/10/26 01:03:46 brian Exp $
+ * $Header: /home/ncvs/src/usr.sbin/ppp/slcompress.h,v 1.10 1997/11/22 03:37:50 brian Exp $
*
* Copyright (c) 1989 Regents of the University of California.
* All rights reserved.
@@ -18,13 +18,13 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id: slcompress.h,v 1.9 1997/10/26 01:03:46 brian Exp $
+ * $Id: slcompress.h,v 1.10 1997/11/22 03:37:50 brian Exp $
*
* Van Jacobson (van@helios.ee.lbl.gov), Dec 31, 1989:
* - Initial distribution.
*/
-#define MAX_STATES 16 /* must be > 2 and < 256 */
+#define MAX_VJ_STATES 16 /* must be > 2 and < 256 */
#define MAX_HDR 128 /* XXX 4bsd-ism: should really be 128 */
/*
@@ -120,8 +120,8 @@ struct slcompress {
u_char last_recv; /* last rcvd conn. id */
u_char last_xmit; /* last sent conn. id */
u_short flags;
- struct cstate tstate[MAX_STATES]; /* xmit connection states */
- struct cstate rstate[MAX_STATES]; /* receive connection states */
+ struct cstate tstate[MAX_VJ_STATES]; /* xmit connection states */
+ struct cstate rstate[MAX_VJ_STATES]; /* receive connection states */
};
/* flag values */
diff --git a/usr.sbin/ppp/vjcomp.c b/usr.sbin/ppp/vjcomp.c
index e1b327b8101e..5bc59dd91860 100644
--- a/usr.sbin/ppp/vjcomp.c
+++ b/usr.sbin/ppp/vjcomp.c
@@ -17,7 +17,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id: vjcomp.c,v 1.16 1998/01/21 02:15:33 brian Exp $
+ * $Id: vjcomp.c,v 1.16.2.1 1998/01/29 00:49:32 brian Exp $
*
* TODO:
*/
@@ -37,6 +37,9 @@
#include "lcpproto.h"
#include "slcompress.h"
#include "hdlc.h"
+#include "defs.h"
+#include "iplist.h"
+#include "throughput.h"
#include "ipcp.h"
#include "vjcomp.h"