diff options
author | brian <brian@FreeBSD.org> | 2001-06-18 15:00:22 +0000 |
---|---|---|
committer | brian <brian@FreeBSD.org> | 2001-06-18 15:00:22 +0000 |
commit | e0acd9811e2350c85429fd10644125ff61d45f07 (patch) | |
tree | b58f089492e9f96c30634a8674bc53fab1f5a1eb /usr.sbin/ppp/ip.c | |
parent | 14263ff751db1d878bad974a406737533ea6b70c (diff) | |
download | FreeBSD-src-e0acd9811e2350c85429fd10644125ff61d45f07.zip FreeBSD-src-e0acd9811e2350c85429fd10644125ff61d45f07.tar.gz |
Add support for stateful MPPE (microsoft encryption) providing
encryption compatibility with Windows 2000. Stateful encryption
uses less CPU but is bad on lossy transports.
The ``set mppe'' command has been expanded. If it's used with any
arguments, ppp will insist on encryption, closing LCP if the other
end refuses.
Unfortunately, Microsoft have abused the CCP reset request so that
receiving a reset request does not result in a reset ack when using
MPPE...
Sponsored by: Monzoon Networks AG and FreeBSD Services Limited
Diffstat (limited to 'usr.sbin/ppp/ip.c')
-rw-r--r-- | usr.sbin/ppp/ip.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/usr.sbin/ppp/ip.c b/usr.sbin/ppp/ip.c index 5f666cc..c33cb25 100644 --- a/usr.sbin/ppp/ip.c +++ b/usr.sbin/ppp/ip.c @@ -906,6 +906,14 @@ ip_PushPacket(struct link *l, struct bundle *bundle) if (ipcp->fsm.state != ST_OPENED) return 0; + /* + * If ccp is not open but is required, do nothing. + */ + if (l->ccp.fsm.state != ST_OPENED && ccp_Required(&l->ccp)) { + log_Printf(LogPHASE, "%s: Not transmitting... waiting for CCP\n", l->name); + return 0; + } + queue = ipcp->Queue + IPCP_QUEUES(ipcp) - 1; do { if (queue->top) { |