summaryrefslogtreecommitdiff
path: root/net/pppd/patches/patch-bg
blob: 931e5b64164fae5305ca09a396820ff858855260 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
$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);