-/* $Id: ppp-deflate.c,v 1.2 1996/04/04 03:23:09 paulus Exp $ */
+/* $Id: ppp-deflate.c,v 1.7 1997/11/27 06:06:31 paulus Exp $ */
/*
* ppp_deflate.c - interface the zlib procedures for Deflate compression
#if DO_DEFLATE
+#define DEFLATE_DEBUG 1
+
/*
* State for a Deflate (de)compressor.
*/
#define DEFLATE_OVHD 2 /* Deflate overhead/packet */
static void *zalloc __P((void *, u_int items, u_int size));
-static void zfree __P((void *, void *ptr, u_int nb));
+static void zfree __P((void *, void *ptr));
static void *z_comp_alloc __P((u_char *options, int opt_len));
static void *z_decomp_alloc __P((u_char *options, int opt_len));
static void z_comp_free __P((void *state));
}
void
-zfree(notused, ptr, nbytes)
+zfree(notused, ptr)
void *notused;
void *ptr;
- u_int nbytes;
{
FREE(ptr, M_DEVBUF);
}
state->strm.zalloc = zalloc;
state->strm.zfree = zfree;
if (deflateInit2(&state->strm, Z_DEFAULT_COMPRESSION, DEFLATE_METHOD_VAL,
- -w_size, 8, Z_DEFAULT_STRATEGY, DEFLATE_OVHD+2) != Z_OK) {
+ -w_size, 8, Z_DEFAULT_STRATEGY) != Z_OK) {
FREE(state, M_DEVBUF);
return NULL;
}
for (;;) {
r = inflate(&state->strm, flush);
if (r != Z_OK) {
+#if !DEFLATE_DEBUG
if (state->debug)
+#endif
printf("z_decompress%d: inflate returned %d (%s)\n",
state->unit, r, (state->strm.msg? state->strm.msg: ""));
m_freem(mo_head);
return DECOMP_ERROR;
}
olen += (mo->m_len = ospace - state->strm.avail_out);
+#if DEFLATE_DEBUG
+ if (olen > state->mru + PPP_HDRLEN)
+ printf("ppp_deflate%d: exceeded mru (%d > %d)\n",
+ state->unit, olen, state->mru + PPP_HDRLEN);
+#endif
state->stats.unc_bytes += olen;
state->stats.unc_packets++;
r = inflateIncomp(&state->strm);
if (r != Z_OK) {
/* gak! */
- if (state->debug) {
+#if !DEFLATE_DEBUG
+ if (state->debug)
+#endif
printf("z_incomp%d: inflateIncomp returned %d (%s)\n",
state->unit, r, (state->strm.msg? state->strm.msg: ""));
- }
return;
}
mi = mi->m_next;