]> The Tcpdump Group git mirrors - tcpdump/blobdiff - print-ipcomp.c
Fix mkdep invocations.
[tcpdump] / print-ipcomp.c
index 354eef3551e128da4e53e33742f25e50495cfcb6..8e5252b2192b0c65602fc5a30bbefea0bbd722c2 100644 (file)
@@ -33,49 +33,37 @@ struct ipcomp {
        uint16_t comp_cpi;      /* Compression parameter index */
 };
 
-#if defined(HAVE_LIBZ) && defined(HAVE_ZLIB_H)
-#include <zlib.h>
-#endif
-
 #include "netdissect.h"
 #include "extract.h"
 
-int
-ipcomp_print(netdissect_options *ndo, register const u_char *bp, int *nhdr _U_)
+void
+ipcomp_print(netdissect_options *ndo, register const u_char *bp)
 {
        register const struct ipcomp *ipcomp;
        uint16_t cpi;
-#if defined(HAVE_LIBZ) && defined(HAVE_ZLIB_H)
-       int advance;
-#endif
 
        ipcomp = (const struct ipcomp *)bp;
-       ND_TCHECK(ipcomp->comp_cpi);
-       cpi = EXTRACT_16BITS(&ipcomp->comp_cpi);
+       ND_TCHECK(*ipcomp);
+       cpi = EXTRACT_BE_U_2(&ipcomp->comp_cpi);
 
        ND_PRINT((ndo, "IPComp(cpi=0x%04x)", cpi));
 
-#if defined(HAVE_LIBZ) && defined(HAVE_ZLIB_H)
-       if (1)
-               goto fail;
-
        /*
-        * We may want to decompress the packet here.  Packet buffer
-        * management is a headache (if we decompress, packet will become
-        * larger).
+        * XXX - based on the CPI, we could decompress the packet here.
+        * Packet buffer management is a headache (if we decompress,
+        * packet will become larger).
+        *
+        * We would decompress the packet and then call a routine that,
+        * based on ipcomp->comp_nxt, dissects the decompressed data.
+        *
+        * Until we do that, however, we just return -1, so that
+        * the loop that processes "protocol"/"next header" types
+        * stops - there's nothing more it can do with a compressed
+        * payload.
         */
-       if (nhdr)
-               *nhdr = ipcomp->comp_nxt;
-       advance = sizeof(struct ipcomp);
+       return;
 
-       ND_PRINT((ndo, ": "));
-       return advance;
-
-#endif
 trunc:
        ND_PRINT((ndo, "[|IPCOMP]"));
-#if defined(HAVE_LIBZ) && defined(HAVE_ZLIB_H)
-fail:
-#endif
-       return -1;
+       return;
 }