]> The Tcpdump Group git mirrors - tcpdump/blobdiff - print-ipx.c
Build fat appropriately for Leopard.
[tcpdump] / print-ipx.c
index 67e1e6dbf8d5a733417219c551810db9f4adba14..604561c608458d994180fd4930ca7353fc39b566 100644 (file)
@@ -24,7 +24,7 @@
 
 #ifndef lint
 static const char rcsid[] _U_ =
 
 #ifndef lint
 static const char rcsid[] _U_ =
-    "@(#) $Header: /tcpdump/master/tcpdump/print-ipx.c,v 1.38 2004-04-30 23:50:59 hannes Exp $";
+    "@(#) $Header: /tcpdump/master/tcpdump/print-ipx.c,v 1.42 2005-05-06 08:26:44 guy Exp $";
 #endif
 
 #ifdef HAVE_CONFIG_H
 #endif
 
 #ifdef HAVE_CONFIG_H
@@ -56,6 +56,9 @@ ipx_print(const u_char *p, u_int length)
 {
        const struct ipxHdr *ipx = (const struct ipxHdr *)p;
 
 {
        const struct ipxHdr *ipx = (const struct ipxHdr *)p;
 
+       if (!eflag)
+               printf("IPX ");
+
        TCHECK(ipx->srcSkt);
        (void)printf("%s.%04x > ",
                     ipxaddr_string(EXTRACT_32BITS(ipx->srcNet), ipx->srcNode),
        TCHECK(ipx->srcSkt);
        (void)printf("%s.%04x > ",
                     ipxaddr_string(EXTRACT_32BITS(ipx->srcNet), ipx->srcNode),
@@ -118,7 +121,7 @@ ipx_decode(const struct ipxHdr *ipx, const u_char *datap, u_int length)
 #endif
        break;
       case IPX_SKT_EIGRP:
 #endif
        break;
       case IPX_SKT_EIGRP:
-        eigrp_print(datap,length);
+       eigrp_print(datap, length);
        break;
       default:
        (void)printf("ipx-#%x %d", dstSkt, length);
        break;
       default:
        (void)printf("ipx-#%x %d", dstSkt, length);
@@ -156,9 +159,13 @@ ipx_sap_print(const u_short *ipx, u_int length)
            (void)printf("ipx-sap-nearest-resp");
 
        for (i = 0; i < 8 && length > 0; i++) {
            (void)printf("ipx-sap-nearest-resp");
 
        for (i = 0; i < 8 && length > 0; i++) {
-           TCHECK2(ipx[25], 10);
+           TCHECK(ipx[0]);
            (void)printf(" %s '", ipxsap_string(htons(EXTRACT_16BITS(&ipx[0]))));
            (void)printf(" %s '", ipxsap_string(htons(EXTRACT_16BITS(&ipx[0]))));
-           fn_print((u_char *)&ipx[1], (u_char *)&ipx[1] + 48);
+           if (fn_printzp((u_char *)&ipx[1], 48, snapend)) {
+               printf("'");
+               goto trunc;
+           }
+           TCHECK2(ipx[25], 10);
            printf("' addr %s",
                ipxaddr_string(EXTRACT_32BITS(&ipx[25]), (u_char *)&ipx[27]));
            ipx += 32;
            printf("' addr %s",
                ipxaddr_string(EXTRACT_32BITS(&ipx[25]), (u_char *)&ipx[27]));
            ipx += 32;