summaryrefslogtreecommitdiffstats
path: root/usr.sbin/ppp/deflate.c
diff options
context:
space:
mode:
authorbrian <brian@FreeBSD.org>2001-06-18 15:00:22 +0000
committerbrian <brian@FreeBSD.org>2001-06-18 15:00:22 +0000
commite0acd9811e2350c85429fd10644125ff61d45f07 (patch)
treeb58f089492e9f96c30634a8674bc53fab1f5a1eb /usr.sbin/ppp/deflate.c
parent14263ff751db1d878bad974a406737533ea6b70c (diff)
downloadFreeBSD-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/deflate.c')
-rw-r--r--usr.sbin/ppp/deflate.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/usr.sbin/ppp/deflate.c b/usr.sbin/ppp/deflate.c
index 8908f12..340d048 100644
--- a/usr.sbin/ppp/deflate.c
+++ b/usr.sbin/ppp/deflate.c
@@ -57,7 +57,7 @@ static u_char EMPTY_BLOCK[4] = { 0x00, 0x00, 0xff, 0xff };
#define DEFLATE_CHUNK_LEN (1536 - sizeof(struct mbuf))
-static void
+static int
DeflateResetOutput(void *v)
{
struct deflate_state *state = (struct deflate_state *)v;
@@ -66,6 +66,8 @@ DeflateResetOutput(void *v)
state->uncomp_rec = 0;
deflateReset(&state->cx);
log_Printf(LogCCP, "Deflate: Output channel reset\n");
+
+ return 1; /* Ask FSM to ACK */
}
static struct mbuf *
@@ -451,7 +453,7 @@ DeflateInitOptsOutput(struct lcp_opt *o, const struct ccp_config *cfg)
}
static int
-DeflateSetOptsOutput(struct lcp_opt *o)
+DeflateSetOptsOutput(struct lcp_opt *o, const struct ccp_config *cfg)
{
if (o->len != 4 || (o->data[0] & 15) != 8 || o->data[1] != '\0')
return MODE_REJ;
@@ -554,7 +556,8 @@ const struct ccp_algorithm PppdDeflateAlgorithm = {
TY_PPPD_DEFLATE, /* Older versions of pppd expected this ``type'' */
CCP_NEG_DEFLATE24,
DeflateDispOpts,
- ccp_IsUsable,
+ ccp_DefaultUsable,
+ ccp_DefaultRequired,
{
DeflateSetOptsInput,
DeflateInitInput,
@@ -577,7 +580,8 @@ const struct ccp_algorithm DeflateAlgorithm = {
TY_DEFLATE, /* rfc 1979 */
CCP_NEG_DEFLATE,
DeflateDispOpts,
- ccp_IsUsable,
+ ccp_DefaultUsable,
+ ccp_DefaultRequired,
{
DeflateSetOptsInput,
DeflateInitInput,
OpenPOWER on IntegriCloud