X-Git-Url: https://git.tcpdump.org/tcpdump/blobdiff_plain/0af21e65ee77fabf8bb8b6ac68627c307ee05a57..dbd0cbc147d140e9bd34eefa7b66a17f691d49e0:/print-atm.c diff --git a/print-atm.c b/print-atm.c index 136b99fc..13f3abd6 100644 --- a/print-atm.c +++ b/print-atm.c @@ -20,7 +20,7 @@ */ #ifndef lint static const char rcsid[] _U_ = - "@(#) $Header: /tcpdump/master/tcpdump/print-atm.c,v 1.38 2005-01-19 16:46:27 hannes Exp $ (LBL)"; + "@(#) $Header: /tcpdump/master/tcpdump/print-atm.c,v 1.38.2.4 2005-11-10 00:43:52 guy Exp $ (LBL)"; #endif #ifdef HAVE_CONFIG_H @@ -106,7 +106,7 @@ atm_llc_print(const u_char *p, int length, int caplen) printf("(LLC %s) ", etherproto_string(htons(extracted_ethertype))); } - if (!xflag && !qflag) + if (!suppress_default_print) default_print(p, caplen); } } @@ -257,7 +257,7 @@ atm_print(u_int vpi, u_int vci, u_int traftype, const u_char *p, u_int length, case OAMF4SC: /* fall through */ case OAMF4EC: - oam_print(p, length); + oam_print(p, length, ATM_OAM_HEC); return; case METAC: @@ -288,13 +288,14 @@ atm_print(u_int vpi, u_int vci, u_int traftype, const u_char *p, u_int length, } int -oam_print (const u_char *p, u_int length) { +oam_print (const u_char *p, u_int length, u_int hec) { - u_int16_t cell_header, cell_type, func_type,vpi,vci,payload,clp; + u_int32_t cell_header; + u_int16_t cell_type, func_type,vpi,vci,payload,clp; cell_header = EXTRACT_32BITS(p); - cell_type = ((*(p+4))>>4) & 0x0f; - func_type = *(p) & 0x0f; + cell_type = ((*(p+4+hec))>>4) & 0x0f; + func_type = *(p+4+hec) & 0x0f; vpi = (cell_header>>20)&0xff; vci = (cell_header>>4)&0xffff; @@ -304,7 +305,7 @@ oam_print (const u_char *p, u_int length) { switch (vci) { case OAMF4SC: printf("OAM F4 (segment), "); - break; + break; case OAMF4EC: printf("OAM F4 (end), "); break;