Minor whitespace, formatting & etc changes.

svn path=/trunk/; revision=52588
This commit is contained in:
Bill Meier 2013-10-13 18:14:59 +00:00
parent ee6916b838
commit 76d4b43a29
12 changed files with 1585 additions and 1623 deletions

View File

@ -136,8 +136,8 @@ dissect_mp4_mvhd_body(tvbuff_t *tvb, gint offset, gint len _U_,
offset_start = offset;
proto_tree_add_item(tree, hf_mp4_full_box_ver,
tvb, offset, 1, ENC_BIG_ENDIAN);
offset++;
offset+=3;
offset += 1;
offset += 3;
return offset-offset_start;
}
@ -151,12 +151,12 @@ dissect_mp4_mfhd_body(tvbuff_t *tvb, gint offset, gint len _U_,
offset_start = offset;
proto_tree_add_item(tree, hf_mp4_full_box_ver,
tvb, offset, 1, ENC_BIG_ENDIAN);
offset++;
offset+=3;
offset += 1;
offset += 3;
proto_tree_add_item(tree, hf_mp4_mfhd_seq_num,
tvb, offset, 4, ENC_BIG_ENDIAN);
offset+=4;
offset += 4;
return offset-offset_start;
}
@ -176,13 +176,13 @@ dissect_mp4_ftyp_body(tvbuff_t *tvb, gint offset, gint len,
tvb, offset, 4, ENC_BIG_ENDIAN);
offset += 4;
while (offset-offset_start<len) {
while ((offset-offset_start) < len) {
proto_tree_add_item(tree, hf_mp4_ftyp_add_brand,
tvb, offset, 4, ENC_ASCII|ENC_NA);
offset += 4;
}
return offset-offset_start;
return offset - offset_start;
}
/* dissect a box, return its (standard or extended) length or 0 for error */
@ -207,7 +207,7 @@ dissect_mp4_box(guint32 parent_box_type _U_,
- extended box types */
box_size = (guint64)tvb_get_ntohl(tvb, offset);
if (box_size!=BOX_SIZE_EXTENDED && box_size<MIN_BOX_SIZE)
if ((box_size != BOX_SIZE_EXTENDED) && (box_size < MIN_BOX_SIZE))
return -1;
box_type = tvb_get_ntohl(tvb, offset+4);
@ -219,7 +219,7 @@ dissect_mp4_box(guint32 parent_box_type _U_,
size_pi = proto_tree_add_item(box_tree, hf_mp4_box_size,
tvb, offset, 4, ENC_BIG_ENDIAN);
if (box_size==BOX_SIZE_EXTENDED)
if (box_size == BOX_SIZE_EXTENDED)
proto_item_append_text(size_pi, " (actual size is in largesize)");
offset += 4;
@ -227,7 +227,7 @@ dissect_mp4_box(guint32 parent_box_type _U_,
tvb, offset, 4, ENC_ASCII|ENC_NA);
offset += 4;
if (box_size==BOX_SIZE_EXTENDED) {
if (box_size == BOX_SIZE_EXTENDED) {
box_size = tvb_get_ntoh64(tvb, offset);
ext_size_pi = proto_tree_add_item(box_tree, hf_mp4_box_largesize,
tvb, offset, 8, ENC_BIG_ENDIAN);
@ -263,9 +263,9 @@ dissect_mp4_box(guint32 parent_box_type _U_,
case BOX_TYPE_MVEX:
case BOX_TYPE_DINF:
case BOX_TYPE_UDTA:
while (offset-offset_start<(gint)box_size) {
while (offset-offset_start < (gint)box_size) {
ret = dissect_mp4_box(box_type, tvb, offset, pinfo, box_tree);
if (ret<=0)
if (ret <= 0)
break;
offset += ret;
}
@ -293,7 +293,7 @@ dissect_mp4(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
this detection should be safe as long as the dissector is only called for
the video/mp4 mime type
when we read mp4 files directly, we might need stricter checks here */
if (tvb_reported_length(tvb)<MIN_BOX_SIZE)
if (tvb_reported_length(tvb) < MIN_BOX_SIZE)
return 0;
box_type = tvb_get_ntohl(tvb, 4);
if (try_val_to_str(box_type, box_types) == NULL)
@ -308,7 +308,7 @@ dissect_mp4(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
while (tvb_reported_length_remaining(tvb, offset) > 0) {
ret = dissect_mp4_box(BOX_TYPE_NONE, tvb, offset, pinfo, mp4_tree);
if (ret<=0)
if (ret <= 0)
break;
offset += ret;
}
@ -357,8 +357,8 @@ proto_register_mp4(void)
"box size too large, dissection of this box is not supported", EXPFILL }}
};
expert_module_t* expert_mp4;
expert_module_t *expert_mp4;
proto_mp4 = proto_register_protocol("MP4 / ISOBMFF file format", "mp4", "mp4");
proto_register_field_array(proto_mp4, hf, array_length(hf));

View File

@ -252,7 +252,7 @@ static const value_string a11_types[] = {
{SESSION_ACK, "Session Update Ack"},
{CAPABILITIES_INFO, "Capabilities Info"},
{CAPABILITIES_INFO_ACK, "Capabilities Info Ack"},
{BC_SERVICE_REQUEST, "BC Service Request"},
{BC_SERVICE_REQUEST, "BC Service Request"},
{BC_SERVICE_REPLY, "BC Service Response"},
{BC_REGISTRATION_REQUEST, "BC Registration RequestT"},
{BC_REGISTRATION_REPLY, "BC Registration Reply"},
@ -343,7 +343,7 @@ typedef enum {
MF_CHALLENGE_EXT = 132, /* RFC 3012 */
OLD_NVSE_EXT = 133, /* RFC 3115 */
NVSE_EXT = 134, /* RFC 3115 */
BCMCS_EXT = 0xb0 /* 3GPP2 A.S0019-A v2.0 */
BCMCS_EXT = 0xb0 /* 3GPP2 A.S0019-A v2.0 */
} MIP_EXTS;
@ -406,8 +406,8 @@ static const value_string a11_ext_dormant[]= {
static const true_false_string a11_tfs_ehrpd_mode = {
"eAT is operating in evolved mode",
"eAT is operating in legacy mode"
"eAT is operating in evolved mode",
"eAT is operating in legacy mode"
};
/* 3GPP2 A.S0022-0 v2.0, section 4.2.14 */
@ -550,78 +550,71 @@ decode_sse(proto_tree *ext_tree, tvbuff_t *tvb, int offset, guint ext_len)
gboolean odd_even_ind;
/* Decode Protocol Type */
if (ext_len < 2)
{
if (ext_len < 2) {
proto_tree_add_text(ext_tree, tvb, offset, 0,
"Cannot decode Protocol Type - SSE too short");
return;
}
proto_tree_add_item(ext_tree, hf_a11_ses_ptype, tvb, offset, 2, ENC_BIG_ENDIAN);
offset += 2;
offset += 2;
ext_len -= 2;
/* Decode Session Key */
if (ext_len < 4)
{
if (ext_len < 4) {
proto_tree_add_text(ext_tree, tvb, offset, 0,
"Cannot decode Session Key - SSE too short");
return;
}
proto_tree_add_item(ext_tree, hf_a11_ses_key, tvb, offset, 4, ENC_BIG_ENDIAN);
offset += 4;
offset += 4;
ext_len -= 4;
/* Decode Session Id Version */
if (ext_len < 2)
{
if (ext_len < 2) {
proto_tree_add_text(ext_tree, tvb, offset, 0,
"Cannot decode Session Id Version - SSE too short");
return;
}
proto_tree_add_item(ext_tree, hf_a11_ses_sidver, tvb, offset+1, 1, ENC_BIG_ENDIAN);
offset += 2;
offset += 2;
ext_len -= 2;
/* Decode SRID */
if (ext_len < 2)
{
if (ext_len < 2) {
proto_tree_add_text(ext_tree, tvb, offset, 0,
"Cannot decode SRID - SSE too short");
return;
}
proto_tree_add_item(ext_tree, hf_a11_ses_mnsrid, tvb, offset, 2, ENC_BIG_ENDIAN);
offset += 2;
offset += 2;
ext_len -= 2;
/* MSID Type */
if (ext_len < 2)
{
if (ext_len < 2) {
proto_tree_add_text(ext_tree, tvb, offset, 0,
"Cannot decode MSID Type - SSE too short");
return;
}
proto_tree_add_item(ext_tree, hf_a11_ses_msid_type, tvb, offset, 2, ENC_BIG_ENDIAN);
offset += 2;
offset += 2;
ext_len -= 2;
/* MSID Len */
if (ext_len < 1)
{
if (ext_len < 1) {
proto_tree_add_text(ext_tree, tvb, offset, 0,
"Cannot decode MSID Length - SSE too short");
return;
}
msid_len = tvb_get_guint8(tvb, offset);
proto_tree_add_item(ext_tree, hf_a11_ses_msid_len, tvb, offset, 1, ENC_BIG_ENDIAN);
offset += 1;
offset += 1;
ext_len -= 1;
/* Decode MSID */
if (ext_len < msid_len)
{
if (ext_len < msid_len) {
proto_tree_add_text(ext_tree, tvb, offset, 0,
"Cannot decode MSID - SSE too short");
return;
@ -630,19 +623,15 @@ decode_sse(proto_tree *ext_tree, tvbuff_t *tvb, int offset, guint ext_len)
msid_digits = (char *)wmem_alloc(wmem_packet_scope(), A11_MSG_MSID_LEN_MAX+2);
msid_start_offset = offset;
if (msid_len > A11_MSG_MSID_ELEM_LEN_MAX)
{
if (msid_len > A11_MSG_MSID_ELEM_LEN_MAX) {
p_msid = "MSID is too long";
}else if (msid_len == 0)
{
} else if (msid_len == 0) {
p_msid = "MSID is too short";
}else
{
} else {
/* Decode the BCD digits */
for(msid_index=0; msid_index<msid_len; msid_index++)
{
for (msid_index=0; msid_index<msid_len; msid_index++) {
guint8 msid_digit = tvb_get_guint8(tvb, offset);
offset += 1;
offset += 1;
ext_len -= 1;
msid_digits[msid_index*2] = (msid_digit & 0x0F) + '0';
@ -651,11 +640,9 @@ decode_sse(proto_tree *ext_tree, tvbuff_t *tvb, int offset, guint ext_len)
odd_even_ind = (msid_digits[0] == '1');
if (odd_even_ind)
{
if (odd_even_ind) {
msid_num_digits = ((msid_len-1) * 2) + 1;
}else
{
} else {
msid_num_digits = (msid_len-1) * 2;
}
@ -674,50 +661,49 @@ static void
decode_bcmcs(proto_tree* ext_tree, tvbuff_t* tvb, int offset, guint ext_len)
{
guint8 bc_stype, entry_len;
guint8 bc_stype, entry_len;
/* Decode Protocol Type */
if (ext_len < 2)
{
/* Decode Protocol Type */
if (ext_len < 2) {
proto_tree_add_text(ext_tree, tvb, offset, 0,
"Cannot decode Protocol Type - BCMCS too short");
"Cannot decode Protocol Type - BCMCS too short");
return;
}
bc_stype=tvb_get_guint8(tvb, offset);
proto_tree_add_item(ext_tree, hf_a11_bcmcs_stype, tvb, offset, 1, ENC_BIG_ENDIAN);
offset += 1;
offset += 1;
ext_len -= 1;
switch(bc_stype) {
case 1:
{
int i = 0;
proto_item *ti;
proto_tree *entry_tree;
while (ext_len > 0){
i++;
entry_len = tvb_get_guint8(tvb, offset);
if(entry_len == 0){
ext_len -= 1;
entry_len = 1;
}else{
ext_len = ext_len - entry_len;
}
ti = proto_tree_add_text(ext_tree, tvb, offset, entry_len, "BCMCS Information Entry %u", i);
entry_tree = proto_item_add_subtree(ti, ett_a11_bcmcs_entry);
proto_tree_add_item(entry_tree, hf_a11_bcmcs_entry_len, tvb, offset, 1, ENC_BIG_ENDIAN);
switch (bc_stype) {
case 1:
{
int i = 0;
proto_item *ti;
proto_tree *entry_tree;
while (ext_len > 0) {
i++;
entry_len = tvb_get_guint8(tvb, offset);
if (entry_len == 0) {
ext_len -= 1;
entry_len = 1;
} else {
ext_len = ext_len - entry_len;
}
ti = proto_tree_add_text(ext_tree, tvb, offset, entry_len, "BCMCS Information Entry %u", i);
entry_tree = proto_item_add_subtree(ti, ett_a11_bcmcs_entry);
proto_tree_add_item(entry_tree, hf_a11_bcmcs_entry_len, tvb, offset, 1, ENC_BIG_ENDIAN);
proto_tree_add_text(ext_tree, tvb, offset, entry_len -1, "Entry Data, Not dissected yet");
offset = offset+entry_len;
}
}
break;
default:
proto_tree_add_text(ext_tree, tvb, offset, -1, "Session Data Type %u Not dissected yet",bc_stype);
return;
break;
}
proto_tree_add_text(ext_tree, tvb, offset, entry_len -1, "Entry Data, Not dissected yet");
offset = offset+entry_len;
}
}
break;
default:
proto_tree_add_text(ext_tree, tvb, offset, -1, "Session Data Type %u Not dissected yet",bc_stype);
return;
break;
}
}
@ -759,27 +745,27 @@ dissect_3gpp2_service_option_profile(proto_tree *tree, tvbuff_t *tvb, packet_i
proto_tree_add_item(tree, hf_a11_serv_opt_prof_max_serv, tvb, offset, 4, ENC_BIG_ENDIAN);
offset+=4;
while (tvb_length_remaining(tvb,offset)>0){
while (tvb_length_remaining(tvb,offset) > 0) {
sub_type_length = tvb_get_guint8(tvb,offset+1);
sub_type = tvb_get_guint8(tvb,offset);
proto_tree_add_item(tree, hf_a11_sub_type, tvb, offset, 1, ENC_BIG_ENDIAN);
offset++;
offset += 1;
pi = proto_tree_add_item(tree, hf_a11_sub_type_length, tvb, offset, 1, ENC_BIG_ENDIAN);
offset++;
offset += 1;
if (sub_type_length < 2) {
expert_add_info(pinfo, pi, &ei_a11_sub_type_length_not2);
sub_type_length = 2;
}
if (sub_type==1){
if (sub_type == 1) {
proto_tree_add_item(tree, hf_a11_serv_opt, tvb, offset, 1, ENC_BIG_ENDIAN);
offset++;
offset += 1;
/* Max number of service instances of Service Option n */
proto_tree_add_item(tree, hf_a11_max_num_serv_opt, tvb, offset, 1, ENC_BIG_ENDIAN);
offset++;
offset += 1;
}
offset = offset+sub_type_length-2;
offset = offset + sub_type_length-2;
}
return "";
@ -803,7 +789,7 @@ dissect_3gpp2_radius_aut_flow_profile_ids(proto_tree *tree, tvbuff_t *tvb, pac
guint8 sub_type, sub_type_length;
guint32 value;
while (tvb_length_remaining(tvb,offset)>0){
while (tvb_length_remaining(tvb,offset) > 0) {
sub_type = tvb_get_guint8(tvb,offset);
sub_type_length = tvb_get_guint8(tvb,offset+1);
/* value is 2 octets */
@ -813,16 +799,16 @@ dissect_3gpp2_radius_aut_flow_profile_ids(proto_tree *tree, tvbuff_t *tvb, pac
sub_tree = proto_item_add_subtree(item, ett_a11_aut_flow_profile_ids);
proto_tree_add_item(sub_tree, hf_a11_aut_flow_prof_sub_type, tvb, offset, 1, ENC_BIG_ENDIAN);
offset++;
offset += 1;
item = proto_tree_add_item(sub_tree, hf_a11_aut_flow_prof_sub_type_len, tvb, offset, 1, ENC_BIG_ENDIAN);
if (sub_type_length < 2) {
expert_add_info(pinfo, item, &ei_a11_sub_type_length_not2);
sub_type_length = 2;
}
offset++;
offset += 1;
proto_tree_add_item(sub_tree, hf_a11_aut_flow_prof_sub_type_value, tvb, offset, 2, ENC_BIG_ENDIAN);
offset = offset+sub_type_length-2;
offset = offset+sub_type_length - 2;
}
return "";
@ -834,8 +820,7 @@ dissect_ase(tvbuff_t *tvb, int offset, guint ase_len, proto_tree *ext_tree)
{
guint clen = 0; /* consumed length */
while (clen < ase_len)
{
while (clen < ase_len) {
proto_tree *exts_tree;
guint8 srid = tvb_get_guint8(tvb, offset+1);
guint16 service_option = tvb_get_ntohs(tvb, offset+2);
@ -847,7 +832,7 @@ dissect_ase(tvbuff_t *tvb, int offset, guint ase_len, proto_tree *ext_tree)
entry_start_offset = offset;
entry_lenght = tvb_get_guint8(tvb, offset);
if (registration_request_msg && (service_option==64 || service_option==67))
if (registration_request_msg && ((service_option == 64) || (service_option == 67)))
ti = proto_tree_add_text(ext_tree, tvb, offset, entry_lenght+1, "GRE Key Entry (SRID: %d)", srid);
else
ti = proto_tree_add_text(ext_tree, tvb, offset, entry_lenght, "GRE Key Entry (SRID: %d)", srid);
@ -855,60 +840,60 @@ dissect_ase(tvbuff_t *tvb, int offset, guint ase_len, proto_tree *ext_tree)
exts_tree = proto_item_add_subtree(ti, ett_a11_ase);
proto_tree_add_item(exts_tree, hf_a11_ase_len_type, tvb, offset, 1, ENC_BIG_ENDIAN);
offset++;
offset += 1;
/* SRID */
proto_tree_add_item(exts_tree, hf_a11_ase_srid_type, tvb, offset, 1, ENC_BIG_ENDIAN);
offset++;
offset += 1;
/* Service Option */
proto_tree_add_item(exts_tree, hf_a11_ase_servopt_type, tvb, offset, 2, ENC_BIG_ENDIAN);
offset+=2;
offset += 2;
/* GRE Protocol Type*/
proto_tree_add_item(exts_tree, hf_a11_ase_gre_proto_type, tvb, offset, 2, ENC_BIG_ENDIAN);
offset+=2;
offset += 2;
/* GRE Key */
proto_tree_add_item(exts_tree, hf_a11_ase_gre_key, tvb, offset, 4, ENC_BIG_ENDIAN);
offset+=4;
offset += 4;
/* PCF IP Address */
proto_tree_add_item(exts_tree, hf_a11_ase_pcf_addr_key, tvb, offset, 4, ENC_BIG_ENDIAN);
offset+=4;
offset += 4;
if ((entry_lenght>14)&&(registration_request_msg)){
if (service_option == 0x0043){
if ((entry_lenght>14)&&(registration_request_msg)) {
if (service_option == 0x0043) {
proto_item *tl;
proto_tree *extv_tree;
guint8 profile_count=tvb_get_guint8(tvb, offset+6);
guint8 profile_index=0;
guint8 reverse_profile_count;
guint8 profile_count = tvb_get_guint8(tvb, offset+6);
guint8 profile_index = 0;
guint8 reverse_profile_count;
proto_item *tj = proto_tree_add_text(exts_tree, tvb, offset,6+(profile_count*2)+1, "Forward ROHC Info");
proto_tree *extt_tree = proto_item_add_subtree(tj, ett_a11_forward_rohc);
proto_tree_add_item(extt_tree, hf_a11_ase_forward_rohc_info_len, tvb, offset, 1, ENC_BIG_ENDIAN);
offset++;
offset += 1;
proto_tree_add_item(extt_tree, hf_a11_ase_forward_maxcid, tvb, offset, 2, ENC_BIG_ENDIAN);
offset+=2;
offset += 2;
proto_tree_add_item(extt_tree, hf_a11_ase_forward_mrru, tvb, offset, 2, ENC_BIG_ENDIAN);
offset+=2;
offset += 2;
proto_tree_add_item(extt_tree, hf_a11_ase_forward_large_cids, tvb, offset, 1, ENC_BIG_ENDIAN);
offset++;
offset += 1;
profile_count=tvb_get_guint8(tvb, offset);
proto_tree_add_item(extt_tree, hf_a11_ase_forward_profile_count, tvb, offset, 1, ENC_BIG_ENDIAN);
offset++;
offset += 1;
for(profile_index=0; profile_index<profile_count; profile_index++){
for (profile_index=0; profile_index<profile_count; profile_index++) {
proto_item *tk = proto_tree_add_text (extt_tree, tvb, offset, (2*profile_count), "Forward Profile : %d", profile_index);
proto_tree *extu_tree = proto_item_add_subtree(tk, ett_a11_forward_profile);
proto_tree_add_item(extu_tree, hf_a11_ase_forward_profile, tvb, offset, 2, ENC_BIG_ENDIAN);
offset+=2;
offset += 2;
}/*for*/
@ -919,36 +904,34 @@ dissect_ase(tvbuff_t *tvb, int offset, guint ase_len, proto_tree *ext_tree)
extv_tree = proto_item_add_subtree(tl, ett_a11_reverse_rohc);
proto_tree_add_item(extv_tree, hf_a11_ase_reverse_rohc_info_len, tvb, offset, 1, ENC_BIG_ENDIAN);
offset++;
offset += 1;
proto_tree_add_item(extv_tree, hf_a11_ase_reverse_maxcid, tvb, offset, 2, ENC_BIG_ENDIAN);
offset+=2;
offset += 2;
proto_tree_add_item(extv_tree, hf_a11_ase_reverse_mrru, tvb, offset, 2, ENC_BIG_ENDIAN);
offset+=2;
offset += 2;
proto_tree_add_item(extv_tree, hf_a11_ase_reverse_large_cids, tvb, offset, 1, ENC_BIG_ENDIAN);
offset++;
offset += 1;
profile_count=tvb_get_guint8(tvb, offset);
proto_tree_add_item(extv_tree, hf_a11_ase_reverse_profile_count, tvb, offset, 1, ENC_BIG_ENDIAN);
offset++;
offset += 1;
for(profile_index=0; profile_index<reverse_profile_count; profile_index++){
for (profile_index=0; profile_index<reverse_profile_count; profile_index++) {
proto_item *tm = proto_tree_add_text(extv_tree, tvb, offset, (2*profile_count), "Reverse Profile : %d", profile_index);
proto_tree *extw_tree = proto_item_add_subtree(tm, ett_a11_reverse_profile);
proto_tree_add_item(extw_tree, hf_a11_ase_reverse_profile, tvb, offset, 2, ENC_BIG_ENDIAN);
offset+=2;
offset += 2;
}/*for*/
}/* Service option */
}/* if */
clen+=entry_lenght+1;
clen += entry_lenght + 1;
/* Set offset = start of next entry in case of padding */
offset = entry_start_offset + entry_lenght+1;
@ -972,11 +955,9 @@ dissect_fwd_qosinfo_flags(tvbuff_t *tvb, int offset, proto_tree *ext_tree, guint
proto_tree_add_item(flags_tree, hf_a11_fqi_flags_ip_flow, tvb, offset, 1, ENC_BIG_ENDIAN);
proto_tree_add_item(flags_tree, hf_a11_fqi_flags_dscp, tvb, offset, 1, ENC_BIG_ENDIAN);
if (flags & A11_FQI_DSCP_INCLUDED)
{
if (flags & A11_FQI_DSCP_INCLUDED) {
*p_dscp_included = 1;
}else
{
} else {
*p_dscp_included = 0;
}
}
@ -987,8 +968,7 @@ dissect_fqi_entry_flags(tvbuff_t *tvb, int offset, proto_tree *ext_tree, guint8
proto_item *ti = proto_tree_add_item(ext_tree, hf_a11_fqi_entry_flag, tvb, offset, 1, ENC_BIG_ENDIAN);
proto_tree *flags_tree = proto_item_add_subtree(ti, ett_a11_fqi_entry_flags);
if (dscp_enabled)
{
if (dscp_enabled) {
proto_tree_add_item(flags_tree, hf_a11_fqi_entry_flag_dscp, tvb, offset, 1, ENC_BIG_ENDIAN);
}
@ -1027,13 +1007,12 @@ dissect_fwd_qosinfo(tvbuff_t *tvb, int offset, proto_tree *ext_tree)
proto_tree_add_item(ext_tree, hf_a11_fqi_flowcount, tvb, offset+clen, 1, ENC_BIG_ENDIAN);
clen++;
for(flow_index=0; flow_index<flow_count; flow_index++)
{
for (flow_index=0; flow_index<flow_count; flow_index++) {
guint8 requested_qos_len = 0;
guint8 granted_qos_len = 0;
guint8 granted_qos_len = 0;
guint8 entry_len = tvb_get_guint8(tvb, offset+clen);
guint8 flow_id = tvb_get_guint8(tvb, offset+clen+1);
guint8 flow_id = tvb_get_guint8(tvb, offset+clen+1);
proto_item *ti = proto_tree_add_text
(ext_tree, tvb, offset+clen, entry_len+1, "Forward Flow Entry (Flow Id: %d)", flow_id);
@ -1059,8 +1038,7 @@ dissect_fwd_qosinfo(tvbuff_t *tvb, int offset, proto_tree *ext_tree)
clen++;
/* Requested QoS Blob */
if (requested_qos_len)
{
if (requested_qos_len) {
proto_item *ti2;
proto_tree *exts_tree2;
@ -1102,8 +1080,7 @@ dissect_fwd_qosinfo(tvbuff_t *tvb, int offset, proto_tree *ext_tree)
clen++;
/* Granted QoS Blob */
if (granted_qos_len)
{
if (granted_qos_len) {
proto_item *ti3;
proto_tree *exts_tree3;
@ -1117,7 +1094,7 @@ dissect_fwd_qosinfo(tvbuff_t *tvb, int offset, proto_tree *ext_tree)
proto_tree_add_item(exts_tree3, hf_a11_fqi_qos_granted_attribute_setid, tvb, offset+clen, 1, ENC_BIG_ENDIAN);
clen++;
}
}/*for(flow_index...) */
} /* for (flow_index...) */
}
/* Code to dissect Reverse QoS Info */
@ -1138,13 +1115,12 @@ dissect_rev_qosinfo(tvbuff_t *tvb, int offset, proto_tree *ext_tree)
proto_tree_add_item(ext_tree, hf_a11_rqi_flowcount, tvb, offset+clen, 1, ENC_BIG_ENDIAN);
clen++;
for(flow_index=0; flow_index<flow_count; flow_index++)
{
for (flow_index=0; flow_index<flow_count; flow_index++) {
guint8 requested_qos_len;
guint8 granted_qos_len;
guint8 entry_len = tvb_get_guint8(tvb, offset+clen);
guint8 flow_id = tvb_get_guint8(tvb, offset+clen+1);
guint8 flow_id = tvb_get_guint8(tvb, offset+clen+1);
proto_item *ti = proto_tree_add_text
(ext_tree, tvb, offset+clen, entry_len+1, "Reverse Flow Entry (Flow Id: %d)", flow_id);
@ -1169,8 +1145,7 @@ dissect_rev_qosinfo(tvbuff_t *tvb, int offset, proto_tree *ext_tree)
clen++;
/* Requested QoS Blob */
if (requested_qos_len)
{
if (requested_qos_len) {
proto_item *ti1, *ti2;
proto_tree *exts_tree1, *exts_tree2;
@ -1212,8 +1187,7 @@ dissect_rev_qosinfo(tvbuff_t *tvb, int offset, proto_tree *ext_tree)
clen++;
/* Granted QoS Blob */
if (granted_qos_len)
{
if (granted_qos_len) {
proto_item *ti3;
proto_tree *exts_tree3;
@ -1246,8 +1220,7 @@ dissect_subscriber_qos_profile(tvbuff_t *tvb, packet_info *pinfo, int offset, in
exts_tree = proto_item_add_subtree(ti, ett_a11_subscriber_profile);
/* Subscriber QoS profile */
if (qos_profile_len)
{
if (qos_profile_len) {
proto_tree_add_item
(exts_tree, hf_a11_subsciber_profile, tvb, offset,
qos_profile_len, ENC_NA);
@ -1269,8 +1242,7 @@ dissect_fwd_qosupdate_info(tvbuff_t *tvb, int offset, proto_tree *ext_tree)
proto_tree_add_item(ext_tree, hf_a11_fqui_flowcount, tvb, offset+clen, 1, ENC_BIG_ENDIAN);
clen++;
for(flow_index=0; flow_index<flow_count; flow_index++)
{
for (flow_index=0; flow_index<flow_count; flow_index++) {
proto_tree *exts_tree;
guint8 granted_qos_len;
@ -1289,8 +1261,7 @@ dissect_fwd_qosupdate_info(tvbuff_t *tvb, int offset, proto_tree *ext_tree)
clen++;
/* Forward QoS Sub Blob */
if (granted_qos_len)
{
if (granted_qos_len) {
proto_tree_add_item
(exts_tree, hf_a11_fqui_updated_qos, tvb, offset+clen,
granted_qos_len, ENC_NA);
@ -1313,8 +1284,7 @@ dissect_rev_qosupdate_info(tvbuff_t *tvb, int offset, proto_tree *ext_tree)
proto_tree_add_item(ext_tree, hf_a11_rqui_flowcount, tvb, offset+clen, 1, ENC_BIG_ENDIAN);
clen++;
for(flow_index=0; flow_index<flow_count; flow_index++)
{
for (flow_index=0; flow_index<flow_count; flow_index++) {
proto_tree *exts_tree;
guint8 granted_qos_len;
@ -1332,8 +1302,7 @@ dissect_rev_qosupdate_info(tvbuff_t *tvb, int offset, proto_tree *ext_tree)
clen++;
/* Reverse QoS Sub Blob */
if (granted_qos_len)
{
if (granted_qos_len) {
proto_tree_add_item
(exts_tree, hf_a11_rqui_updated_qos, tvb, offset+clen,
granted_qos_len, ENC_NA);
@ -1389,24 +1358,24 @@ dissect_a11_extensions( tvbuff_t *tvb, packet_info *pinfo, int offset, proto_tre
ext_tree = proto_item_add_subtree(ti, ett_a11_ext);
proto_tree_add_uint(ext_tree, hf_a11_ext_type, tvb, offset, 1, ext_type);
offset++;
offset += 1;
if (ext_type == SS_EXT) {
proto_tree_add_uint(ext_tree, hf_a11_ext_len, tvb, offset, 1, ext_len);
offset++;
offset += 1;
}
else if ((ext_type == CVSE_EXT) || (ext_type == OLD_CVSE_EXT)) {
offset++;
offset += 1;
proto_tree_add_uint(ext_tree, hf_a11_ext_len, tvb, offset, 2, ext_len);
offset+=2;
offset += 2;
}
else if (ext_type != GEN_AUTH_EXT) {
/* Another nasty hack since GEN_AUTH_EXT broke everything */
proto_tree_add_uint(ext_tree, hf_a11_ext_len, tvb, offset, 1, ext_len);
offset++;
offset += 1;
}
switch(ext_type) {
switch (ext_type) {
case SS_EXT:
decode_sse(ext_tree, tvb, offset, ext_len);
offset += ext_len;
@ -1445,9 +1414,9 @@ dissect_a11_extensions( tvbuff_t *tvb, packet_info *pinfo, int offset, proto_tre
* in the wrong place :(
*/
proto_tree_add_uint(ext_tree, hf_a11_ext_stype, tvb, offset, 1, ext_subtype);
offset++;
offset += 1;
proto_tree_add_uint(ext_tree, hf_a11_ext_len, tvb, offset, 2, ext_len);
offset+=2;
offset += 2;
/* SPI */
if (ext_len < 4)
break;
@ -1494,7 +1463,7 @@ dissect_a11_extensions( tvbuff_t *tvb, packet_info *pinfo, int offset, proto_tre
apptype = tvb_get_ntohs(tvb, offset);
offset += 2;
ext_len -= 2;
switch(apptype) {
switch (apptype) {
case 0x0401:
if (ext_len < 5)
break;
@ -1633,7 +1602,7 @@ dissect_a11( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_
/* type */
proto_tree_add_uint(a11_tree, hf_a11_type, tvb, offset, 1, type);
offset++;
offset += 1;
/* flags */
flags = tvb_get_guint8(tvb, offset);
@ -1647,7 +1616,7 @@ dissect_a11( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_
proto_tree_add_boolean(flags_tree, hf_a11_g, tvb, offset, 1, flags);
proto_tree_add_boolean(flags_tree, hf_a11_v, tvb, offset, 1, flags);
proto_tree_add_boolean(flags_tree, hf_a11_t, tvb, offset, 1, flags);
offset++;
offset += 1;
/* lifetime */
proto_tree_add_item(a11_tree, hf_a11_life, tvb, offset, 2, ENC_BIG_ENDIAN);
@ -1682,11 +1651,11 @@ dissect_a11( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_
/* Type */
proto_tree_add_uint(a11_tree, hf_a11_type, tvb, offset, 1, type);
offset++;
offset += 1;
/* Reply Code */
proto_tree_add_item(a11_tree, hf_a11_code, tvb, offset, 1, ENC_BIG_ENDIAN);
offset++;
offset += 1;
/* Registration Lifetime */
proto_tree_add_item(a11_tree, hf_a11_life, tvb, offset, 2, ENC_BIG_ENDIAN);
@ -1716,10 +1685,10 @@ dissect_a11( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_
/* Type */
proto_tree_add_uint(a11_tree, hf_a11_type, tvb, offset, 1, type);
offset++;
offset += 1;
/* Reserved */
offset+=3;
offset += 3;
/* Home address */
proto_tree_add_item(a11_tree, hf_a11_homeaddr, tvb, offset, 4, ENC_BIG_ENDIAN);
@ -1746,14 +1715,14 @@ dissect_a11( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_
/* Type */
proto_tree_add_uint(a11_tree, hf_a11_type, tvb, offset, 1, type);
offset++;
offset += 1;
/* Reserved */
offset+=2;
offset += 2;
/* Ack Status */
proto_tree_add_item(a11_tree, hf_a11_status, tvb, offset, 1, ENC_BIG_ENDIAN);
offset++;
offset += 1;
/* Home address */
proto_tree_add_item(a11_tree, hf_a11_homeaddr, tvb, offset, 4, ENC_BIG_ENDIAN);
@ -1779,10 +1748,10 @@ dissect_a11( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_
/* Type */
proto_tree_add_uint(a11_tree, hf_a11_type, tvb, offset, 1, type);
offset++;
offset += 1;
/* Reserved */
offset+=3;
offset += 3;
/* Home address */
proto_tree_add_item(a11_tree, hf_a11_homeaddr, tvb, offset, 4, ENC_BIG_ENDIAN);
@ -1809,14 +1778,14 @@ dissect_a11( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_
/* Type */
proto_tree_add_uint(a11_tree, hf_a11_type, tvb, offset, 1, type);
offset++;
offset += 1;
/* Reserved */
offset+=2;
offset += 2;
/* Ack Status */
proto_tree_add_item(a11_tree, hf_a11_status, tvb, offset, 1, ENC_BIG_ENDIAN);
offset++;
offset += 1;
/* Home address */
proto_tree_add_item(a11_tree, hf_a11_homeaddr, tvb, offset, 4, ENC_BIG_ENDIAN);
@ -1843,10 +1812,10 @@ dissect_a11( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_
/* Type */
proto_tree_add_uint(a11_tree, hf_a11_type, tvb, offset, 1, type);
offset++;
offset += 1;
/* Reserved */
offset+=3;
offset += 3;
/* Home address */
proto_tree_add_item(a11_tree, hf_a11_homeaddr, tvb, offset, 4, ENC_BIG_ENDIAN);
@ -1876,10 +1845,10 @@ dissect_a11( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_
/* Type */
proto_tree_add_uint(a11_tree, hf_a11_type, tvb, offset, 1, type);
offset++;
offset += 1;
/* Reserved */
offset+=3;
offset += 3;
/* Home address */
proto_tree_add_item(a11_tree, hf_a11_homeaddr, tvb, offset, 4, ENC_BIG_ENDIAN);
@ -1896,74 +1865,74 @@ dissect_a11( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_
} /* if tree */
break;
case BC_SERVICE_REQUEST:
col_add_fstr(pinfo->cinfo, COL_INFO, "Service Request: PCF=%s ",
col_add_fstr(pinfo->cinfo, COL_INFO, "Service Request: PCF=%s ",
tvb_ip_to_str(tvb, offset + 8));
if (tree) {
ti = proto_tree_add_item(tree, proto_a11, tvb, offset, -1, FALSE);
a11_tree = proto_item_add_subtree(ti, ett_a11);
/* type */
proto_tree_add_uint(a11_tree, hf_a11_type, tvb, offset, 1, type);
offset+=4;
offset += 4;
/* home address */
proto_tree_add_item(a11_tree, hf_a11_homeaddr, tvb, offset, 4, FALSE);
offset += 4;
/* Care-of-Address */
proto_tree_add_item(a11_tree, hf_a11_coa, tvb, offset, 4, FALSE);
offset += 4;
/* Identifier - assumed to be an NTP time here */
proto_tree_add_item(a11_tree, hf_a11_ident, tvb, offset, 8, ENC_TIME_NTP|ENC_BIG_ENDIAN);
offset += 8;
} /* if tree */
break;
case BC_SERVICE_REPLY:
col_add_fstr(pinfo->cinfo, COL_INFO, "Service Response: BSN=%s ",
tvb_ip_to_str(tvb, offset + 8));
if (tree) {
ti = proto_tree_add_item(tree, proto_a11, tvb, offset, -1, FALSE);
a11_tree = proto_item_add_subtree(ti, ett_a11);
/* type */
proto_tree_add_uint(a11_tree, hf_a11_type, tvb, offset, 1, type);
offset+=3;
offset += 3;
/* Reply Code */
proto_tree_add_item(a11_tree, hf_a11_code, tvb, offset, 1, FALSE);
offset++;
offset += 1;
/* home address */
proto_tree_add_item(a11_tree, hf_a11_homeaddr, tvb, offset, 4, FALSE);
offset += 4;
/* Home Agent */
proto_tree_add_item(a11_tree, hf_a11_haaddr, tvb, offset, 4, FALSE);
offset += 4;
/* Identifier - assumed to be an NTP time here */
proto_tree_add_item(a11_tree, hf_a11_ident, tvb, offset, 8, ENC_TIME_NTP|ENC_BIG_ENDIAN);
offset += 8;
} /* if tree */
break;
case BC_REGISTRATION_REQUEST:
col_add_fstr(pinfo->cinfo, COL_INFO, "BC Reg Request: BSN=%s ",
tvb_ip_to_str(tvb, offset + 8));
if (tree) {
ti = proto_tree_add_item(tree, proto_a11, tvb, offset, -1, FALSE);
a11_tree = proto_item_add_subtree(ti, ett_a11);
/* type */
proto_tree_add_uint(a11_tree, hf_a11_type, tvb, offset, 1, type);
offset+=1;
offset += 1;
/* flags */
flags = tvb_get_guint8(tvb, offset);
tf = proto_tree_add_uint(a11_tree, hf_a11_flags, tvb,
@ -1976,29 +1945,29 @@ dissect_a11( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_
proto_tree_add_boolean(flags_tree, hf_a11_g, tvb, offset, 1, flags);
proto_tree_add_boolean(flags_tree, hf_a11_v, tvb, offset, 1, flags);
proto_tree_add_boolean(flags_tree, hf_a11_t, tvb, offset, 1, flags);
offset++;
offset += 1;
/* lifetime */
proto_tree_add_item(a11_tree, hf_a11_life, tvb, offset, 2, FALSE);
offset +=2;
/* home address */
proto_tree_add_item(a11_tree, hf_a11_homeaddr, tvb, offset, 4, FALSE);
offset += 4;
/* Home Agent */
proto_tree_add_item(a11_tree, hf_a11_haaddr, tvb, offset, 4, FALSE);
offset += 4;
/* Care-of-Address */
proto_tree_add_item(a11_tree, hf_a11_coa, tvb, offset, 4, FALSE);
offset += 4;
/* Identifier - assumed to be an NTP time here */
proto_tree_add_item(a11_tree, hf_a11_ident, tvb, offset, 8, ENC_TIME_NTP|ENC_BIG_ENDIAN);
offset += 8;
} /* if tree */
break;
@ -2015,11 +1984,11 @@ dissect_a11( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_
/* Type */
proto_tree_add_uint(a11_tree, hf_a11_type, tvb, offset, 1, type);
offset++;
offset += 1;
/* Reply Code */
proto_tree_add_item(a11_tree, hf_a11_code, tvb, offset, 1, FALSE);
offset++;
offset += 1;
/* Registration Lifetime */
proto_tree_add_item(a11_tree, hf_a11_life, tvb, offset, 2, FALSE);
@ -2050,10 +2019,10 @@ dissect_a11( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_
/* Type */
proto_tree_add_uint(a11_tree, hf_a11_type, tvb, offset, 1, type);
offset++;
offset += 1;
/* Reserved */
offset+=3;
offset += 3;
/* Home address */
proto_tree_add_item(a11_tree, hf_a11_homeaddr, tvb, offset, 4, FALSE);
@ -2080,14 +2049,14 @@ dissect_a11( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_
/* Type */
proto_tree_add_uint(a11_tree, hf_a11_type, tvb, offset, 1, type);
offset++;
offset += 1;
/* Reserved */
offset+=2;
offset += 2;
/* Ack Status */
proto_tree_add_item(a11_tree, hf_a11_status, tvb, offset, 1, FALSE);
offset++;
offset += 1;
/* Home address */
proto_tree_add_item(a11_tree, hf_a11_homeaddr, tvb, offset, 4, FALSE);

View File

@ -23,14 +23,14 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
/* Container for tapping relevant data */
typedef struct _actrace_info_t
{
int type; /* ACTRACE_CAS=1 ACTRACE_ISDN=2 */
int direction; /* direction BLADE_TO_PSTN=0 PSTN_TO_BLADE=1 */
int trunk;
gint32 cas_bchannel;
const gchar *cas_frame_label;
int type; /* ACTRACE_CAS=1 ACTRACE_ISDN=2 */
int direction; /* direction BLADE_TO_PSTN=0 PSTN_TO_BLADE=1 */
int trunk;
gint32 cas_bchannel;
const gchar *cas_frame_label;
} actrace_info_t;

View File

@ -60,13 +60,13 @@ static gint ett_aim_buddylist = -1;
static int dissect_aim_buddylist_buddylist(tvbuff_t *tvb, packet_info *pinfo, proto_tree *buddy_tree)
{
int offset = 0;
while(tvb_length_remaining(tvb, offset) > 0) {
while (tvb_length_remaining(tvb, offset) > 0) {
offset = dissect_aim_buddyname( tvb, pinfo, offset, buddy_tree);
}
return offset;
}
static int dissect_aim_buddylist_rights_repl(tvbuff_t *tvb, packet_info *pinfo, proto_tree *buddy_tree)
static int dissect_aim_buddylist_rights_repl(tvbuff_t *tvb, packet_info *pinfo, proto_tree *buddy_tree)
{
return dissect_aim_tlv_sequence(tvb, pinfo, 0, buddy_tree, aim_buddylist_tlvs);
}
@ -79,8 +79,8 @@ static int dissect_aim_buddylist_reject(tvbuff_t *tvb, packet_info *pinfo, proto
static int dissect_aim_buddylist_oncoming(tvbuff_t *tvb, packet_info *pinfo, proto_tree *buddy_tree)
{
guchar buddyname[MAX_BUDDYNAME_LENGTH+1];
int offset = 0;
int buddyname_length = aim_get_buddyname( buddyname, tvb, offset, offset + 1 );
int offset = 0;
int buddyname_length = aim_get_buddyname( buddyname, tvb, offset, offset + 1 );
col_set_str(pinfo->cinfo, COL_INFO, "Oncoming Buddy");
col_append_fstr(pinfo->cinfo, COL_INFO, ": %s",
@ -89,7 +89,7 @@ static int dissect_aim_buddylist_oncoming(tvbuff_t *tvb, packet_info *pinfo, pro
offset += dissect_aim_buddyname(tvb, pinfo, offset, buddy_tree);
/* Warning level */
proto_tree_add_item(buddy_tree, hf_aim_userinfo_warninglevel, tvb, offset,
proto_tree_add_item(buddy_tree, hf_aim_userinfo_warninglevel, tvb, offset,
2, ENC_BIG_ENDIAN);
offset += 2;
@ -98,12 +98,12 @@ static int dissect_aim_buddylist_oncoming(tvbuff_t *tvb, packet_info *pinfo, pro
return offset;
}
static int dissect_aim_buddylist_offgoing(tvbuff_t *tvb, packet_info *pinfo, proto_tree *buddy_tree)
static int dissect_aim_buddylist_offgoing(tvbuff_t *tvb, packet_info *pinfo, proto_tree *buddy_tree)
{
guchar buddyname[MAX_BUDDYNAME_LENGTH+1];
int offset = 0;
int buddyname_length = aim_get_buddyname( buddyname, tvb, offset, offset + 1 );
int offset = 0;
int buddyname_length = aim_get_buddyname( buddyname, tvb, offset, offset + 1 );
col_set_str(pinfo->cinfo, COL_INFO, "Offgoing Buddy");
col_append_fstr(pinfo->cinfo, COL_INFO, ": %s",
@ -112,7 +112,7 @@ static int dissect_aim_buddylist_offgoing(tvbuff_t *tvb, packet_info *pinfo, pro
offset += dissect_aim_buddyname(tvb, pinfo, offset, buddy_tree);
/* Warning level */
proto_tree_add_item(buddy_tree, hf_aim_userinfo_warninglevel, tvb, offset,
proto_tree_add_item(buddy_tree, hf_aim_userinfo_warninglevel, tvb, offset,
2, ENC_BIG_ENDIAN);
offset += 2;
@ -127,7 +127,7 @@ static const aim_subtype aim_fnac_family_buddylist[] = {
{ 0x0005, "Remove Buddy", dissect_aim_buddylist_buddylist },
{ 0x0006, "Watchers List Request", NULL },
{ 0x0007, "Watchers List Reply", dissect_aim_buddylist_buddylist },
{ 0x000a, "Reject Buddy", dissect_aim_buddylist_reject },
{ 0x000a, "Reject Buddy", dissect_aim_buddylist_reject },
{ 0x000b, "Oncoming Buddy", dissect_aim_buddylist_oncoming },
{ 0x000c, "Offgoing Buddy", dissect_aim_buddylist_offgoing },
{ 0, NULL, NULL }
@ -141,7 +141,7 @@ proto_register_aim_buddylist(void)
/* Setup list of header fields */
static hf_register_info hf[] = {
{ &hf_aim_userinfo_warninglevel,
{ "Warning Level", "aim_buddylist.userinfo.warninglevel", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL },
{ "Warning Level", "aim_buddylist.userinfo.warninglevel", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL },
},
};

View File

@ -47,11 +47,11 @@ void proto_reg_handoff_aim_icq(void);
static const value_string aim_icq_data_types[] = {
{ ICQ_CLI_OFFLINE_MESSAGE_REQ, "Offline Message Request" },
{ ICQ_SRV_OFFLINE_MSGS, "Offline Messages Reply" },
{ ICQ_SRV_OFFLINE_MSGS, "Offline Messages Reply" },
{ ICQ_SRV_END_OF_OFFLINE_MSGS, "End Of Offline Messages Reply" },
{ ICQ_CLI_DELETE_OFFLINE_MSGS, "Delete Offline Messages Request" },
{ ICQ_CLI_META_INFO_REQ, "Metainfo Request" },
{ ICQ_SRV_META_INFO_REPL, "Metainfo Reply" },
{ ICQ_CLI_META_INFO_REQ, "Metainfo Request" },
{ ICQ_SRV_META_INFO_REPL, "Metainfo Reply" },
{ 0, NULL }
};
@ -143,15 +143,15 @@ static struct
static int dissect_aim_tlv_value_icq(proto_item *ti _U_, guint16 subtype _U_, tvbuff_t *tvb _U_, packet_info *pinfo)
{
int offset = 0;
int i;
int offset = 0;
int i;
proto_item *subtype_item;
guint16 req_type, req_subtype;
proto_tree *t = proto_item_add_subtree(ti, ett_aim_icq_tlv);
guint16 req_type, req_subtype;
proto_tree *t = proto_item_add_subtree(ti, ett_aim_icq_tlv);
proto_tree_add_item(t, hf_icq_tlv_data_chunk_size, tvb, offset, 2, ENC_LITTLE_ENDIAN);
offset += 2;
proto_tree_add_item(t, hf_icq_tlv_request_owner_uid, tvb, offset, 4, ENC_LITTLE_ENDIAN);
offset += 4;
@ -162,29 +162,29 @@ static int dissect_aim_tlv_value_icq(proto_item *ti _U_, guint16 subtype _U_, tv
proto_tree_add_item(t, hf_icq_tlv_request_seq_num, tvb, offset, 2, ENC_LITTLE_ENDIAN);
offset += 2;
switch(req_type) {
switch (req_type) {
case ICQ_CLI_OFFLINE_MESSAGE_REQ: return offset;
case ICQ_CLI_DELETE_OFFLINE_MSGS: return offset;
case ICQ_SRV_OFFLINE_MSGS:
/* FIXME */
break;
case ICQ_SRV_END_OF_OFFLINE_MSGS:
case ICQ_SRV_END_OF_OFFLINE_MSGS:
proto_tree_add_item(t, hf_icq_dropped_msg_flag, tvb, offset, 1, ENC_LITTLE_ENDIAN);
return offset+1;
case ICQ_CLI_META_INFO_REQ:
case ICQ_SRV_META_INFO_REPL:
req_subtype = tvb_get_letohs(tvb, offset);
subtype_item = proto_tree_add_item(t, hf_icq_meta_subtype, tvb, offset, 2, ENC_LITTLE_ENDIAN); offset+=2;
for(i = 0; icq_calls[i].name; i++) {
if(icq_calls[i].subtype == req_subtype) break;
for (i = 0; icq_calls[i].name; i++) {
if (icq_calls[i].subtype == req_subtype) break;
}
col_set_str(pinfo->cinfo, COL_INFO, icq_calls[i].name?icq_calls[i].name:"Unknown ICQ Meta Call");
proto_item_append_text(subtype_item, " (%s)", icq_calls[i].name?icq_calls[i].name:"Unknown");
if(icq_calls[i].dissector)
if (icq_calls[i].dissector)
return icq_calls[i].dissector(tvb_new_subset_remaining(tvb, offset), pinfo, t);
default:

View File

@ -43,9 +43,9 @@ void proto_reg_handoff_aim_location(void);
#define AIM_LOCATION_RIGHTS_TLV_MAX_CAPABILITIES 0x0002
static const aim_tlv aim_location_rights_tlvs[] = {
{ AIM_LOCATION_RIGHTS_TLV_MAX_PROFILE_LENGTH, "Max Profile Length", dissect_aim_tlv_value_uint16 },
{ AIM_LOCATION_RIGHTS_TLV_MAX_CAPABILITIES, "Max capabilities", dissect_aim_tlv_value_uint16 },
{ 0, NULL, NULL }
{ AIM_LOCATION_RIGHTS_TLV_MAX_PROFILE_LENGTH, "Max Profile Length", dissect_aim_tlv_value_uint16 },
{ AIM_LOCATION_RIGHTS_TLV_MAX_CAPABILITIES, "Max capabilities", dissect_aim_tlv_value_uint16 },
{ 0, NULL, NULL }
};
#define AIM_LOCATE_TAG_TLV_SIG_TYPE 0x0001
@ -60,16 +60,16 @@ static const aim_tlv aim_location_rights_tlvs[] = {
#define AIM_LOCATE_TAG_TLV_HTML_INFO_DATA 0x000E
static const aim_tlv aim_locate_tags_tlvs[] = {
{ AIM_LOCATE_TAG_TLV_SIG_TYPE, "Signature MIME Type", dissect_aim_tlv_value_string },
{ AIM_LOCATE_TAG_TLV_SIG_DATA, "Signature Data", dissect_aim_tlv_value_string },
{ AIM_LOCATE_TAG_TLV_UNAVAILABLE_TYPE, "Away Message MIME Type", dissect_aim_tlv_value_string },
{ AIM_LOCATE_TAG_TLV_UNAVAILABLE_DATA, "Away Message Data", dissect_aim_tlv_value_string },
{ AIM_LOCATE_TAG_TLV_CAPABILITIES, "Client Capabilities", dissect_aim_tlv_value_client_capabilities },
{ AIM_LOCATE_TAG_TLV_SIG_TIME, "Signature Time", dissect_aim_tlv_value_time },
{ AIM_LOCATE_TAG_TLV_UNAVAILABLE_TIME, "Away Message Time", dissect_aim_tlv_value_time },
{ AIM_LOCATE_TAG_TLV_SUPPORT_HOST_SIG, "Enable Server Based Profiles", dissect_aim_tlv_value_uint8 },
{ AIM_LOCATE_TAG_TLV_HTML_INFO_TYPE, "Host Based Buddy MIME Type", dissect_aim_tlv_value_string },
{ AIM_LOCATE_TAG_TLV_HTML_INFO_DATA, "Host Bases Buddy Data", dissect_aim_tlv_value_string },
{ AIM_LOCATE_TAG_TLV_SIG_TYPE, "Signature MIME Type" , dissect_aim_tlv_value_string },
{ AIM_LOCATE_TAG_TLV_SIG_DATA, "Signature Data" , dissect_aim_tlv_value_string },
{ AIM_LOCATE_TAG_TLV_UNAVAILABLE_TYPE, "Away Message MIME Type" , dissect_aim_tlv_value_string },
{ AIM_LOCATE_TAG_TLV_UNAVAILABLE_DATA, "Away Message Data" , dissect_aim_tlv_value_string },
{ AIM_LOCATE_TAG_TLV_CAPABILITIES, "Client Capabilities" , dissect_aim_tlv_value_client_capabilities },
{ AIM_LOCATE_TAG_TLV_SIG_TIME, "Signature Time" , dissect_aim_tlv_value_time },
{ AIM_LOCATE_TAG_TLV_UNAVAILABLE_TIME, "Away Message Time" , dissect_aim_tlv_value_time },
{ AIM_LOCATE_TAG_TLV_SUPPORT_HOST_SIG, "Enable Server Based Profiles" , dissect_aim_tlv_value_uint8 },
{ AIM_LOCATE_TAG_TLV_HTML_INFO_TYPE, "Host Based Buddy MIME Type" , dissect_aim_tlv_value_string },
{ AIM_LOCATE_TAG_TLV_HTML_INFO_DATA, "Host Bases Buddy Data" , dissect_aim_tlv_value_string },
{ 0, NULL, NULL }
};
@ -78,10 +78,10 @@ static const aim_tlv aim_locate_tags_tlvs[] = {
#define FAMILY_LOCATION_USERINFO_INFOTYPE_CAPS 0x0005
static const value_string aim_snac_location_request_user_info_infotypes[] = {
{ FAMILY_LOCATION_USERINFO_INFOTYPE_GENERALINFO, "Request General Info" },
{ FAMILY_LOCATION_USERINFO_INFOTYPE_AWAYMSG, "Request Away Message" },
{ FAMILY_LOCATION_USERINFO_INFOTYPE_CAPS, "Request Capabilities" },
{ 0, NULL }
{ FAMILY_LOCATION_USERINFO_INFOTYPE_GENERALINFO, "Request General Info" },
{ FAMILY_LOCATION_USERINFO_INFOTYPE_AWAYMSG, "Request Away Message" },
{ FAMILY_LOCATION_USERINFO_INFOTYPE_CAPS, "Request Capabilities" },
{ 0, NULL }
};
/* Initialize the protocol and registered fields */
@ -107,7 +107,7 @@ static int dissect_aim_location_setuserinfo(tvbuff_t *tvb, packet_info *pinfo, p
static int dissect_aim_location_watcher_notification(tvbuff_t *tvb, packet_info *pinfo, proto_tree *loc_tree)
{
int offset = 0;
while(tvb_length_remaining(tvb, offset) > 0) {
while (tvb_length_remaining(tvb, offset) > 0) {
offset = dissect_aim_buddyname(tvb, pinfo, offset, loc_tree);
}
return offset;
@ -118,15 +118,13 @@ static int dissect_aim_location_user_info_query(tvbuff_t *tvb, packet_info *pinf
return dissect_aim_buddyname(tvb, pinfo, 4, loc_tree);
}
static int dissect_aim_snac_location_request_user_information(tvbuff_t *tvb,
packet_info *pinfo _U_,
proto_tree *tree)
static int dissect_aim_snac_location_request_user_information(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree)
{
int offset = 0;
int offset = 0;
guint8 buddyname_length = 0;
/* Info Type */
proto_tree_add_item(tree, hf_aim_snac_location_request_user_info_infotype,
proto_tree_add_item(tree, hf_aim_snac_location_request_user_info_infotype,
tvb, offset, 2, ENC_BIG_ENDIAN);
offset += 2;
@ -142,11 +140,9 @@ static int dissect_aim_snac_location_request_user_information(tvbuff_t *tvb,
return offset;
}
static int dissect_aim_snac_location_user_information(tvbuff_t *tvb,
packet_info *pinfo _U_,
proto_tree *tree)
static int dissect_aim_snac_location_user_information(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree)
{
int offset = 0;
int offset = 0;
guint8 buddyname_length = 0;
/* Buddy Name length */
@ -168,15 +164,15 @@ static int dissect_aim_snac_location_user_information(tvbuff_t *tvb,
}
static const aim_subtype aim_fnac_family_location[] = {
{ 0x0001, "Error", dissect_aim_snac_error },
{ 0x0002, "Request Rights", NULL },
{ 0x0003, "Rights Info", dissect_aim_location_rightsinfo },
{ 0x0004, "Set User Info", dissect_aim_location_setuserinfo },
{ 0x0005, "Request User Info", dissect_aim_snac_location_request_user_information },
{ 0x0006, "User Info", dissect_aim_snac_location_user_information },
{ 0x0007, "Watcher Subrequest", NULL },
{ 0x0008, "Watcher Notification", dissect_aim_location_watcher_notification },
{ 0x0015, "User Info Query", dissect_aim_location_user_info_query },
{ 0x0001, "Error" , dissect_aim_snac_error },
{ 0x0002, "Request Rights" , NULL },
{ 0x0003, "Rights Info" , dissect_aim_location_rightsinfo },
{ 0x0004, "Set User Info" , dissect_aim_location_setuserinfo },
{ 0x0005, "Request User Info" , dissect_aim_snac_location_request_user_information },
{ 0x0006, "User Info" , dissect_aim_snac_location_user_information },
{ 0x0007, "Watcher Subrequest" , NULL },
{ 0x0008, "Watcher Notification" , dissect_aim_location_watcher_notification },
{ 0x0015, "User Info Query" , dissect_aim_location_user_info_query },
{ 0, NULL, NULL }
};
@ -189,16 +185,16 @@ proto_register_aim_location(void)
/* Setup list of header fields */
static hf_register_info hf[] = {
{ &hf_aim_buddyname_len,
{ "Buddyname len", "aim_location.buddynamelen", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL }
{ "Buddyname len", "aim_location.buddynamelen", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL }
},
{ &hf_aim_buddyname,
{ "Buddy Name", "aim_location.buddyname", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }
{ "Buddy Name", "aim_location.buddyname", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }
},
{ &hf_aim_userinfo_warninglevel,
{ "Warning Level", "aim_location.userinfo.warninglevel", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL },
{ "Warning Level", "aim_location.userinfo.warninglevel", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL },
},
{ &hf_aim_snac_location_request_user_info_infotype,
{ "Infotype", "aim_location.snac.request_user_info.infotype", FT_UINT16, BASE_HEX, VALS(aim_snac_location_request_user_info_infotypes), 0x0,
{ "Infotype", "aim_location.snac.request_user_info.infotype", FT_UINT16, BASE_HEX, VALS(aim_snac_location_request_user_info_infotypes), 0x0,
NULL, HFILL }
},
};

View File

@ -43,7 +43,7 @@ static int proto_aim_oft = -1;
/*static int ett_aim_recvfile = -1;
static int ett_aim_sendfile = -1;*/
/*
/*
* cookie (8 chars)
* encrypt (uint16)
* compress (uint16)
@ -70,7 +70,7 @@ static int ett_aim_sendfile = -1;*/
* nencode (uint16)
* nlanguage (uint16)
* filename (raw, 64 chars)
*
*
* length of file (uint16)
* file data
*/
@ -102,7 +102,7 @@ proto_reg_handoff_aim_oft(void)
{
/* dissector_handle_t aim_handle;*/
/* FIXME
/* FIXME
aim_handle = new_create_dissector_handle(dissect_aim, proto_aim);
dissector_add_uint("tcp.port", TCP_PORT_AIM, aim_handle);*/
}

View File

@ -395,7 +395,7 @@ dissect_amr_be(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, gint amr
/* Check if we have enough data available for our frames */
if (tvb_reported_length_remaining(tvb, bitcount/8) < bytes_needed_for_frames) {
item = proto_tree_add_text(tree, tvb, bitcount/8, bytes_needed_for_frames,
item = proto_tree_add_text(tree, tvb, bitcount/8, bytes_needed_for_frames,
"Error: %d Bytes available, %d would be needed!",
tvb_reported_length_remaining(tvb, bitcount/8),
bytes_needed_for_frames);
@ -596,7 +596,7 @@ dissect_amr_name(tvbuff_t *tvb _U_, packet_info *pinfo, proto_tree *tree)
actx = get_asn1_ctx(pinfo->private_data);
DISSECTOR_ASSERT(actx != NULL);
if (tree && actx != NULL) {
if (tree && (actx != NULL)) {
amr_capability_t *ftr;
ftr = find_cap(pinfo->match_string);
if (ftr) {

File diff suppressed because it is too large Load Diff

View File

@ -6262,7 +6262,7 @@ static const value_string ansi_a_ms_info_rec_signal_type_vals[] = {
{ 0x3, "Reserved"},
{ 0, NULL}
};
static const value_string ansi_a_ms_info_rec_signal_alert_pitch_vals[] = {
{ 0x0, "Medium pitch (standard alert)"},
{ 0x1, "High pitch"},
@ -12426,8 +12426,8 @@ proto_reg_handoff_ansi_a(void)
dissector_add_uint("bsap.pdu_type", BSSAP_PDU_TYPE_BSMAP, bsmap_handle);
dissector_add_uint("bsap.pdu_type", BSSAP_PDU_TYPE_DTAP, dtap_handle);
dissector_add_string("media_type", "application/femtointerfacemsg", sip_dtap_bsmap_handle);
dissector_add_string("media_type", "application/vnd.3gpp2.femtointerfacemsg", sip_dtap_bsmap_handle);
dissector_add_string("media_type", "application/femtointerfacemsg", sip_dtap_bsmap_handle);
dissector_add_string("media_type", "application/vnd.3gpp2.femtointerfacemsg", sip_dtap_bsmap_handle);
ansi_a_prefs_initialized = TRUE;
}

View File

@ -43,7 +43,7 @@ ext_value_string_t;
/*
* the following allows TAP code access to the messages
* without having to duplicate it. With MSVC and a
* without having to duplicate it. With MSVC and a
* libwireshark.dll, we need a special declaration.
*/
WS_DLL_PUBLIC const ext_value_string_t *ansi_a_bsmap_strings;

View File

@ -111,8 +111,6 @@ static guint32 arp_request_count = 0;
static nstime_t time_at_start_of_count;
/* Map of (IP address -> MAC address) to detect duplicate IP addresses
Key is unsigned32 */
static GHashTable *address_hash_table = NULL;
@ -227,7 +225,7 @@ typedef struct duplicate_result_key {
#endif
#ifndef ARPOP_MAPOS_UNARP
#define ARPOP_MAPOS_UNARP 23 /*MAPOS UNARP*/
#define ARPOP_MAPOS_UNARP 23 /*MAPOS UNARP*/
#endif
#ifndef ARPOP_EXP1
@ -237,16 +235,16 @@ typedef struct duplicate_result_key {
#define ARPOP_EXP2 25 /* Experimental 2 */
#endif
#ifndef ARPOP_RESERVED1
#define ARPOP_RESERVED1 0 /*Reserved opcode 1*/
#ifndef ARPOP_RESERVED1
#define ARPOP_RESERVED1 0 /*Reserved opcode 1*/
#endif
#ifndef ARPOP_RESERVED2
#ifndef ARPOP_RESERVED2
#define ARPOP_RESERVED2 65535 /*Reserved opcode 2*/
#endif
#ifndef DRARPERR_RESTRICTED
#define DRARPERR_RESTRICTED 1
#define DRARPERR_RESTRICTED 1
#endif
#ifndef DRARPERR_NOADDRESSES
@ -268,66 +266,66 @@ typedef struct duplicate_result_key {
static const value_string op_vals[] = {
{ARPOP_REQUEST, "request" },
{ARPOP_REPLY, "reply" },
{ARPOP_RREQUEST, "reverse request"},
{ARPOP_RREPLY, "reverse reply" },
{ARPOP_DRARPREQUEST, "drarp request"},
{ARPOP_DRARPREPLY, "drarp reply"},
{ARPOP_DRARPERROR, "drarp error"},
{ARPOP_IREQUEST, "inverse request"},
{ARPOP_IREPLY, "inverse reply" },
{ATMARPOP_NAK, "arp nak" },
{ARPOP_MARS_REQUEST, "mars request"},
{ARPOP_MARS_MULTI, "mars multi"},
{ARPOP_MARS_MSERV, "mars mserv"},
{ARPOP_MARS_JOIN, "mars join"},
{ARPOP_MARS_LEAVE, "mars leave"},
{ARPOP_MARS_NAK, "mars nak"},
{ARPOP_MARS_UNSERV, "mars unserv"},
{ARPOP_MARS_SJOIN, "mars sjoin"},
{ARPOP_MARS_SLEAVE, "mars sleave"},
{ARPOP_MARS_GROUPLIST_REQUEST, "mars grouplist request"},
{ARPOP_MARS_GROUPLIST_REPLY, "mars gruoplist reply"},
{ARPOP_MARS_REDIRECT_MAP, "mars redirect map"},
{ARPOP_MAPOS_UNARP, "mapos unarp"},
{ARPOP_EXP1, "experimental 1" },
{ARPOP_EXP2, "experimental 2" },
{ARPOP_RESERVED1, "reserved"},
{ARPOP_RESERVED2, "reserved"},
{ARPOP_REQUEST, "request" },
{ARPOP_REPLY, "reply" },
{ARPOP_RREQUEST, "reverse request" },
{ARPOP_RREPLY, "reverse reply" },
{ARPOP_DRARPREQUEST, "drarp request" },
{ARPOP_DRARPREPLY, "drarp reply" },
{ARPOP_DRARPERROR, "drarp error" },
{ARPOP_IREQUEST, "inverse request" },
{ARPOP_IREPLY, "inverse reply" },
{ATMARPOP_NAK, "arp nak" },
{ARPOP_MARS_REQUEST, "mars request" },
{ARPOP_MARS_MULTI, "mars multi" },
{ARPOP_MARS_MSERV, "mars mserv" },
{ARPOP_MARS_JOIN, "mars join" },
{ARPOP_MARS_LEAVE, "mars leave" },
{ARPOP_MARS_NAK, "mars nak" },
{ARPOP_MARS_UNSERV, "mars unserv" },
{ARPOP_MARS_SJOIN, "mars sjoin" },
{ARPOP_MARS_SLEAVE, "mars sleave" },
{ARPOP_MARS_GROUPLIST_REQUEST, "mars grouplist request" },
{ARPOP_MARS_GROUPLIST_REPLY, "mars gruoplist reply" },
{ARPOP_MARS_REDIRECT_MAP, "mars redirect map" },
{ARPOP_MAPOS_UNARP, "mapos unarp" },
{ARPOP_EXP1, "experimental 1" },
{ARPOP_EXP2, "experimental 2" },
{ARPOP_RESERVED1, "reserved" },
{ARPOP_RESERVED2, "reserved" },
{0, NULL}};
static const value_string drarp_status[]={
{DRARPERR_RESTRICTED, "restricted"},
{DRARPERR_NOADDRESSES, "no address"},
{DRARPERR_SERVERDOWN, "serverdown"},
{DRARPERR_MOVED, "moved"},
{DRARPERR_FAILURE, "failure"},
{DRARPERR_RESTRICTED, "restricted" },
{DRARPERR_NOADDRESSES, "no address" },
{DRARPERR_SERVERDOWN, "serverdown" },
{DRARPERR_MOVED, "moved" },
{DRARPERR_FAILURE, "failure" },
{0, NULL}};
static const value_string atmop_vals[] = {
{ARPOP_REQUEST, "request" },
{ARPOP_REPLY, "reply" },
{ARPOP_IREQUEST, "inverse request"},
{ARPOP_IREPLY, "inverse reply" },
{ATMARPOP_NAK, "nak" },
{ARPOP_MARS_REQUEST, "mars request"},
{ARPOP_MARS_MULTI, "mars multi"},
{ARPOP_MARS_MSERV, "mars mserv"},
{ARPOP_MARS_JOIN, "mars join"},
{ARPOP_MARS_LEAVE, "mars leave"},
{ARPOP_MARS_NAK, "mars nak"},
{ARPOP_MARS_UNSERV, "mars unserv"},
{ARPOP_MARS_SJOIN, "mars sjoin"},
{ARPOP_MARS_SLEAVE, "mars sleave"},
{ARPOP_MARS_GROUPLIST_REQUEST, "mars grouplist request"},
{ARPOP_MARS_GROUPLIST_REPLY, "mars gruoplist reply"},
{ARPOP_MARS_REDIRECT_MAP, "mars redirect map"},
{ARPOP_MAPOS_UNARP, "mapos unarp"},
{ARPOP_EXP1, "experimental 1" },
{ARPOP_EXP2, "experimental 2" },
{ARPOP_RESERVED1, "reserved"},
{ARPOP_RESERVED2, "reserved"},
{ARPOP_REQUEST, "request" },
{ARPOP_REPLY, "reply" },
{ARPOP_IREQUEST, "inverse request" },
{ARPOP_IREPLY, "inverse reply" },
{ATMARPOP_NAK, "nak" },
{ARPOP_MARS_REQUEST, "mars request" },
{ARPOP_MARS_MULTI, "mars multi" },
{ARPOP_MARS_MSERV, "mars mserv" },
{ARPOP_MARS_JOIN, "mars join" },
{ARPOP_MARS_LEAVE, "mars leave" },
{ARPOP_MARS_NAK, "mars nak" },
{ARPOP_MARS_UNSERV, "mars unserv" },
{ARPOP_MARS_SJOIN, "mars sjoin" },
{ARPOP_MARS_SLEAVE, "mars sleave" },
{ARPOP_MARS_GROUPLIST_REQUEST, "mars grouplist request" },
{ARPOP_MARS_GROUPLIST_REPLY, "mars gruoplist reply" },
{ARPOP_MARS_REDIRECT_MAP, "mars redirect map" },
{ARPOP_MAPOS_UNARP, "mapos unarp" },
{ARPOP_EXP1, "experimental 1" },
{ARPOP_EXP2, "experimental 2" },
{ARPOP_RESERVED1, "reserved" },
{ARPOP_RESERVED2, "reserved" },
{0, NULL} };
#define ATMARP_IS_E164 0x40 /* bit in type/length for E.164 format */
@ -393,8 +391,8 @@ arpproaddr_to_str(const guint8 *ad, int ad_len, guint16 type)
static const gchar *
atmarpnum_to_str(const guint8 *ad, int ad_tl)
{
int ad_len = ad_tl & ATMARP_LEN_MASK;
gchar *cur;
int ad_len = ad_tl & ATMARP_LEN_MASK;
gchar *cur;
if (ad_len == 0)
return "<No address>";
@ -426,7 +424,7 @@ atmarpnum_to_str(const guint8 *ad, int ad_tl)
static const gchar *
atmarpsubaddr_to_str(const guint8 *ad, int ad_tl)
{
int ad_len = ad_tl & ATMARP_LEN_MASK;
int ad_len = ad_tl & ATMARP_LEN_MASK;
if (ad_len == 0)
return "<No address>";
@ -444,46 +442,46 @@ atmarpsubaddr_to_str(const guint8 *ad, int ad_tl)
}
const value_string arp_hrd_vals[] = {
{ARPHRD_NETROM, "NET/ROM pseudo" },
{ARPHRD_ETHER, "Ethernet" },
{ARPHRD_EETHER, "Experimental Ethernet"},
{ARPHRD_AX25, "AX.25" },
{ARPHRD_PRONET, "ProNET" },
{ARPHRD_CHAOS, "Chaos" },
{ARPHRD_IEEE802, "IEEE 802" },
{ARPHRD_ARCNET, "ARCNET" },
{ARPHRD_HYPERCH, "Hyperchannel" },
{ARPHRD_LANSTAR, "Lanstar" },
{ARPHRD_AUTONET, "Autonet Short Address"},
{ARPHRD_LOCALTLK, "Localtalk" },
{ARPHRD_LOCALNET, "LocalNet" },
{ARPHRD_ULTRALNK, "Ultra link" },
{ARPHRD_SMDS, "SMDS" },
{ARPHRD_DLCI, "Frame Relay DLCI" },
{ARPHRD_ATM, "ATM" },
{ARPHRD_HDLC, "HDLC" },
{ARPHRD_FIBREC, "Fibre Channel" },
{ARPHRD_ATM2225, "ATM (RFC 2225)" },
{ARPHRD_SERIAL, "Serial Line" },
{ARPHRD_ATM2, "ATM" },
{ARPHRD_MS188220, "MIL-STD-188-220" },
{ARPHRD_METRICOM, "Metricom STRIP" },
{ARPHRD_IEEE1394, "IEEE 1394.1995" },
{ARPHRD_MAPOS, "MAPOS" },
{ARPHRD_TWINAX, "Twinaxial" },
{ARPHRD_EUI_64, "EUI-64" },
{ARPHRD_HIPARP, "HIPARP" },
{ARPHRD_IP_ARP_ISO_7816_3, "IP and ARP over ISO 7816-3"},
{ARPHRD_ARPSEC, "ARPSec" },
{ARPHRD_IPSEC_TUNNEL, "IPsec tunnel"},
{ARPHRD_INFINIBAND, "InfiniBand" },
{ARPHRD_TIA_102_PRJ_25_CAI, "TIA-102 Project 25 CAI"},
{ARPHRD_WIEGAND_INTERFACE, "Wiegand Interface"},
{ARPHRD_PURE_IP, "Pure IP" },
{ARPHDR_HW_EXP1, "Experimental 1"},
{ARPHDR_HFI, "HFI" },
{ARPHDR_HW_EXP2, "Experimental 2"},
{0, NULL } };
{ARPHRD_NETROM, "NET/ROM pseudo" },
{ARPHRD_ETHER, "Ethernet" },
{ARPHRD_EETHER, "Experimental Ethernet" },
{ARPHRD_AX25, "AX.25" },
{ARPHRD_PRONET, "ProNET" },
{ARPHRD_CHAOS, "Chaos" },
{ARPHRD_IEEE802, "IEEE 802" },
{ARPHRD_ARCNET, "ARCNET" },
{ARPHRD_HYPERCH, "Hyperchannel" },
{ARPHRD_LANSTAR, "Lanstar" },
{ARPHRD_AUTONET, "Autonet Short Address" },
{ARPHRD_LOCALTLK, "Localtalk" },
{ARPHRD_LOCALNET, "LocalNet" },
{ARPHRD_ULTRALNK, "Ultra link" },
{ARPHRD_SMDS, "SMDS" },
{ARPHRD_DLCI, "Frame Relay DLCI" },
{ARPHRD_ATM, "ATM" },
{ARPHRD_HDLC, "HDLC" },
{ARPHRD_FIBREC, "Fibre Channel" },
{ARPHRD_ATM2225, "ATM (RFC 2225)" },
{ARPHRD_SERIAL, "Serial Line" },
{ARPHRD_ATM2, "ATM" },
{ARPHRD_MS188220, "MIL-STD-188-220" },
{ARPHRD_METRICOM, "Metricom STRIP" },
{ARPHRD_IEEE1394, "IEEE 1394.1995" },
{ARPHRD_MAPOS, "MAPOS" },
{ARPHRD_TWINAX, "Twinaxial" },
{ARPHRD_EUI_64, "EUI-64" },
{ARPHRD_HIPARP, "HIPARP" },
{ARPHRD_IP_ARP_ISO_7816_3, "IP and ARP over ISO 7816-3" },
{ARPHRD_ARPSEC, "ARPSec" },
{ARPHRD_IPSEC_TUNNEL, "IPsec tunnel" },
{ARPHRD_INFINIBAND, "InfiniBand" },
{ARPHRD_TIA_102_PRJ_25_CAI, "TIA-102 Project 25 CAI" },
{ARPHRD_WIEGAND_INTERFACE, "Wiegand Interface" },
{ARPHRD_PURE_IP, "Pure IP" },
{ARPHDR_HW_EXP1, "Experimental 1" },
{ARPHDR_HFI, "HFI" },
{ARPHDR_HW_EXP2, "Experimental 2" },
{0, NULL } };
/* Offsets of fields within an ARP packet. */
#define AR_HRD 0
@ -494,13 +492,13 @@ const value_string arp_hrd_vals[] = {
#define MIN_ARP_HEADER_SIZE 8
/* Offsets of fields within an ATMARP packet. */
#define ATM_AR_HRD 0
#define ATM_AR_PRO 2
#define ATM_AR_SHTL 4
#define ATM_AR_SSTL 5
#define ATM_AR_OP 6
#define ATM_AR_SPLN 8
#define ATM_AR_THTL 9
#define ATM_AR_HRD 0
#define ATM_AR_PRO 2
#define ATM_AR_SHTL 4
#define ATM_AR_SSTL 5
#define ATM_AR_OP 6
#define ATM_AR_SPLN 8
#define ATM_AR_THTL 9
#define ATM_AR_TSTL 10
#define ATM_AR_TPLN 11
#define MIN_ATMARP_HEADER_SIZE 12
@ -509,7 +507,7 @@ static void
dissect_atm_number(tvbuff_t *tvb, int offset, int tl, int hf_e164,
int hf_nsap, proto_tree *tree)
{
int len = tl & ATMARP_LEN_MASK;
int len = tl & ATMARP_LEN_MASK;
proto_item *ti;
proto_tree *nsap_tree;
@ -636,9 +634,9 @@ check_for_duplicate_addresses(packet_info *pinfo, proto_tree *tree,
const guint8 *mac, guint32 ip,
guint32 *duplicate_ip)
{
address_hash_value *value;
address_hash_value *result = NULL;
duplicate_result_key result_key = {pinfo->fd->num, ip};
address_hash_value *value;
address_hash_value *result = NULL;
duplicate_result_key result_key = {pinfo->fd->num, ip};
/* Look up existing result */
if (pinfo->fd->flags.visited) {
@ -830,31 +828,31 @@ check_for_storm_count(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
static void
dissect_atmarp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
guint16 ar_hrd;
guint16 ar_pro;
guint8 ar_shtl;
guint8 ar_shl;
guint8 ar_sstl;
guint8 ar_ssl;
guint16 ar_op;
guint8 ar_spln;
guint8 ar_thtl;
guint8 ar_thl;
guint8 ar_tstl;
guint8 ar_tsl;
guint8 ar_tpln;
int tot_len;
proto_tree *arp_tree;
proto_item *ti;
const gchar *op_str;
int sha_offset, ssa_offset, spa_offset;
int tha_offset, tsa_offset, tpa_offset;
const guint8 *sha_val, *ssa_val, *spa_val;
const guint8 *tha_val, *tsa_val, *tpa_val;
const gchar *sha_str, *ssa_str, *spa_str;
const gchar *tha_str, *tsa_str, *tpa_str;
proto_tree *tl_tree;
proto_item *tl;
guint16 ar_hrd;
guint16 ar_pro;
guint8 ar_shtl;
guint8 ar_shl;
guint8 ar_sstl;
guint8 ar_ssl;
guint16 ar_op;
guint8 ar_spln;
guint8 ar_thtl;
guint8 ar_thl;
guint8 ar_tstl;
guint8 ar_tsl;
guint8 ar_tpln;
int tot_len;
proto_tree *arp_tree;
proto_item *ti;
const gchar *op_str;
int sha_offset, ssa_offset, spa_offset;
int tha_offset, tsa_offset, tpa_offset;
const guint8 *sha_val, *ssa_val, *spa_val;
const guint8 *tha_val, *tsa_val, *tpa_val;
const gchar *sha_str, *ssa_str, *spa_str;
const gchar *tha_str, *tsa_str, *tpa_str;
proto_tree *tl_tree;
proto_item *tl;
/* Override the setting to "ARP/RARP". */
pinfo->current_proto = "ATMARP";
@ -998,14 +996,14 @@ dissect_atmarp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
case ARPOP_MARS_REQUEST:
col_add_fstr(pinfo->cinfo, COL_INFO, "MARS request from %s%s%s at %s",
sha_str,
((ssa_str != NULL) ? "," : ""),
((ssa_str != NULL) ? "," : ""),
((ssa_str != NULL) ? ssa_str : ""),
spa_str);
break;
case ARPOP_MARS_MULTI:
col_add_fstr(pinfo->cinfo, COL_INFO, "MARS MULTI request from %s%s%s at %s",
sha_str,
sha_str,
((ssa_str != NULL) ? "," : ""),
((ssa_str != NULL) ? ssa_str : ""),
spa_str);
@ -1013,7 +1011,7 @@ dissect_atmarp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
case ARPOP_MARS_MSERV:
col_add_fstr(pinfo->cinfo, COL_INFO, "MARS MSERV request from %s%s%s at %s",
sha_str,
sha_str,
((ssa_str != NULL) ? "," : ""),
((ssa_str != NULL) ? ssa_str : ""),
spa_str);
@ -1021,7 +1019,7 @@ dissect_atmarp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
case ARPOP_MARS_JOIN:
col_add_fstr(pinfo->cinfo, COL_INFO, "MARS JOIN request from %s%s%s at %s",
sha_str,
sha_str,
((ssa_str != NULL) ? "," : ""),
((ssa_str != NULL) ? ssa_str : ""),
spa_str);
@ -1029,7 +1027,7 @@ dissect_atmarp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
case ARPOP_MARS_LEAVE:
col_add_fstr(pinfo->cinfo, COL_INFO, "MARS LEAVE from %s%s%s at %s",
sha_str,
sha_str,
((ssa_str != NULL) ? "," : ""),
((ssa_str != NULL) ? ssa_str : ""),
spa_str);
@ -1220,20 +1218,20 @@ dissect_atmarp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
static void
dissect_ax25arp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
#define ARP_AX25 204
#define ARP_AX25 204
guint16 ar_hrd;
guint16 ar_pro;
guint8 ar_hln;
guint8 ar_pln;
guint16 ar_op;
int tot_len;
guint16 ar_hrd;
guint16 ar_pro;
guint8 ar_hln;
guint8 ar_pln;
guint16 ar_op;
int tot_len;
proto_tree *arp_tree = NULL;
proto_item *ti;
const gchar *op_str;
int sha_offset, spa_offset, tha_offset, tpa_offset;
const guint8 /* *sha_val, */ *spa_val, /* *tha_val, */ *tpa_val;
gboolean is_gratuitous;
int sha_offset, spa_offset, tha_offset, tpa_offset;
const guint8 /* *sha_val, */ *spa_val, /* *tha_val, */ *tpa_val;
gboolean is_gratuitous;
/* Hardware Address Type */
ar_hrd = tvb_get_ntohs(tvb, AR_HRD);
@ -1293,9 +1291,9 @@ dissect_ax25arp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
/* ARP requests/replies with the same sender and target protocol
address are flagged as "gratuitous ARPs", i.e. ARPs sent out as,
in effect, an announcement that the machine has MAC address
XX:XX:XX:XX:XX:XX and IPv4 address YY.YY.YY.YY. Requests are to
XX:XX:XX:XX:XX:XX and IPv4 address YY.YY.YY.YY. Requests are to
provoke complaints if some other machine has the same IPv4 address,
replies are used to announce relocation of network address, like
replies are used to announce relocation of network address, like
in failover solutions. */
if (((ar_op == ARPOP_REQUEST) || (ar_op == ARPOP_REPLY)) && (memcmp(spa_val, tpa_val, ar_pln) == 0))
is_gratuitous = TRUE;
@ -1304,10 +1302,10 @@ dissect_ax25arp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
switch (ar_op) {
case ARPOP_REQUEST:
if (is_gratuitous)
col_add_fstr(pinfo->cinfo, COL_INFO, "Gratuitous ARP for %s (Request)",
arpproaddr_to_str(tpa_val, ar_pln, ar_pro));
else
if (is_gratuitous)
col_add_fstr(pinfo->cinfo, COL_INFO, "Gratuitous ARP for %s (Request)",
arpproaddr_to_str(tpa_val, ar_pln, ar_pro));
else
col_add_fstr(pinfo->cinfo, COL_INFO, "Who has %s? Tell %s",
arpproaddr_to_str(tpa_val, ar_pln, ar_pro),
arpproaddr_to_str(spa_val, ar_pln, ar_pro));
@ -1348,16 +1346,16 @@ dissect_ax25arp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
}
if (tree) {
if ((op_str = try_val_to_str(ar_op, op_vals))) {
if ((op_str = try_val_to_str(ar_op, op_vals))) {
if (is_gratuitous && (ar_op == ARPOP_REQUEST))
op_str = "request/gratuitous ARP";
if (is_gratuitous && (ar_op == ARPOP_REPLY))
op_str = "reply/gratuitous ARP";
ti = proto_tree_add_protocol_format(tree, proto_arp, tvb, 0, tot_len,
"Address Resolution Protocol (%s)", op_str);
"Address Resolution Protocol (%s)", op_str);
} else
ti = proto_tree_add_protocol_format(tree, proto_arp, tvb, 0, tot_len,
"Address Resolution Protocol (opcode 0x%04x)", ar_op);
"Address Resolution Protocol (opcode 0x%04x)", ar_op);
arp_tree = proto_item_add_subtree(ti, ett_arp);
proto_tree_add_uint(arp_tree, hf_arp_hard_type, tvb, AR_HRD, 2, ar_hrd);
proto_tree_add_uint(arp_tree, hf_arp_proto_type, tvb, AR_PRO, 2, ar_pro);
@ -1366,25 +1364,25 @@ dissect_ax25arp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
proto_tree_add_uint(arp_tree, hf_arp_opcode, tvb, AR_OP, 2, ar_op);
if (ar_hln != 0) {
proto_tree_add_item(arp_tree,
ARP_HW_IS_AX25(ar_hrd, ar_hln) ? hf_arp_src_hw_ax25 : hf_arp_src_hw,
tvb, sha_offset, ar_hln, FALSE);
ARP_HW_IS_AX25(ar_hrd, ar_hln) ? hf_arp_src_hw_ax25 : hf_arp_src_hw,
tvb, sha_offset, ar_hln, FALSE);
}
if (ar_pln != 0) {
proto_tree_add_item(arp_tree,
ARP_PRO_IS_IPv4(ar_pro, ar_pln) ? hf_arp_src_proto_ipv4
: hf_arp_src_proto,
tvb, spa_offset, ar_pln, FALSE);
ARP_PRO_IS_IPv4(ar_pro, ar_pln) ? hf_arp_src_proto_ipv4
: hf_arp_src_proto,
tvb, spa_offset, ar_pln, FALSE);
}
if (ar_hln != 0) {
proto_tree_add_item(arp_tree,
ARP_HW_IS_AX25(ar_hrd, ar_hln) ? hf_arp_dst_hw_ax25 : hf_arp_dst_hw,
tvb, tha_offset, ar_hln, FALSE);
ARP_HW_IS_AX25(ar_hrd, ar_hln) ? hf_arp_dst_hw_ax25 : hf_arp_dst_hw,
tvb, tha_offset, ar_hln, FALSE);
}
if (ar_pln != 0) {
proto_tree_add_item(arp_tree,
ARP_PRO_IS_IPv4(ar_pro, ar_pln) ? hf_arp_dst_proto_ipv4
: hf_arp_dst_proto,
tvb, tpa_offset, ar_pln, FALSE);
ARP_PRO_IS_IPv4(ar_pro, ar_pln) ? hf_arp_dst_proto_ipv4
: hf_arp_dst_proto,
tvb, tpa_offset, ar_pln, FALSE);
}
}
@ -1399,20 +1397,20 @@ static const guint8 mac_allzero[6] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
static void
dissect_arp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
guint16 ar_hrd;
guint16 ar_pro;
guint8 ar_hln;
guint8 ar_pln;
guint16 ar_op;
int tot_len;
proto_tree *arp_tree = NULL;
proto_item *ti, *item;
const gchar *op_str;
int sha_offset, spa_offset, tha_offset, tpa_offset;
const guint8 *spa_val, *tpa_val;
gboolean is_gratuitous;
gboolean duplicate_detected = FALSE;
guint32 duplicate_ip = 0;
guint16 ar_hrd;
guint16 ar_pro;
guint8 ar_hln;
guint8 ar_pln;
guint16 ar_op;
int tot_len;
proto_tree *arp_tree = NULL;
proto_item *ti, *item;
const gchar *op_str;
int sha_offset, spa_offset, tha_offset, tpa_offset;
const guint8 *spa_val, *tpa_val;
gboolean is_gratuitous;
gboolean duplicate_detected = FALSE;
guint32 duplicate_ip = 0;
/* Call it ARP, for now, so that if we throw an exception before
we decide whether it's ARP or RARP or IARP or ATMARP, it shows
@ -1477,7 +1475,7 @@ dissect_arp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
case ARPOP_IREPLY:
col_set_str(pinfo->cinfo, COL_PROTOCOL, "Inverse ARP");
break;
case ARPOP_MARS_REQUEST:
case ARPOP_MARS_MULTI:
case ARPOP_MARS_MSERV:
@ -1491,7 +1489,7 @@ dissect_arp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
case ARPOP_MARS_GROUPLIST_REPLY:
case ARPOP_MARS_REDIRECT_MAP:
col_set_str(pinfo->cinfo, COL_PROTOCOL, "MARS");
break;
break;
case ARPOP_MAPOS_UNARP:
col_set_str(pinfo->cinfo, COL_PROTOCOL, "MAPOS");
@ -1609,7 +1607,7 @@ dissect_arp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
case ARPOP_DRARPERROR:
col_add_fstr(pinfo->cinfo, COL_INFO, "DRARP Error");
break;
break;
case ARPOP_IREPLY:
col_add_fstr(pinfo->cinfo, COL_INFO, "%s is at %s",
@ -1696,7 +1694,7 @@ dissect_arp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
case ARPOP_MAPOS_UNARP:
col_add_fstr(pinfo->cinfo, COL_INFO, "MAPOS UNARP request from %s at %s",
tvb_arphrdaddr_to_str(tvb, sha_offset, ar_hln, ar_hrd),
arpproaddr_to_str(spa_val, ar_pln, ar_pro));
arpproaddr_to_str(spa_val, ar_pln, ar_pro));
break;
case ARPOP_EXP1:
@ -1734,11 +1732,11 @@ dissect_arp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
proto_tree_add_uint(arp_tree, hf_arp_hard_size, tvb, AR_HLN, 1, ar_hln);
proto_tree_add_uint(arp_tree, hf_arp_proto_size, tvb, AR_PLN, 1, ar_pln);
proto_tree_add_uint(arp_tree, hf_arp_opcode, tvb, AR_OP, 2, ar_op);
if(is_gratuitous)
if (is_gratuitous)
{
item = proto_tree_add_boolean(arp_tree, hf_arp_isgratuitous, tvb, 0, 0, is_gratuitous);
PROTO_ITEM_SET_GENERATED(item);
}
}
if (ar_hln != 0) {
proto_tree_add_item(arp_tree,
ARP_HW_IS_ETHER(ar_hrd, ar_hln) ?
@ -1882,9 +1880,9 @@ proto_register_arp(void)
NULL, HFILL }},
{ &hf_arp_src_hw_ax25,
{ "Sender AX.25 address", "arp.src.hw_ax25",
FT_AX25, BASE_NONE, NULL, 0x0,
"", HFILL }},
{ "Sender AX.25 address", "arp.src.hw_ax25",
FT_AX25, BASE_NONE, NULL, 0x0,
NULL, HFILL }},
{ &hf_atmarp_src_atm_num_e164,
{ "Sender ATM number (E.164)", "arp.src.atm_num_e164",
@ -1922,9 +1920,9 @@ proto_register_arp(void)
NULL, HFILL }},
{ &hf_arp_dst_hw_ax25,
{ "Target AX.25 address", "arp.dst.hw_ax25",
FT_AX25, BASE_NONE, NULL, 0x0,
"", HFILL }},
{ "Target AX.25 address", "arp.dst.hw_ax25",
FT_AX25, BASE_NONE, NULL, 0x0,
NULL, HFILL }},
{ &hf_atmarp_dst_atm_num_e164,
{ "Target ATM number (E.164)", "arp.dst.atm_num_e164",