*/
-#ifndef lint
-static const char rcsid[] _U_ =
- "@(#) $Header: /tcpdump/master/tcpdump/print-cfm.c,v 1.4 2007-02-01 02:28:38 guy Exp $";
-#endif
-
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
const char *
cfm_egress_id_string(register const u_char *tptr) {
static char egress_id_buffer[80];
-
+
snprintf(egress_id_buffer, sizeof(egress_id_buffer),
- "MAC %0x4x-%s",
+ "MAC 0x%4x-%s",
EXTRACT_16BITS(tptr),
etheraddr_string(tptr+2));
switch (msg_ptr.cfm_ccm->md_nameformat) {
case CFM_CCM_MD_FORMAT_DNS:
case CFM_CCM_MD_FORMAT_CHAR:
- safeputs(msg_ptr.cfm_ccm->md_name, msg_ptr.cfm_ccm->md_namelength);
+ safeputs((const char *)msg_ptr.cfm_ccm->md_name, msg_ptr.cfm_ccm->md_namelength);
break;
case CFM_CCM_MD_FORMAT_MAC:
/* FIXME add printers for those MD formats - hexdump for now */
case CFM_CCM_MA_FORMAT_8021:
default:
- print_unknown_data(msg_ptr.cfm_ccm->md_name, "\n\t ",
+ print_unknown_data(gndo,msg_ptr.cfm_ccm->md_name, "\n\t ",
msg_ptr.cfm_ccm->md_namelength);
}
}
tok2str(cfm_ma_nameformat_values, "Unknown",
*ma_nameformat),
*ma_nameformat,
- *ma_namelength);
+ *ma_namelength);
printf("\n\t MA Name: ");
switch (*ma_nameformat) {
case CFM_CCM_MA_FORMAT_CHAR:
- safeputs(ma_name, *ma_namelength);
+ safeputs((const char *)ma_name, *ma_namelength);
break;
/* FIXME add printers for those MA formats - hexdump for now */
case CFM_CCM_MA_FORMAT_INT:
case CFM_CCM_MA_FORMAT_VPN:
default:
- print_unknown_data(ma_name, "\n\t ", *ma_namelength);
+ print_unknown_data(gndo,ma_name, "\n\t ", *ma_namelength);
}
break;
case CFM_OPCODE_LTM:
+ msg_ptr.cfm_ltm = (const struct cfm_ltm_t *)tptr;
+
printf(", Flags [%s]",
bittok2str(cfm_ltm_flag_values, "none", cfm_common_header->flags));
break;
case CFM_OPCODE_LTR:
+ msg_ptr.cfm_ltr = (const struct cfm_ltr_t *)tptr;
+
printf(", Flags [%s]",
bittok2str(cfm_ltr_flag_values, "none", cfm_common_header->flags));
case CFM_OPCODE_LBM:
default:
if (tlen > cfm_common_header->first_tlv_offset) {
- print_unknown_data(tptr, "\n\t ",
+ print_unknown_data(gndo,tptr, "\n\t ",
tlen - cfm_common_header->first_tlv_offset);
}
break;
tptr += cfm_common_header->first_tlv_offset;
tlen -= cfm_common_header->first_tlv_offset;
-
+
while (tlen > 0) {
cfm_tlv_header = (const struct cfm_tlv_header_t *)tptr;
if (cfm_tlv_type != CFM_TLV_END) {
/* did we capture enough for fully decoding the object header ? */
- TCHECK2(*tptr, sizeof(struct cfm_tlv_header_t));
+ TCHECK2(*tptr, sizeof(struct cfm_tlv_header_t));
cfm_tlv_len=EXTRACT_16BITS(&cfm_tlv_header->length);
} else {
cfm_tlv_len = 0;
if ((cfm_tlv_type != CFM_TLV_END) &&
((cfm_tlv_len + sizeof(struct cfm_tlv_header_t) > tlen) ||
(!cfm_tlv_len))) {
- print_unknown_data(tptr,"\n\t ",tlen);
+ print_unknown_data(gndo,tptr,"\n\t ",tlen);
return;
}
case CFM_CHASSIS_ID_LOCAL:
case CFM_CHASSIS_ID_CHASSIS_COMPONENT:
case CFM_CHASSIS_ID_PORT_COMPONENT:
- safeputs(tptr+1, chassis_id_length);
+ safeputs((const char *)tptr+1, chassis_id_length);
break;
default:
}
/* do we want to see an additional hexdump ? */
if (hexdump || vflag > 1)
- print_unknown_data(tlv_ptr, "\n\t ", cfm_tlv_len);
+ print_unknown_data(gndo,tlv_ptr, "\n\t ", cfm_tlv_len);
tptr+=cfm_tlv_len;
tlen-=cfm_tlv_len;