head 1.1; branch 1.1.1; access; symbols pkgsrc-2026Q1:1.1.1.1.0.174 pkgsrc-2026Q1-base:1.1.1.1 pkgsrc-2025Q4:1.1.1.1.0.172 pkgsrc-2025Q4-base:1.1.1.1 pkgsrc-2025Q3:1.1.1.1.0.170 pkgsrc-2025Q3-base:1.1.1.1 pkgsrc-2025Q2:1.1.1.1.0.168 pkgsrc-2025Q2-base:1.1.1.1 pkgsrc-2025Q1:1.1.1.1.0.166 pkgsrc-2025Q1-base:1.1.1.1 pkgsrc-2024Q4:1.1.1.1.0.164 pkgsrc-2024Q4-base:1.1.1.1 pkgsrc-2024Q3:1.1.1.1.0.162 pkgsrc-2024Q3-base:1.1.1.1 pkgsrc-2024Q2:1.1.1.1.0.160 pkgsrc-2024Q2-base:1.1.1.1 pkgsrc-2024Q1:1.1.1.1.0.158 pkgsrc-2024Q1-base:1.1.1.1 pkgsrc-2023Q4:1.1.1.1.0.156 pkgsrc-2023Q4-base:1.1.1.1 pkgsrc-2023Q3:1.1.1.1.0.154 pkgsrc-2023Q3-base:1.1.1.1 pkgsrc-2023Q2:1.1.1.1.0.152 pkgsrc-2023Q2-base:1.1.1.1 pkgsrc-2023Q1:1.1.1.1.0.150 pkgsrc-2023Q1-base:1.1.1.1 pkgsrc-2022Q4:1.1.1.1.0.148 pkgsrc-2022Q4-base:1.1.1.1 pkgsrc-2022Q3:1.1.1.1.0.146 pkgsrc-2022Q3-base:1.1.1.1 pkgsrc-2022Q2:1.1.1.1.0.144 pkgsrc-2022Q2-base:1.1.1.1 pkgsrc-2022Q1:1.1.1.1.0.142 pkgsrc-2022Q1-base:1.1.1.1 pkgsrc-2021Q4:1.1.1.1.0.140 pkgsrc-2021Q4-base:1.1.1.1 pkgsrc-2021Q3:1.1.1.1.0.138 pkgsrc-2021Q3-base:1.1.1.1 pkgsrc-2021Q2:1.1.1.1.0.136 pkgsrc-2021Q2-base:1.1.1.1 pkgsrc-2021Q1:1.1.1.1.0.134 pkgsrc-2021Q1-base:1.1.1.1 pkgsrc-2020Q4:1.1.1.1.0.132 pkgsrc-2020Q4-base:1.1.1.1 pkgsrc-2020Q3:1.1.1.1.0.130 pkgsrc-2020Q3-base:1.1.1.1 pkgsrc-2020Q2:1.1.1.1.0.126 pkgsrc-2020Q2-base:1.1.1.1 pkgsrc-2020Q1:1.1.1.1.0.106 pkgsrc-2020Q1-base:1.1.1.1 pkgsrc-2019Q4:1.1.1.1.0.128 pkgsrc-2019Q4-base:1.1.1.1 pkgsrc-2019Q3:1.1.1.1.0.124 pkgsrc-2019Q3-base:1.1.1.1 pkgsrc-2019Q2:1.1.1.1.0.122 pkgsrc-2019Q2-base:1.1.1.1 pkgsrc-2019Q1:1.1.1.1.0.120 pkgsrc-2019Q1-base:1.1.1.1 pkgsrc-2018Q4:1.1.1.1.0.118 pkgsrc-2018Q4-base:1.1.1.1 pkgsrc-2018Q3:1.1.1.1.0.116 pkgsrc-2018Q3-base:1.1.1.1 pkgsrc-2018Q2:1.1.1.1.0.114 pkgsrc-2018Q2-base:1.1.1.1 pkgsrc-2018Q1:1.1.1.1.0.112 pkgsrc-2018Q1-base:1.1.1.1 pkgsrc-2017Q4:1.1.1.1.0.110 pkgsrc-2017Q4-base:1.1.1.1 pkgsrc-2017Q3:1.1.1.1.0.108 pkgsrc-2017Q3-base:1.1.1.1 pkgsrc-2017Q2:1.1.1.1.0.104 pkgsrc-2017Q2-base:1.1.1.1 pkgsrc-2017Q1:1.1.1.1.0.102 pkgsrc-2017Q1-base:1.1.1.1 pkgsrc-2016Q4:1.1.1.1.0.100 pkgsrc-2016Q4-base:1.1.1.1 pkgsrc-2016Q3:1.1.1.1.0.98 pkgsrc-2016Q3-base:1.1.1.1 pkgsrc-2016Q2:1.1.1.1.0.96 pkgsrc-2016Q2-base:1.1.1.1 pkgsrc-2016Q1:1.1.1.1.0.94 pkgsrc-2016Q1-base:1.1.1.1 pkgsrc-2015Q4:1.1.1.1.0.92 pkgsrc-2015Q4-base:1.1.1.1 pkgsrc-2015Q3:1.1.1.1.0.90 pkgsrc-2015Q3-base:1.1.1.1 pkgsrc-2015Q2:1.1.1.1.0.88 pkgsrc-2015Q2-base:1.1.1.1 pkgsrc-2015Q1:1.1.1.1.0.86 pkgsrc-2015Q1-base:1.1.1.1 pkgsrc-2014Q4:1.1.1.1.0.84 pkgsrc-2014Q4-base:1.1.1.1 pkgsrc-2014Q3:1.1.1.1.0.82 pkgsrc-2014Q3-base:1.1.1.1 pkgsrc-2014Q2:1.1.1.1.0.80 pkgsrc-2014Q2-base:1.1.1.1 pkgsrc-2014Q1:1.1.1.1.0.78 pkgsrc-2014Q1-base:1.1.1.1 pkgsrc-2013Q4:1.1.1.1.0.76 pkgsrc-2013Q4-base:1.1.1.1 pkgsrc-2013Q3:1.1.1.1.0.74 pkgsrc-2013Q3-base:1.1.1.1 pkgsrc-2013Q2:1.1.1.1.0.72 pkgsrc-2013Q2-base:1.1.1.1 pkgsrc-2013Q1:1.1.1.1.0.70 pkgsrc-2013Q1-base:1.1.1.1 pkgsrc-2012Q4:1.1.1.1.0.68 pkgsrc-2012Q4-base:1.1.1.1 pkgsrc-2012Q3:1.1.1.1.0.66 pkgsrc-2012Q3-base:1.1.1.1 pkgsrc-2012Q2:1.1.1.1.0.64 pkgsrc-2012Q2-base:1.1.1.1 pkgsrc-2012Q1:1.1.1.1.0.62 pkgsrc-2012Q1-base:1.1.1.1 pkgsrc-2011Q4:1.1.1.1.0.60 pkgsrc-2011Q4-base:1.1.1.1 pkgsrc-2011Q3:1.1.1.1.0.58 pkgsrc-2011Q3-base:1.1.1.1 pkgsrc-2011Q2:1.1.1.1.0.56 pkgsrc-2011Q2-base:1.1.1.1 pkgsrc-2011Q1:1.1.1.1.0.54 pkgsrc-2011Q1-base:1.1.1.1 pkgsrc-2010Q4:1.1.1.1.0.52 pkgsrc-2010Q4-base:1.1.1.1 pkgsrc-2010Q3:1.1.1.1.0.50 pkgsrc-2010Q3-base:1.1.1.1 pkgsrc-2010Q2:1.1.1.1.0.48 pkgsrc-2010Q2-base:1.1.1.1 pkgsrc-2010Q1:1.1.1.1.0.46 pkgsrc-2010Q1-base:1.1.1.1 pkgsrc-2009Q4:1.1.1.1.0.44 pkgsrc-2009Q4-base:1.1.1.1 pkgsrc-2009Q3:1.1.1.1.0.42 pkgsrc-2009Q3-base:1.1.1.1 pkgsrc-2009Q2:1.1.1.1.0.40 pkgsrc-2009Q2-base:1.1.1.1 pkgsrc-2009Q1:1.1.1.1.0.38 pkgsrc-2009Q1-base:1.1.1.1 pkgsrc-2008Q4:1.1.1.1.0.36 pkgsrc-2008Q4-base:1.1.1.1 pkgsrc-2008Q3:1.1.1.1.0.34 pkgsrc-2008Q3-base:1.1.1.1 cube-native-xorg:1.1.1.1.0.32 cube-native-xorg-base:1.1.1.1 pkgsrc-2008Q2:1.1.1.1.0.30 pkgsrc-2008Q2-base:1.1.1.1 cwrapper:1.1.1.1.0.28 pkgsrc-2008Q1:1.1.1.1.0.26 pkgsrc-2008Q1-base:1.1.1.1 pkgsrc-2007Q4:1.1.1.1.0.24 pkgsrc-2007Q4-base:1.1.1.1 pkgsrc-2007Q3:1.1.1.1.0.22 pkgsrc-2007Q3-base:1.1.1.1 pkgsrc-2007Q2:1.1.1.1.0.20 pkgsrc-2007Q2-base:1.1.1.1 pkgsrc-2007Q1:1.1.1.1.0.18 pkgsrc-2007Q1-base:1.1.1.1 pkgsrc-2006Q4:1.1.1.1.0.16 pkgsrc-2006Q4-base:1.1.1.1 pkgsrc-2006Q3:1.1.1.1.0.14 pkgsrc-2006Q3-base:1.1.1.1 pkgsrc-2006Q2:1.1.1.1.0.12 pkgsrc-2006Q2-base:1.1.1.1 pkgsrc-2006Q1:1.1.1.1.0.10 pkgsrc-2006Q1-base:1.1.1.1 pkgsrc-2005Q4:1.1.1.1.0.8 pkgsrc-2005Q4-base:1.1.1.1 pkgsrc-2005Q3:1.1.1.1.0.6 pkgsrc-2005Q3-base:1.1.1.1 pkgsrc-2005Q2:1.1.1.1.0.4 pkgsrc-2005Q2-base:1.1.1.1 pkgsrc-2005Q1:1.1.1.1.0.2 pkgsrc-2005Q1-base:1.1.1.1 pkgsrc-base:1.1.1.1 TNF:1.1.1; locks; strict; comment @# @; 1.1 date 2005.01.02.02.51.44; author cube; state Exp; branches 1.1.1.1; next ; 1.1.1.1 date 2005.01.02.02.51.44; author cube; state Exp; branches; next ; desc @@ 1.1 log @Initial revision @ text @$NetBSD$ --- pppdump/bsd-comp.c.orig 2004-02-02 04:36:46.000000000 +0100 +++ pppdump/bsd-comp.c @@@@ -46,8 +46,15 @@@@ #include #include #include +#include "pppdump.h" +#ifdef __NetBSD__ +#include +#include +#else #include "ppp_defs.h" #include "ppp-comp.h" +#endif + #if DO_BSD_COMPRESS @@@@ -128,9 +135,8 @@@@ static void *bsd_decomp_alloc __P((u_cha static void bsd_free __P((void *state)); static int bsd_decomp_init __P((void *state, u_char *options, int opt_len, int unit, int hdrlen, int mru, int debug)); -static void bsd_incomp __P((void *state, u_char *dmsg, int len)); -static int bsd_decompress __P((void *state, u_char *cmp, int inlen, - u_char *dmp, int *outlen)); +static void bsd_incomp __P((void *state, PACKETPTR in)); +static int bsd_decompress __P((void *state, PACKETPTR in, PACKETPTR *out)); static void bsd_reset __P((void *state)); static void bsd_comp_stats __P((void *state, struct compstat *stats)); @@@@ -139,6 +145,12 @@@@ static void bsd_comp_stats __P((void *st */ struct compressor ppp_bsd_compress = { CI_BSD_COMPRESS, /* compress_proto */ + NULL, /* comp_alloc */ + NULL, /* comp_free */ + NULL, /* comp_init */ + NULL, /* comp_reset */ + NULL, /* comp_compress */ + NULL, /* comp_stat */ bsd_decomp_alloc, /* decomp_alloc */ bsd_free, /* decomp_free */ bsd_decomp_init, /* decomp_init */ @@@@ -170,6 +182,12 @@@@ struct compressor ppp_bsd_compress = { #define RATIO_SCALE (1<>RATIO_SCALE_LOG) +static void bsd_clear __P((struct bsd_db *)); +static int bsd_check __P((struct bsd_db *)); +static void *bsd_alloc __P((u_char *, int, int)); +static int bsd_init __P((struct bsd_db *, u_char *, int, int, int, int, + int, int)); + /* * clear the dictionary */ @@@@ -257,7 +275,7 @@@@ bsd_comp_stats(state, stats) stats->ratio = db->in_count; out = db->bytes_out; if (stats->ratio <= 0x7fffff) - stats->ratio <<= 8; + stats->ratio = ((stats->ratio) << 8); else out >>= 8; if (out != 0) @@@@ -383,7 +401,7 @@@@ bsd_init(db, options, opt_len, unit, hdr || options[0] != CI_BSD_COMPRESS || options[1] != CILEN_BSD_COMPRESS || BSD_VERSION(options[2]) != BSD_CURRENT_VERSION || BSD_NBITS(options[2]) != db->maxbits - || decomp && db->lens == NULL) + || (decomp && db->lens == NULL)) return 0; if (decomp) { @@@@ -424,10 +442,9 @@@@ bsd_decomp_init(state, options, opt_len, * incompressible data by pretending to compress the incoming data. */ static void -bsd_incomp(state, dmsg, mlen) +bsd_incomp(state, in) void *state; - u_char *dmsg; - int mlen; + PACKETPTR in; { struct bsd_db *db = (struct bsd_db *) state; u_int hshift = db->hshift; @@@@ -442,11 +459,11 @@@@ bsd_incomp(state, dmsg, mlen) u_char *rptr; u_int ent; - rptr = dmsg; + rptr = in->buf; ent = rptr[0]; /* get the protocol */ if (ent == 0) { ++rptr; - --mlen; + in->len--; ent = rptr[0]; } if ((ent & 1) == 0 || ent < 0x21 || ent > 0xf9) @@@@ -455,7 +472,7 @@@@ bsd_incomp(state, dmsg, mlen) db->seqno++; ilen = 1; /* count the protocol as 1 byte */ ++rptr; - slen = dmsg + mlen - rptr; + slen = in->buf + in->len - rptr; ilen += slen; for (; slen > 0; --slen) { c = *rptr++; @@@@ -544,10 +561,10 @@@@ bsd_incomp(state, dmsg, mlen) * compression, even though they are detected by inspecting the input. */ static int -bsd_decompress(state, cmsg, inlen, dmp, outlenp) +bsd_decompress(state, in, out) void *state; - u_char *cmsg, *dmp; - int inlen, *outlenp; + PACKETPTR in; + PACKETPTR *out; { struct bsd_db *db = (struct bsd_db *) state; u_int max_ent = db->max_ent; @@@@ -556,19 +573,19 @@@@ bsd_decompress(state, cmsg, inlen, dmp, u_int n_bits = db->n_bits; u_int tgtbitno = 32-n_bits; /* bitno when we have a code */ struct bsd_dict *dictp; - int explen, i, seq, len; + int explen, seq, len; u_int incode, oldcode, finchar; u_char *p, *rptr, *wptr; int ilen; - int dlen, space, codelen, extra; + int dlen, codelen, extra; - rptr = cmsg; + rptr = in->buf; if (*rptr == 0) ++rptr; ++rptr; /* skip protocol (assumed 0xfd) */ seq = (rptr[0] << 8) + rptr[1]; rptr += BSD_OVHD; - ilen = len = cmsg + inlen - rptr; + ilen = len = in->buf + in->len - rptr; /* * Check the sequence number and give up if it is not what we expect. @@@@ -580,7 +597,7 @@@@ bsd_decompress(state, cmsg, inlen, dmp, return DECOMP_ERROR; } - wptr = dmp + db->hdrlen; + wptr = (*out)->buf + db->hdrlen; oldcode = CLEAR; explen = 0; @@@@ -616,7 +633,7 @@@@ bsd_decompress(state, cmsg, inlen, dmp, } if (incode > max_ent + 2 || incode > db->maxmaxcode - || incode > max_ent && oldcode == CLEAR) { + || (incode > max_ent && oldcode == CLEAR)) { if (db->debug) { printf("bsd_decomp%d: bad code 0x%x oldcode=0x%x ", db->unit, incode, oldcode); @@@@ -729,7 +746,7 @@@@ bsd_decompress(state, cmsg, inlen, dmp, } oldcode = incode; } - *outlenp = wptr - (dmp + db->hdrlen); + (*out)->len = wptr - ((*out)->buf + db->hdrlen); /* * Keep the checkpoint right so that incompressible packets @ 1.1.1.1 log @Initial import of pppd, version 2.4.3, into the NetBSD Package Collection. The PPP Daemon is the userland part of the Point-to-Point Protocol. It works in combination with a dedicated kernel network interface usually named ppp. PPP is a very extensible protocol and pppd supports a large number of options, including compression (through various algorithms), cryptography (Microsoft's MPPE) and authentication (PAP, CHAP, Microsoft CHAP), provided the kernel has the relevant back-ends in some cases. @ text @@