diff options
-rw-r--r-- | sys/net/if_ppp.c | 8 | ||||
-rw-r--r-- | sys/net/ppp_comp.h | 6 | ||||
-rw-r--r-- | sys/net/ppp_deflate.c | 34 |
3 files changed, 40 insertions, 8 deletions
diff --git a/sys/net/if_ppp.c b/sys/net/if_ppp.c index 548480c..5d24e4b 100644 --- a/sys/net/if_ppp.c +++ b/sys/net/if_ppp.c @@ -69,7 +69,7 @@ * Paul Mackerras (paulus@cs.anu.edu.au). */ -/* $Id: if_ppp.c,v 1.52 1997/12/15 20:31:04 eivind Exp $ */ +/* $Id: if_ppp.c,v 1.53 1998/01/08 23:41:28 eivind Exp $ */ /* from if_sl.c,v 1.11 84/10/04 12:54:47 rick Exp */ /* from NetBSD: if_ppp.c,v 1.15.2.2 1994/07/28 05:17:58 cgd Exp */ @@ -182,6 +182,9 @@ static void pppdumpm __P((struct mbuf *m0)); extern struct compressor ppp_bsd_compress; extern struct compressor ppp_deflate; +#ifdef CI_BADDEFLATE +extern struct compressor ppp_baddeflate; +#endif static struct compressor *ppp_compressors[8] = { #if DO_BSD_COMPRESS && defined(PPP_BSDCOMP) @@ -189,6 +192,9 @@ static struct compressor *ppp_compressors[8] = { #endif #if DO_DEFLATE && defined(PPP_DEFLATE) &ppp_deflate, +#ifdef CI_BADDEFLATE + &ppp_baddeflate, +#endif #endif NULL }; diff --git a/sys/net/ppp_comp.h b/sys/net/ppp_comp.h index 2d7e08e..2b8fe6c 100644 --- a/sys/net/ppp_comp.h +++ b/sys/net/ppp_comp.h @@ -24,7 +24,7 @@ * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, * OR MODIFICATIONS. * - * $Id: ppp_comp.h,v 1.4 1997/02/22 09:41:11 peter Exp $ + * $Id: ppp_comp.h,v 1.5 1997/08/19 14:10:46 peter Exp $ */ #ifndef _NET_PPP_COMP_H @@ -141,7 +141,9 @@ struct compressor { /* * Definitions for Deflate. */ -#define CI_DEFLATE 24 /* config option for Deflate */ +#define CI_DEFLATE 26 /* config option for Deflate */ +/* XXX ppp-2.3.x ships with CI_DEFLATE == 24, but that's Magnalink!! */ +#define CI_BADDEFLATE 24 /* config option for Magnalink */ #define CILEN_DEFLATE 4 /* length of its config option */ #define DEFLATE_MIN_SIZE 8 diff --git a/sys/net/ppp_deflate.c b/sys/net/ppp_deflate.c index 08d1f22..16cec0d 100644 --- a/sys/net/ppp_deflate.c +++ b/sys/net/ppp_deflate.c @@ -1,4 +1,4 @@ -/* $Id: ppp_deflate.c,v 1.6 1997/10/28 15:58:32 bde Exp $ */ +/* $Id: ppp_deflate.c,v 1.7 1998/03/21 20:56:14 peter Exp $ */ /* * ppp_deflate.c - interface the zlib procedures for Deflate compression @@ -97,6 +97,26 @@ struct compressor ppp_deflate = { z_incomp, /* incomp */ z_comp_stats, /* decomp_stat */ }; +#ifdef CI_BADDEFLATE +struct compressor ppp_baddeflate = { + CI_BADDEFLATE, /* compress_proto */ + z_comp_alloc, /* comp_alloc */ + z_comp_free, /* comp_free */ + z_comp_init, /* comp_init */ + z_comp_reset, /* comp_reset */ + z_compress, /* compress */ + z_comp_stats, /* comp_stat */ + z_decomp_alloc, /* decomp_alloc */ + z_decomp_free, /* decomp_free */ + z_decomp_init, /* decomp_init */ + z_decomp_reset, /* decomp_reset */ + z_decompress, /* decompress */ + z_incomp, /* incomp */ + z_comp_stats, /* decomp_stat */ +}; +#else +#define CI_BADDEFLATE CI_DEFLATE /* reduce #ifdef's, let gcc optimize */ +#endif /* * Space allocation and freeing routines for use by zlib routines. @@ -131,7 +151,8 @@ z_comp_alloc(options, opt_len) struct deflate_state *state; int w_size; - if (opt_len != CILEN_DEFLATE || options[0] != CI_DEFLATE + if (opt_len != CILEN_DEFLATE + || (options[0] != CI_DEFLATE && options[0] != CI_BADDEFLATE) || options[1] != CILEN_DEFLATE || DEFLATE_METHOD(options[2]) != DEFLATE_METHOD_VAL || options[3] != DEFLATE_CHK_SEQUENCE) @@ -177,7 +198,8 @@ z_comp_init(arg, options, opt_len, unit, hdrlen, debug) { struct deflate_state *state = (struct deflate_state *) arg; - if (opt_len < CILEN_DEFLATE || options[0] != CI_DEFLATE + if (opt_len < CILEN_DEFLATE + || (options[0] != CI_DEFLATE && options[0] != CI_BADDEFLATE) || options[1] != CILEN_DEFLATE || DEFLATE_METHOD(options[2]) != DEFLATE_METHOD_VAL || DEFLATE_SIZE(options[2]) != state->w_size @@ -362,7 +384,8 @@ z_decomp_alloc(options, opt_len) struct deflate_state *state; int w_size; - if (opt_len != CILEN_DEFLATE || options[0] != CI_DEFLATE + if (opt_len != CILEN_DEFLATE + || (options[0] != CI_DEFLATE && options[0] != CI_BADDEFLATE) || options[1] != CILEN_DEFLATE || DEFLATE_METHOD(options[2]) != DEFLATE_METHOD_VAL || options[3] != DEFLATE_CHK_SEQUENCE) @@ -407,7 +430,8 @@ z_decomp_init(arg, options, opt_len, unit, hdrlen, mru, debug) { struct deflate_state *state = (struct deflate_state *) arg; - if (opt_len < CILEN_DEFLATE || options[0] != CI_DEFLATE + if (opt_len < CILEN_DEFLATE + || (options[0] != CI_DEFLATE && options[0] != CI_BADDEFLATE) || options[1] != CILEN_DEFLATE || DEFLATE_METHOD(options[2]) != DEFLATE_METHOD_VAL || DEFLATE_SIZE(options[2]) != state->w_size |