* OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
* OR MODIFICATIONS.
*
- * $Id: ppp-comp.h,v 1.1 1994/08/31 23:55:58 paulus Exp $
+ * $Id: ppp-comp.h,v 1.3 1994/09/19 04:23:58 paulus Exp $
*/
/*
/* Compress a packet */
int (*compress) __P((void *state, PACKET **mret,
PACKET *mp, int orig_len, int max_len));
+ /* Return compression statistics */
+ void (*comp_stat) __P((void *state, struct compstat *stats));
/* Allocate space for a decompressor (receive side) */
void *(*decomp_alloc) __P((u_char *options, int opt_len));
/* Reset a decompressor */
void (*decomp_reset) __P((void *state));
/* Decompress a packet. */
- PACKET *(*decompress) __P((void *state, PACKET *mp,
- int hdroff));
+ int (*decompress) __P((void *state, PACKET *mp, PACKET **dmpp));
/* Update state for an incompressible packet received */
void (*incomp) __P((void *state, PACKET *mp));
+ /* Return decompression statistics */
+ void (*decomp_stat) __P((void *state, struct compstat *stats));
};
+/*
+ * Return values for decompress routine.
+ * We need to make these distinctions so that we can disable certain
+ * useful functionality, namely sending a CCP reset-request as a result
+ * of an error detected after decompression. This is to avoid infringing
+ * a patent held by Motorola.
+ * Don't you just lurve software patents.
+ */
+#define DECOMP_OK 0 /* everything went OK */
+#define DECOMP_ERROR 1 /* error detected before decomp. */
+#define DECOMP_FATALERROR 2 /* error detected after decomp. */
+
/*
* CCP codes.
*/