diff options
author | amurai <amurai@FreeBSD.org> | 1995-02-26 12:18:08 +0000 |
---|---|---|
committer | amurai <amurai@FreeBSD.org> | 1995-02-26 12:18:08 +0000 |
commit | eeb422fed8735188e4e141578d0383ae57ba8343 (patch) | |
tree | d05da3a88d3d54962fad8582d501f1b7ad9500b9 /usr.sbin/ppp/ipcp.c | |
parent | 7c16fe40ea66e6edc77ed310b654360adf11b9f9 (diff) | |
download | FreeBSD-src-eeb422fed8735188e4e141578d0383ae57ba8343.zip FreeBSD-src-eeb422fed8735188e4e141578d0383ae57ba8343.tar.gz |
New user Process PPP based on iij-ppp0.94beta2.
o Supporting SYNC SIO device (But need a device driver)
- add "set speed sync"
o Fixing bug for Predictor-1 function.
o Add new parameter that re-sent interval for set timeout commands.
o Improving RTT (Round Trip Time) and reducing processor time.
- Previous Timer service was using polling, and now using
SIGALRM ;-)
- A 0.94beta2 will not work correctly....
-- Follows are additinal feature not including 0.94beta2
o Support Proxy ARP
- add "enable/disable proxy" commands
o Marging common routine in CHAP/PAP.
o Enhancing LCP/IPCP log information.
o Support local Authfication connection on port 300x and tty.
- You can set up pair of your "hostname -s" and
password in ppp.secret. if either ppp.secret file nor
your hostname line don't exist, It will notify a message
and working as same as previous version.(Backword compatibility)
- If you did set up them, It's allow connection but nothing to do
except help and passwd command.
- add "passwd yourpasswd" commands
o Support afilter - keep Alive filter that a packet can send/receiving
according to ifilter/ofilter but doesn't count it as preventing idle
timer expires.
- Same syntax of other filters.
o Fixing bugs reported by current user for previous one. Thanks !!
Reviewed by: Atsushi Murai (amurai@spec.co.jp)
Diffstat (limited to 'usr.sbin/ppp/ipcp.c')
-rw-r--r-- | usr.sbin/ppp/ipcp.c | 36 |
1 files changed, 17 insertions, 19 deletions
diff --git a/usr.sbin/ppp/ipcp.c b/usr.sbin/ppp/ipcp.c index 02187f3..e13fa20 100644 --- a/usr.sbin/ppp/ipcp.c +++ b/usr.sbin/ppp/ipcp.c @@ -18,7 +18,7 @@ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. * * $Id:$ - * + * * TODO: * o More RFC1772 backwoard compatibility */ @@ -43,15 +43,15 @@ extern struct in_addr ifnetmask; struct ipcpstate IpcpInfo; struct in_range DefMyAddress, DefHisAddress; -static void IpcpSendConfigReq(struct fsm *); -static void IpcpSendTerminateAck(struct fsm *); -static void IpcpSendTerminateReq(struct fsm *); -static void IpcpDecodeConfig(); -static void IpcpLayerStart(struct fsm *); -static void IpcpLayerFinish(struct fsm *); -static void IpcpLayerUp(struct fsm *); -static void IpcpLayerDown(struct fsm *); -static void IpcpInitRestartCounter(struct fsm *); +static void IpcpSendConfigReq __P((struct fsm *)); +static void IpcpSendTerminateAck __P((struct fsm *)); +static void IpcpSendTerminateReq __P((struct fsm *)); +static void IpcpDecodeConfig __P((u_char *, int, int)); +static void IpcpLayerStart __P((struct fsm *)); +static void IpcpLayerFinish __P((struct fsm *)); +static void IpcpLayerUp __P((struct fsm *)); +static void IpcpLayerDown __P((struct fsm *)); +static void IpcpInitRestartCounter __P((struct fsm *)); static struct pppTimer IpcpReportTimer; @@ -174,7 +174,7 @@ static void IpcpInitRestartCounter(fp) struct fsm *fp; { - fp->FsmTimer.load = 3 * SECTICKS; + fp->FsmTimer.load = VarRetryTimeout * SECTICKS; fp->restart = 5; } @@ -187,7 +187,8 @@ struct fsm *fp; cp = ReqBuff; LogPrintf(LOG_LCP, "%s: SendConfigReq\n", fp->name); - PutConfValue(&cp, cftypes, TY_IPADDR, 6, ntohl(icp->want_ipaddr.s_addr)); + if (!DEV_IS_SYNC || !REJECTED(icp, TY_IPADDR)) + PutConfValue(&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); @@ -288,20 +289,17 @@ struct in_addr ipaddr; } static void -IpcpDecodeConfig(bp, mode) -struct mbuf *bp; +IpcpDecodeConfig(cp, plen, mode) +u_char *cp; +int plen; int mode; { - u_char *cp; - int plen, type, length; + int type, length; u_long *lp, compproto; struct compreq *pcomp; struct in_addr ipaddr, dstipaddr; char tbuff[100]; - plen = plength(bp); - - cp = MBUF_CTOP(bp); ackp = AckBuff; nakp = NakBuff; rejp = RejBuff; |