Update the cftypes arrays according to rfc1700.
Log IPCP reqests as IPCP.
This commit is contained in:
parent
a23e75e150
commit
9e836af5d9
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=31171
@ -17,7 +17,7 @@
|
||||
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
*
|
||||
* $Id: ccp.c,v 1.17 1997/10/26 01:02:10 brian Exp $
|
||||
* $Id: ccp.c,v 1.18 1997/11/08 00:28:06 brian Exp $
|
||||
*
|
||||
* TODO:
|
||||
* o Support other compression protocols
|
||||
@ -80,14 +80,23 @@ struct fsm CcpFsm = {
|
||||
};
|
||||
|
||||
static char const *cftypes[] = {
|
||||
/* 0 */ "OUI", "PRED1", "PRED2", "PUDDLE",
|
||||
/* 4 */ "???", "???", "???", "???",
|
||||
/* 8 */ "???", "???", "???", "???",
|
||||
/* 12 */ "???", "???", "???", "???",
|
||||
/* 16 */ "HWPPC", "STAC", "MSPPC", "GAND",
|
||||
/* 20 */ "V42BIS", "BSD",
|
||||
/* Check out the latest ``Compression Control Protocol'' rfc (rfc1962.txt) */
|
||||
"OUI", /* 0: OUI */
|
||||
"PRED1", /* 1: Predictor type 1 */
|
||||
"PRED2", /* 2: Predictor type 2 */
|
||||
"PUDDLE", /* 3: Puddle Jumber */
|
||||
"???", "???", "???", "???", "???", "???",
|
||||
"???", "???", "???", "???", "???", "???",
|
||||
"HWPPC", /* 16: Hewlett-Packard PPC */
|
||||
"STAC", /* 17: Stac Electronics LZS */
|
||||
"MSPPC", /* 18: Microsoft PPC */
|
||||
"GAND", /* 19: Gandalf FZA */
|
||||
"V42BIS", /* 20: V.42bis compression */
|
||||
"BSD", /* BSD LZW Compress */
|
||||
};
|
||||
|
||||
#define NCFTYPES (sizeof(cftypes)/sizeof(char *))
|
||||
|
||||
int
|
||||
ReportCcpStatus()
|
||||
{
|
||||
@ -223,7 +232,7 @@ CcpDecodeConfig(u_char *cp, int plen, int mode_type)
|
||||
break;
|
||||
type = *cp;
|
||||
length = cp[1];
|
||||
if (type <= TY_BSD)
|
||||
if (type < NCFTYPES)
|
||||
snprintf(tbuff, sizeof(tbuff), " %s[%d] ", cftypes[type], length);
|
||||
else
|
||||
snprintf(tbuff, sizeof(tbuff), " ");
|
||||
|
@ -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.34 1997/11/08 00:28:07 brian Exp $
|
||||
* $Id: ipcp.c,v 1.35 1997/11/11 22:58:11 brian Exp $
|
||||
*
|
||||
* TODO:
|
||||
* o More RFC1772 backwoard compatibility
|
||||
@ -106,9 +106,26 @@ struct fsm IpcpFsm = {
|
||||
};
|
||||
|
||||
static char *cftypes[] = {
|
||||
"???", "IPADDRS", "COMPPROTO", "IPADDR",
|
||||
/* Check out the latest ``Assigned numbers'' rfc (rfc1700.txt) */
|
||||
"???",
|
||||
"IPADDRS", /* 1: IP-Addresses */ /* deprecated */
|
||||
"COMPPROTO", /* 2: IP-Compression-Protocol */
|
||||
"IPADDR", /* 3: IP-Address */
|
||||
};
|
||||
|
||||
#define NCFTYPES (sizeof(cftypes)/sizeof(char *))
|
||||
|
||||
static char *cftypes128[] = {
|
||||
/* Check out the latest ``Assigned numbers'' rfc (rfc1700.txt) */
|
||||
"???",
|
||||
"PRIDNS", /* 129: Primary DNS Server Address */
|
||||
"PRINBNS", /* 130: Primary NBNS Server Address */
|
||||
"SECDNS", /* 131: Secondary DNS Server Address */
|
||||
"SECNBNS", /* 132: Secondary NBNS Server Address */
|
||||
};
|
||||
|
||||
#define NCFTYPES128 (sizeof(cftypes)/sizeof(char *))
|
||||
|
||||
/*
|
||||
* Function called every second. Updates connection period and idle period,
|
||||
* also update LQR information.
|
||||
@ -235,12 +252,14 @@ IpcpSendConfigReq(struct fsm * fp)
|
||||
cp = ReqBuff;
|
||||
LogPrintf(LogIPCP, "IpcpSendConfigReq\n");
|
||||
if (!DEV_IS_SYNC || !REJECTED(icp, TY_IPADDR))
|
||||
PutConfValue(&cp, cftypes, TY_IPADDR, 6, ntohl(icp->want_ipaddr.s_addr));
|
||||
PutConfValue(LogIPCP, &cp, cftypes, TY_IPADDR, 6,
|
||||
ntohl(icp->want_ipaddr.s_addr));
|
||||
if (icp->want_compproto && !REJECTED(icp, TY_COMPPROTO)) {
|
||||
if (icp->heis1172)
|
||||
PutConfValue(&cp, cftypes, TY_COMPPROTO, 4, icp->want_compproto >> 16);
|
||||
PutConfValue(LogIPCP, &cp, cftypes, TY_COMPPROTO, 4,
|
||||
icp->want_compproto >> 16);
|
||||
else
|
||||
PutConfValue(&cp, cftypes, TY_COMPPROTO, 6, icp->want_compproto);
|
||||
PutConfValue(LogIPCP, &cp, cftypes, TY_COMPPROTO, 6, icp->want_compproto);
|
||||
}
|
||||
FsmOutput(fp, CODE_CONFIGREQ, fp->reqid++, ReqBuff, cp - ReqBuff);
|
||||
}
|
||||
@ -373,10 +392,12 @@ IpcpDecodeConfig(u_char * cp, int plen, int mode_type)
|
||||
while (plen >= sizeof(struct fsmconfig)) {
|
||||
type = *cp;
|
||||
length = cp[1];
|
||||
if (type <= TY_IPADDR)
|
||||
if (type < NCFTYPES)
|
||||
snprintf(tbuff, sizeof(tbuff), " %s[%d] ", cftypes[type], length);
|
||||
else if (type > 128 && type < 128 + NCFTYPES128)
|
||||
snprintf(tbuff, sizeof(tbuff), " %s[%d] ", cftypes128[type], length);
|
||||
else
|
||||
snprintf(tbuff, sizeof(tbuff), " ");
|
||||
snprintf(tbuff, sizeof(tbuff), " ??? ");
|
||||
|
||||
switch (type) {
|
||||
case TY_IPADDR: /* RFC1332 */
|
||||
|
@ -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.43 1997/11/08 00:28:07 brian Exp $
|
||||
* $Id: lcp.c,v 1.44 1997/11/11 13:08:12 brian Exp $
|
||||
*
|
||||
* TODO:
|
||||
* o Validate magic number received from peer.
|
||||
@ -74,10 +74,35 @@ static void LcpLayerFinish(struct fsm *);
|
||||
#define REJECTED(p, x) (p->his_reject & (1<<x))
|
||||
|
||||
static char *cftypes[] = {
|
||||
"???", "MRU", "ACCMAP", "AUTHPROTO", "QUALPROTO", "MAGICNUM",
|
||||
"RESERVED", "PROTOCOMP", "ACFCOMP", "FCSALT", "SDP",
|
||||
/* Check out the latest ``Assigned numbers'' rfc (rfc1700.txt) */
|
||||
"???",
|
||||
"MRU", /* 1: Maximum-Receive-Unit */
|
||||
"ACCMAP", /* 2: Async-Control-Character-Map */
|
||||
"AUTHPROTO", /* 3: Authentication-Protocol */
|
||||
"QUALPROTO", /* 4: Quality-Protocol */
|
||||
"MAGICNUM", /* 5: Magic-Number */
|
||||
"RESERVED", /* 6: RESERVED */
|
||||
"PROTOCOMP", /* 7: Protocol-Field-Compression */
|
||||
"ACFCOMP", /* 8: Address-and-Control-Field-Compression */
|
||||
"FCSALT", /* 9: FCS-Alternatives */
|
||||
"SDP", /* 10: Self-Describing-Pad */
|
||||
"NUMMODE", /* 11: Numbered-Mode */
|
||||
"MULTIPROC", /* 12: Multi-Link-Procedure */
|
||||
"CALLBACK", /* 13: Callback */
|
||||
"CONTIME", /* 14: Connect-Time */
|
||||
"COMPFRAME", /* 15: Compound-Frames */
|
||||
"NDE", /* 16: Nominal-Data-Encapsulation */
|
||||
"MULTIMRRU", /* 17: Multilink-MRRU */
|
||||
"MULTISSNH", /* 18: Multilink-Short-Sequence-Number-Header */
|
||||
"MULTIED", /* 19: Multilink-Endpoint-Descriminator */
|
||||
"PROPRIETRY", /* 20: Proprietary */
|
||||
"DCEID", /* 21: DCE-Identifier */
|
||||
"MULTIPP", /* 22: Multi-Link-Plus-Procedure */
|
||||
"LDBACP", /* 23: Link Discriminator for BACP */
|
||||
};
|
||||
|
||||
#define NCFTYPES (sizeof(cftypes)/sizeof(char *))
|
||||
|
||||
struct fsm LcpFsm = {
|
||||
"LCP", /* Name of protocol */
|
||||
PROTO_LCP, /* Protocol Number */
|
||||
@ -190,7 +215,8 @@ LcpInitRestartCounter(struct fsm * fp)
|
||||
}
|
||||
|
||||
void
|
||||
PutConfValue(u_char ** cpp, char **types, u_char type, int len, u_long val)
|
||||
PutConfValue(int level, u_char ** cpp, char **types, u_char type, int len,
|
||||
u_long val)
|
||||
{
|
||||
u_char *cp;
|
||||
struct in_addr ina;
|
||||
@ -201,15 +227,14 @@ PutConfValue(u_char ** cpp, char **types, u_char type, int len, u_long val)
|
||||
if (len == 6) {
|
||||
if (type == TY_IPADDR) {
|
||||
ina.s_addr = htonl(val);
|
||||
LogPrintf(LogLCP, " %s [%d] %s\n",
|
||||
LogPrintf(level, " %s [%d] %s\n",
|
||||
types[type], len, inet_ntoa(ina));
|
||||
} else {
|
||||
LogPrintf(LogLCP, " %s [%d] %08x\n", types[type], len, val);
|
||||
}
|
||||
} else
|
||||
LogPrintf(level, " %s [%d] %08x\n", types[type], len, val);
|
||||
*cp++ = (val >> 24) & 0377;
|
||||
*cp++ = (val >> 16) & 0377;
|
||||
} else
|
||||
LogPrintf(LogLCP, " %s [%d] %d\n", types[type], len, val);
|
||||
LogPrintf(level, " %s [%d] %d\n", types[type], len, val);
|
||||
*cp++ = (val >> 8) & 0377;
|
||||
*cp++ = val & 0377;
|
||||
*cpp = cp;
|
||||
@ -236,12 +261,12 @@ LcpSendConfigReq(struct fsm * fp)
|
||||
LogPrintf(LogLCP, " %s\n", cftypes[TY_PROTOCOMP]);
|
||||
}
|
||||
if (!REJECTED(lcp, TY_ACCMAP))
|
||||
PutConfValue(&cp, cftypes, TY_ACCMAP, 6, lcp->want_accmap);
|
||||
PutConfValue(LogLCP, &cp, cftypes, TY_ACCMAP, 6, lcp->want_accmap);
|
||||
}
|
||||
if (!REJECTED(lcp, TY_MRU))
|
||||
PutConfValue(&cp, cftypes, TY_MRU, 4, lcp->want_mru);
|
||||
PutConfValue(LogLCP, &cp, cftypes, TY_MRU, 4, lcp->want_mru);
|
||||
if (lcp->want_magic && !REJECTED(lcp, TY_MAGICNUM))
|
||||
PutConfValue(&cp, cftypes, TY_MAGICNUM, 6, lcp->want_magic);
|
||||
PutConfValue(LogLCP, &cp, cftypes, TY_MAGICNUM, 6, lcp->want_magic);
|
||||
if (lcp->want_lqrperiod && !REJECTED(lcp, TY_QUALPROTO)) {
|
||||
req = (struct lqrreq *) cp;
|
||||
req->type = TY_QUALPROTO;
|
||||
@ -253,10 +278,10 @@ LcpSendConfigReq(struct fsm * fp)
|
||||
}
|
||||
switch (lcp->want_auth) {
|
||||
case PROTO_PAP:
|
||||
PutConfValue(&cp, cftypes, TY_AUTHPROTO, 4, lcp->want_auth);
|
||||
PutConfValue(LogLCP, &cp, cftypes, TY_AUTHPROTO, 4, lcp->want_auth);
|
||||
break;
|
||||
case PROTO_CHAP:
|
||||
PutConfValue(&cp, cftypes, TY_AUTHPROTO, 5, lcp->want_auth);
|
||||
PutConfValue(LogLCP, &cp, cftypes, TY_AUTHPROTO, 5, lcp->want_auth);
|
||||
#ifdef HAVE_DES
|
||||
*cp++ = VarMSChap ? 0x80 : 0x05; /* Use MSChap vs. RFC 1994 (MD5) */
|
||||
#else
|
||||
@ -402,7 +427,7 @@ LcpDecodeConfig(u_char * cp, int plen, int mode_type)
|
||||
while (plen >= sizeof(struct fsmconfig)) {
|
||||
type = *cp;
|
||||
length = cp[1];
|
||||
if (type <= TY_ACFCOMP)
|
||||
if (type < NCFTYPES)
|
||||
request = cftypes[type];
|
||||
else
|
||||
request = "???";
|
||||
@ -657,7 +682,7 @@ LcpDecodeConfig(u_char * cp, int plen, int mode_type)
|
||||
}
|
||||
break;
|
||||
default:
|
||||
LogPrintf(LogLCP, " ???[%02x]\n", type);
|
||||
LogPrintf(LogLCP, " %s[02x]\n", request, type);
|
||||
if (mode_type == MODE_REQ) {
|
||||
reqreject:
|
||||
memcpy(rejp, cp, length);
|
||||
|
@ -15,7 +15,7 @@
|
||||
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
*
|
||||
* $Id: lcp.h,v 1.10 1997/10/26 12:42:12 brian Exp $
|
||||
* $Id: lcp.h,v 1.11 1997/11/08 00:28:08 brian Exp $
|
||||
*
|
||||
* TODO:
|
||||
*/
|
||||
@ -55,12 +55,7 @@ struct lcpstate {
|
||||
#define TY_PROTOCOMP 7 /* Protocol-Field-Compression */
|
||||
#define TY_ACFCOMP 8 /* Address-and-Control-Field-Compression */
|
||||
#define TY_FCSALT 9 /* FCS-Alternatives */
|
||||
#define TY_SDP 10 /* Self-Dscribing-Padding */
|
||||
#define TY_NUMMODE 11 /* Numbered-Mode */
|
||||
#define TY_XXXXXX 12
|
||||
#define TY_CALLBACK 13 /* Callback */
|
||||
#define TY_YYYYYY 14
|
||||
#define TY_COMPFRAME 15 /* Compound-Frames */
|
||||
#define TY_SDP 10 /* Self-Describing-Padding */
|
||||
|
||||
struct lqrreq {
|
||||
u_char type;
|
||||
@ -78,6 +73,6 @@ extern void LcpSendProtoRej(u_char *, int);
|
||||
extern void LcpOpen(int);
|
||||
extern void LcpClose(void);
|
||||
extern void LcpDown(void);
|
||||
extern void PutConfValue(u_char **, char **, u_char, int, u_long);
|
||||
extern void PutConfValue(int, u_char **, char **, u_char, int, u_long);
|
||||
extern int ReportLcpStatus(void);
|
||||
extern void LcpInput(struct mbuf *);
|
||||
|
Loading…
Reference in New Issue
Block a user