Wireshark-bugs: [Wireshark-bugs] [Bug 2059] New: packet-sccp -> XUDTS
Date: Sun, 2 Dec 2007 12:05:19 +0000 (GMT)
http://bugs.wireshark.org/bugzilla/show_bug.cgi?id=2059 Summary: packet-sccp -> XUDTS Product: Wireshark Version: 0.99.6 Platform: PC OS/Version: All Status: NEW Severity: Major Priority: Low Component: Wireshark AssignedTo: wireshark-bugs@xxxxxxxxxxxxx ReportedBy: shmulik.bezalel@xxxxxxxxx Build Information: Version 0.99.6a (SVN Rev 22276) Copyright 1998-2007 Gerald Combs <gerald@xxxxxxxxxxxxx> and contributors. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Compiled with GTK+ 2.10.12, with GLib 2.12.12, with WinPcap (version unknown), with libz 1.2.3, with libpcre 6.4, with Net-SNMP 5.4, with ADNS, with Lua 5.1, with GnuTLS 1.6.1, with Gcrypt 1.2.3, with MIT Kerberos, with PortAudio PortAudio V19-devel, with AirPcap. Running on Windows XP Service Pack 2, build 2600, with WinPcap version 4.0.1 (packet.dll version 4.0.0.901), based on libpcap version 0.9.5, without AirPcap. Built using Microsoft Visual C++ 6.0 build 8804 Wireshark is Open Source Software released under the GNU General Public License. Check the man page and http://www.wireshark.org for more information. -- The XUDTS layer does not support segmentation case SCCP_MSG_TYPE_XUDTS: pinfo->sccp_info = sccp_msg = new_ud_msg(pinfo,message_type); offset += dissect_sccp_parameter(tvb, pinfo, sccp_tree, tree, PARAMETER_RETURN_CAUSE, offset, RETURN_CAUSE_LENGTH); offset += dissect_sccp_parameter(tvb, pinfo, sccp_tree, tree, PARAMETER_HOP_COUNTER, offset, HOP_COUNTER_LENGTH); VARIABLE_POINTER(variable_pointer1, hf_sccp_variable_pointer1, POINTER_LENGTH) VARIABLE_POINTER(variable_pointer2, hf_sccp_variable_pointer2, POINTER_LENGTH) VARIABLE_POINTER(variable_pointer3, hf_sccp_variable_pointer3, POINTER_LENGTH) OPTIONAL_POINTER(POINTER_LENGTH) assoc = get_sccp_assoc(pinfo, msg_offset, slr, dlr, message_type); dissect_sccp_variable_parameter(tvb, pinfo, sccp_tree, tree, PARAMETER_CALLED_PARTY_ADDRESS, variable_pointer1); dissect_sccp_variable_parameter(tvb, pinfo, sccp_tree, tree, PARAMETER_CALLING_PARTY_ADDRESS, variable_pointer2); dissect_sccp_variable_parameter(tvb, pinfo, sccp_tree, tree, PARAMETER_DATA, variable_pointer3); break; to support segmentation change TO: case SCCP_MSG_TYPE_XUDTS: offset += dissect_sccp_parameter(tvb, pinfo, sccp_tree, tree, PARAMETER_RETURN_CAUSE, offset, RETURN_CAUSE_LENGTH); offset += dissect_sccp_parameter(tvb, pinfo, sccp_tree, tree, PARAMETER_HOP_COUNTER, offset, HOP_COUNTER_LENGTH); VARIABLE_POINTER(variable_pointer1, hf_sccp_variable_pointer1, POINTER_LENGTH) VARIABLE_POINTER(variable_pointer2, hf_sccp_variable_pointer2, POINTER_LENGTH) VARIABLE_POINTER(variable_pointer3, hf_sccp_variable_pointer3, POINTER_LENGTH) OPTIONAL_POINTER(POINTER_LENGTH) /* Optional parameters are Segmentation and Importance * NOTE 2 - Segmentation Should not be present in case of a single XUDT message. */ assoc = get_sccp_assoc(pinfo, msg_offset, slr, dlr, message_type); //assoc = sccp_assoc(&(pinfo->src), &(pinfo->dst), slr, dlr); dissect_sccp_variable_parameter(tvb, pinfo, sccp_tree, tree, PARAMETER_CALLED_PARTY_ADDRESS, variable_pointer1); dissect_sccp_variable_parameter(tvb, pinfo, sccp_tree, tree, PARAMETER_CALLING_PARTY_ADDRESS, variable_pointer2); if ((parameter_type = tvb_get_guint8(tvb, optional_pointer)) == PARAMETER_SEGMENTATION) { if (!sccp_xudt_desegment){ proto_tree_add_text(sccp_tree, tvb, variable_pointer3, tvb_get_guint8(tvb, variable_pointer3)+1, "Segmented Data" ); }else{ guint8 octet; gboolean more_frag = TRUE; /* Get the first octet of parameter Segmentation, Ch 3.17 in Q.713 * Bit 8 of octet 1 is used for First segment indication * Bit 7 of octet 1 is used to keep in the message in sequence delivery option required by the SCCP user * Bits 6 and 5 in octet 1 are spare bits. * Bits 4-1 of octet 1 are used to indicate the number of remaining segments. * The values 0000 to 1111 are possible; the value 0000 indicates the last segment. */ octet = tvb_get_guint8(tvb,optional_pointer+2); source_local_ref = tvb_get_letoh24(tvb, optional_pointer+3); if ((octet&0x0f) == 0) more_frag = FALSE; save_fragmented = pinfo->fragmented; pinfo->fragmented = TRUE; frag_msg = fragment_add_seq_next(tvb, variable_pointer3 + 1, pinfo, source_local_ref, /* ID for fragments belonging together */ sccp_xudt_msg_fragment_table, /* list of message fragments */ sccp_xudt_msg_reassembled_table, /* list of reassembled messages */ tvb_get_guint8(tvb,variable_pointer3), /* fragment length - to the end */ more_frag); /* More fragments? */ if ((octet&0x80) == 0x80)/*First segment, set number of segments*/ fragment_set_tot_len(pinfo, source_local_ref, sccp_xudt_msg_fragment_table,(octet & 0xf)); new_tvb = process_reassembled_data(tvb, variable_pointer3 + 1, pinfo, "Reassembled Message", frag_msg, &sccp_xudt_msg_frag_items, NULL, tree); if (frag_msg) { /* Reassembled */ if (check_col(pinfo->cinfo, COL_INFO)) col_append_str(pinfo->cinfo, COL_INFO, " (Message Reassembled)"); } else { /* Not last packet of reassembled Short Message */ if (check_col(pinfo->cinfo, COL_INFO)) col_append_fstr(pinfo->cinfo, COL_INFO, " (Message fragment )"); } pinfo->fragmented = save_fragmented; if (new_tvb) dissect_sccp_data_param(new_tvb, pinfo, tree); } } else { dissect_sccp_variable_parameter(tvb, pinfo, sccp_tree, tree, PARAMETER_DATA, variable_pointer3); } break; -- Configure bugmail: http://bugs.wireshark.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee.
- Follow-Ups:
- [Wireshark-bugs] [Bug 2059] packet-sccp -> XUDTS
- From: bugzilla-daemon
- [Wireshark-bugs] [Bug 2059] XUDTS are not reassembled
- From: bugzilla-daemon
- [Wireshark-bugs] [Bug 2059] XUDTS are not reassembled
- From: bugzilla-daemon
- [Wireshark-bugs] [Bug 2059] packet-sccp -> XUDTS
- Prev by Date: [Wireshark-bugs] [Bug 2058] New: ansi map - origination request result
- Next by Date: [Wireshark-bugs] [Bug 2060] New: wireshark comlains about misssing interfaces at the command line
- Previous by thread: [Wireshark-bugs] [Bug 2058] ansi map - origination request result
- Next by thread: [Wireshark-bugs] [Bug 2059] packet-sccp -> XUDTS
- Index(es):