pkgsrc/net/pppd/patches/patch-bg
2008-07-29 21:02:23 +00:00

120 lines
3.5 KiB
Text

$NetBSD: patch-bg,v 1.2 2008/07/29 21:02:23 tnn Exp $
--- pppdump/deflate.c.orig 2004-02-02 04:36:46.000000000 +0100
+++ pppdump/deflate.c
@@ -41,8 +41,14 @@
#include <stddef.h>
#include <stdlib.h>
#include <string.h>
+#include "pppdump.h"
+#ifdef __NetBSD__
+#include <net/ppp_defs.h>
+#include <net/ppp-comp.h>
+#else
#include "ppp_defs.h"
#include "ppp-comp.h"
+#endif
#include "zlib.h"
#if DO_DEFLATE
@@ -71,9 +77,8 @@ static void *z_decomp_alloc __P((u_char
static void z_decomp_free __P((void *state));
static int z_decomp_init __P((void *state, u_char *options, int opt_len,
int unit, int hdrlen, int mru, int debug));
-static void z_incomp __P((void *state, u_char *dmsg, int len));
-static int z_decompress __P((void *state, u_char *cmp, int inlen,
- u_char *dmp, int *outlenp));
+static void z_incomp __P((void *state, PACKETPTR mi));
+static int z_decompress __P((void *state, PACKETPTR mi, PACKETPTR *mo));
static void z_decomp_reset __P((void *state));
static void z_comp_stats __P((void *state, struct compstat *stats));
@@ -82,6 +87,12 @@ static void z_comp_stats __P((void *stat
*/
struct compressor ppp_deflate = {
CI_DEFLATE, /* compress_proto */
+ NULL, /* comp_alloc */
+ NULL, /* comp_free */
+ NULL, /* comp_init */
+ NULL, /* comp_reset */
+ NULL, /* comp_compress */
+ NULL, /* comp_stat */
z_decomp_alloc, /* decomp_alloc */
z_decomp_free, /* decomp_free */
z_decomp_init, /* decomp_init */
@@ -230,17 +241,17 @@ z_decomp_reset(arg)
* compression, even though they are detected by inspecting the input.
*/
static int
-z_decompress(arg, mi, inlen, mo, outlenp)
+z_decompress(arg, mi, mo)
void *arg;
- u_char *mi, *mo;
- int inlen, *outlenp;
+ PACKETPTR mi;
+ PACKETPTR *mo;
{
struct deflate_state *state = (struct deflate_state *) arg;
u_char *rptr, *wptr;
- int rlen, olen, ospace;
- int seq, i, flush, r, decode_proto;
+ int rlen, olen;
+ int seq, r;
- rptr = mi;
+ rptr = mi->buf;
if (*rptr == 0)
++rptr;
++rptr;
@@ -261,9 +272,9 @@ z_decompress(arg, mi, inlen, mo, outlenp
/*
* Set up to call inflate.
*/
- wptr = mo;
+ wptr = (*mo)->buf;
state->strm.next_in = rptr;
- state->strm.avail_in = mi + inlen - rptr;
+ state->strm.avail_in = mi->buf + mi->len - rptr;
rlen = state->strm.avail_in + PPP_HDRLEN + DEFLATE_OVHD;
state->strm.next_out = wptr;
state->strm.avail_out = state->mru + 2;
@@ -278,7 +289,7 @@ z_decompress(arg, mi, inlen, mo, outlenp
return DECOMP_FATALERROR;
}
olen = state->mru + 2 - state->strm.avail_out;
- *outlenp = olen;
+ (*mo)->len = olen;
if ((wptr[0] & 1) != 0)
++olen; /* for suppressed protocol high byte */
@@ -302,10 +313,9 @@ z_decompress(arg, mi, inlen, mo, outlenp
* Incompressible data has arrived - add it to the history.
*/
static void
-z_incomp(arg, mi, mlen)
+z_incomp(arg, mi)
void *arg;
- u_char *mi;
- int mlen;
+ PACKETPTR mi;
{
struct deflate_state *state = (struct deflate_state *) arg;
u_char *rptr;
@@ -314,7 +324,7 @@ z_incomp(arg, mi, mlen)
/*
* Check that the protocol is one we handle.
*/
- rptr = mi;
+ rptr = mi->buf;
proto = rptr[0];
if ((proto & 1) == 0)
proto = (proto << 8) + rptr[1];
@@ -325,7 +335,7 @@ z_incomp(arg, mi, mlen)
if (rptr[0] == 0)
++rptr;
- rlen = mi + mlen - rptr;
+ rlen = mi->buf + mi->len - rptr;
state->strm.next_in = rptr;
state->strm.avail_in = rlen;
r = inflateIncomp(&state->strm);