aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-h450.c
diff options
context:
space:
mode:
authoretxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7>2006-03-09 06:02:42 +0000
committeretxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7>2006-03-09 06:02:42 +0000
commit7638e4dd5f4e37797b47c580f1e1d77b8c79130e (patch)
tree77b0727195b94264923aab82add67335f0891bc7 /epan/dissectors/packet-h450.c
parent03ec79043e51f2a3a4b807b70d9c7c8216eff456 (diff)
Fix Bug 725:
0.10.14 shows "malformed packet" when showing H323 CS: FACILITY message with opcode "Calltransfer initiate" git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@17542 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'epan/dissectors/packet-h450.c')
-rw-r--r--epan/dissectors/packet-h450.c166
1 files changed, 83 insertions, 83 deletions
diff --git a/epan/dissectors/packet-h450.c b/epan/dissectors/packet-h450.c
index f531fc3df3..de1839dd4c 100644
--- a/epan/dissectors/packet-h450.c
+++ b/epan/dissectors/packet-h450.c
@@ -1515,32 +1515,95 @@ dissect_h450_CallTransferAbandon(tvbuff_t *tvb, int offset, packet_info *pinfo _
}
-static const value_string h450_DummyRes_vals[] = {
+
+static int
+dissect_h450_CallIdentity(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_NumericString(tvb, offset, pinfo, tree, hf_index,
+ 0, 4);
+
+ return offset;
+}
+static int dissect_callIdentity(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_h450_CallIdentity(tvb, offset, pinfo, tree, hf_h450_callIdentity);
+}
+
+
+static const value_string h450_ArgumentExtension_vals[] = {
{ 0, "extensionSeq" },
{ 1, "nonStandardData" },
{ 0, NULL }
};
-static const per_choice_t DummyRes_choice[] = {
+static const per_choice_t ArgumentExtension_choice[] = {
{ 0, "extensionSeq" , ASN1_NO_EXTENSIONS , dissect_extensionSeq },
{ 1, "nonStandardData" , ASN1_NO_EXTENSIONS , dissect_nonStandardData },
{ 0, NULL, 0, NULL }
};
static int
-dissect_h450_DummyRes(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+dissect_h450_ArgumentExtension(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
- ett_h450_DummyRes, DummyRes_choice,
+ ett_h450_ArgumentExtension, ArgumentExtension_choice,
NULL);
return offset;
}
+static int dissect_cTInitiateArg_argumentExtension(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_h450_ArgumentExtension(tvb, offset, pinfo, tree, hf_h450_cTInitiateArg_argumentExtension);
+}
+static int dissect_cTSetupArg_argumentExtension(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_h450_ArgumentExtension(tvb, offset, pinfo, tree, hf_h450_cTSetupArg_argumentExtension);
+}
+static int dissect_cTUpdateArg_argumentExtension(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_h450_ArgumentExtension(tvb, offset, pinfo, tree, hf_h450_cTUpdateArg_argumentExtension);
+}
+static int dissect_subaddressTransferArg_argumentExtension(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_h450_ArgumentExtension(tvb, offset, pinfo, tree, hf_h450_subaddressTransferArg_argumentExtension);
+}
+static int dissect_cTCompleteArg_argumentExtension(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_h450_ArgumentExtension(tvb, offset, pinfo, tree, hf_h450_cTCompleteArg_argumentExtension);
+}
+static int dissect_cTActiveArg_argumentExtension(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_h450_ArgumentExtension(tvb, offset, pinfo, tree, hf_h450_cTActiveArg_argumentExtension);
+}
+
+
+static const per_sequence_t CTInitiateArg_sequence[] = {
+ { "callIdentity" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_callIdentity },
+ { "reroutingNumber" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_reroutingNumber },
+ { "argumentExtension" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_cTInitiateArg_argumentExtension },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_h450_CTInitiateArg(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_h450_CTInitiateArg, CTInitiateArg_sequence);
+
+ return offset;
+}
static int
dissect_h450_CallTransferInitiate(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
- offset = dissect_h450_DummyRes(tvb, offset, pinfo, tree, hf_index);
+ offset = dissect_h450_CTInitiateArg(tvb, offset, pinfo, tree, hf_index);
+
+ return offset;
+}
+
+
+static const per_sequence_t CTSetupArg_sequence[] = {
+ { "callIdentity" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_callIdentity },
+ { "transferringNumber" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_transferringNumber },
+ { "argumentExtension" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_cTSetupArg_argumentExtension },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_h450_CTSetupArg(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_h450_CTSetupArg, CTSetupArg_sequence);
return offset;
}
@@ -1549,7 +1612,7 @@ dissect_h450_CallTransferInitiate(tvbuff_t *tvb, int offset, packet_info *pinfo
static int
dissect_h450_CallTransferSetup(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
- offset = dissect_h450_DummyRes(tvb, offset, pinfo, tree, hf_index);
+ offset = dissect_h450_CTSetupArg(tvb, offset, pinfo, tree, hf_index);
return offset;
}
@@ -1599,46 +1662,6 @@ static int dissect_h225InfoElement(tvbuff_t *tvb, int offset, packet_info *pinfo
}
-static const value_string h450_ArgumentExtension_vals[] = {
- { 0, "extensionSeq" },
- { 1, "nonStandardData" },
- { 0, NULL }
-};
-
-static const per_choice_t ArgumentExtension_choice[] = {
- { 0, "extensionSeq" , ASN1_NO_EXTENSIONS , dissect_extensionSeq },
- { 1, "nonStandardData" , ASN1_NO_EXTENSIONS , dissect_nonStandardData },
- { 0, NULL, 0, NULL }
-};
-
-static int
-dissect_h450_ArgumentExtension(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
- offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
- ett_h450_ArgumentExtension, ArgumentExtension_choice,
- NULL);
-
- return offset;
-}
-static int dissect_cTInitiateArg_argumentExtension(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
- return dissect_h450_ArgumentExtension(tvb, offset, pinfo, tree, hf_h450_cTInitiateArg_argumentExtension);
-}
-static int dissect_cTSetupArg_argumentExtension(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
- return dissect_h450_ArgumentExtension(tvb, offset, pinfo, tree, hf_h450_cTSetupArg_argumentExtension);
-}
-static int dissect_cTUpdateArg_argumentExtension(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
- return dissect_h450_ArgumentExtension(tvb, offset, pinfo, tree, hf_h450_cTUpdateArg_argumentExtension);
-}
-static int dissect_subaddressTransferArg_argumentExtension(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
- return dissect_h450_ArgumentExtension(tvb, offset, pinfo, tree, hf_h450_subaddressTransferArg_argumentExtension);
-}
-static int dissect_cTCompleteArg_argumentExtension(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
- return dissect_h450_ArgumentExtension(tvb, offset, pinfo, tree, hf_h450_cTCompleteArg_argumentExtension);
-}
-static int dissect_cTActiveArg_argumentExtension(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
- return dissect_h450_ArgumentExtension(tvb, offset, pinfo, tree, hf_h450_cTActiveArg_argumentExtension);
-}
-
-
static const per_sequence_t CTUpdateArg_sequence[] = {
{ "redirectionNumber" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_redirectionNumber },
{ "redirectionInfo" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_redirectionInfo },
@@ -1781,46 +1804,23 @@ dissect_h450_CallTransferActive(tvbuff_t *tvb, int offset, packet_info *pinfo _U
}
-
-static int
-dissect_h450_CallIdentity(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
- offset = dissect_per_NumericString(tvb, offset, pinfo, tree, hf_index,
- 0, 4);
-
- return offset;
-}
-static int dissect_callIdentity(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
- return dissect_h450_CallIdentity(tvb, offset, pinfo, tree, hf_h450_callIdentity);
-}
-
-
-static const per_sequence_t CTInitiateArg_sequence[] = {
- { "callIdentity" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_callIdentity },
- { "reroutingNumber" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_reroutingNumber },
- { "argumentExtension" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_cTInitiateArg_argumentExtension },
- { NULL, 0, 0, NULL }
+static const value_string h450_DummyRes_vals[] = {
+ { 0, "extensionSeq" },
+ { 1, "nonStandardData" },
+ { 0, NULL }
};
-static int
-dissect_h450_CTInitiateArg(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
- offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
- ett_h450_CTInitiateArg, CTInitiateArg_sequence);
-
- return offset;
-}
-
-
-static const per_sequence_t CTSetupArg_sequence[] = {
- { "callIdentity" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_callIdentity },
- { "transferringNumber" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_transferringNumber },
- { "argumentExtension" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_cTSetupArg_argumentExtension },
- { NULL, 0, 0, NULL }
+static const per_choice_t DummyRes_choice[] = {
+ { 0, "extensionSeq" , ASN1_NO_EXTENSIONS , dissect_extensionSeq },
+ { 1, "nonStandardData" , ASN1_NO_EXTENSIONS , dissect_nonStandardData },
+ { 0, NULL, 0, NULL }
};
static int
-dissect_h450_CTSetupArg(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
- offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
- ett_h450_CTSetupArg, CTSetupArg_sequence);
+dissect_h450_DummyRes(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
+ ett_h450_DummyRes, DummyRes_choice,
+ NULL);
return offset;
}
@@ -4904,11 +4904,11 @@ void proto_register_h450(void) {
"CallTransferAbandon", HFILL }},
{ &hf_h450_CallTransferInitiate_PDU,
{ "CallTransferInitiate", "h450.CallTransferInitiate",
- FT_UINT32, BASE_DEC, VALS(h450_DummyRes_vals), 0,
+ FT_NONE, BASE_NONE, NULL, 0,
"CallTransferInitiate", HFILL }},
{ &hf_h450_CallTransferSetup_PDU,
{ "CallTransferSetup", "h450.CallTransferSetup",
- FT_UINT32, BASE_DEC, VALS(h450_DummyRes_vals), 0,
+ FT_NONE, BASE_NONE, NULL, 0,
"CallTransferSetup", HFILL }},
{ &hf_h450_CallTransferUpdate_PDU,
{ "CallTransferUpdate", "h450.CallTransferUpdate",