aboutsummaryrefslogtreecommitdiffstats
path: root/plugins
diff options
context:
space:
mode:
authorHannes Mezger <hannes.mezger@ascolab.com>2014-10-16 19:06:31 +0200
committerMichael Mann <mmann78@netscape.net>2014-10-17 14:51:40 +0000
commite5bbfa0f1516c74b4fc81651be94405bcb4be0b9 (patch)
treee91369d5f861d65cce4bc8de965135225497559d /plugins
parent0ceeddee17571fa99a4cb35625a8e3c2bdca97d2 (diff)
Add argument 'packet_info *pinfo' to all dissecting functions
Change-Id: Ie02326e365ee3f620fcbe3f2e8e45dc5300d3418 Reviewed-on: https://code.wireshark.org/review/4728 Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'plugins')
-rw-r--r--plugins/opcua/opcua.c6
-rw-r--r--plugins/opcua/opcua_complextypeparser.c1672
-rw-r--r--plugins/opcua/opcua_complextypeparser.h272
-rw-r--r--plugins/opcua/opcua_enumparser.c54
-rw-r--r--plugins/opcua/opcua_enumparser.h54
-rw-r--r--plugins/opcua/opcua_extensionobjecttable.c11
-rw-r--r--plugins/opcua/opcua_identifiers.h8
-rw-r--r--plugins/opcua/opcua_serviceparser.c678
-rw-r--r--plugins/opcua/opcua_serviceparser.h160
-rw-r--r--plugins/opcua/opcua_servicetable.c8
-rw-r--r--plugins/opcua/opcua_servicetable.h2
-rw-r--r--plugins/opcua/opcua_simpletypes.c220
-rw-r--r--plugins/opcua/opcua_simpletypes.h58
-rw-r--r--plugins/opcua/opcua_transport_layer.c30
-rw-r--r--plugins/opcua/opcua_transport_layer.h14
15 files changed, 1624 insertions, 1623 deletions
diff --git a/plugins/opcua/opcua.c b/plugins/opcua/opcua.c
index a61623b031..2b7f5615a8 100644
--- a/plugins/opcua/opcua.c
+++ b/plugins/opcua/opcua.c
@@ -43,7 +43,7 @@ extern const int g_NumServices;
/* forward reference */
void proto_reg_handoff_opcua(void);
/* declare parse function pointer */
-typedef int (*FctParse)(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
+typedef int (*FctParse)(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
static int proto_opcua = -1;
static dissector_handle_t opcua_handle;
@@ -317,7 +317,7 @@ static int dissect_opcua_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *
offset = 0;
/* call the transport message dissector */
- iServiceId = (*pfctParse)(transport_tree, tvb, &offset);
+ iServiceId = (*pfctParse)(transport_tree, tvb, pinfo, &offset);
/* parse the service if not chunked or last chunk */
if (msgtype == MSG_MESSAGE && bParseService)
@@ -326,7 +326,7 @@ static int dissect_opcua_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *
{
offset = 0;
}
- iServiceId = parseService(transport_tree, next_tvb, &offset);
+ iServiceId = parseService(transport_tree, next_tvb, pinfo, &offset);
}
/* display the service type in addition to the message type */
diff --git a/plugins/opcua/opcua_complextypeparser.c b/plugins/opcua/opcua_complextypeparser.c
index adb0f52152..b7cd1edf05 100644
--- a/plugins/opcua/opcua_complextypeparser.c
+++ b/plugins/opcua/opcua_complextypeparser.c
@@ -299,1605 +299,1605 @@ gint ett_opcua_array_ProgramDiagnosticDataType = -1;
gint ett_opcua_Annotation = -1;
gint ett_opcua_array_Annotation = -1;
-void parseNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseNode(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_Node, &ti, "%s: Node", szFieldName);
- parseNodeId(subtree, tvb, pOffset, "NodeId");
- parseNodeClass(subtree, tvb, pOffset);
- parseQualifiedName(subtree, tvb, pOffset, "BrowseName");
- parseLocalizedText(subtree, tvb, pOffset, "DisplayName");
- parseLocalizedText(subtree, tvb, pOffset, "Description");
- parseUInt32(subtree, tvb, pOffset, hf_opcua_WriteMask);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_UserWriteMask);
+ parseNodeId(subtree, tvb, pinfo, pOffset, "NodeId");
+ parseNodeClass(subtree, tvb, pinfo, pOffset);
+ parseQualifiedName(subtree, tvb, pinfo, pOffset, "BrowseName");
+ parseLocalizedText(subtree, tvb, pinfo, pOffset, "DisplayName");
+ parseLocalizedText(subtree, tvb, pinfo, pOffset, "Description");
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_WriteMask);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_UserWriteMask);
/* Array length field ignored: NoOfReferences */
- parseArrayComplex(subtree, tvb, pOffset, "References", "ReferenceNode", parseReferenceNode, ett_opcua_array_ReferenceNode);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "References", "ReferenceNode", parseReferenceNode, ett_opcua_array_ReferenceNode);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseInstanceNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseInstanceNode(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_InstanceNode, &ti, "%s: InstanceNode", szFieldName);
- parseNodeId(subtree, tvb, pOffset, "NodeId");
- parseNodeClass(subtree, tvb, pOffset);
- parseQualifiedName(subtree, tvb, pOffset, "BrowseName");
- parseLocalizedText(subtree, tvb, pOffset, "DisplayName");
- parseLocalizedText(subtree, tvb, pOffset, "Description");
- parseUInt32(subtree, tvb, pOffset, hf_opcua_WriteMask);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_UserWriteMask);
+ parseNodeId(subtree, tvb, pinfo, pOffset, "NodeId");
+ parseNodeClass(subtree, tvb, pinfo, pOffset);
+ parseQualifiedName(subtree, tvb, pinfo, pOffset, "BrowseName");
+ parseLocalizedText(subtree, tvb, pinfo, pOffset, "DisplayName");
+ parseLocalizedText(subtree, tvb, pinfo, pOffset, "Description");
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_WriteMask);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_UserWriteMask);
/* Array length field ignored: NoOfReferences */
- parseArrayComplex(subtree, tvb, pOffset, "References", "ReferenceNode", parseReferenceNode, ett_opcua_array_ReferenceNode);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "References", "ReferenceNode", parseReferenceNode, ett_opcua_array_ReferenceNode);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseTypeNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseTypeNode(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_TypeNode, &ti, "%s: TypeNode", szFieldName);
- parseNodeId(subtree, tvb, pOffset, "NodeId");
- parseNodeClass(subtree, tvb, pOffset);
- parseQualifiedName(subtree, tvb, pOffset, "BrowseName");
- parseLocalizedText(subtree, tvb, pOffset, "DisplayName");
- parseLocalizedText(subtree, tvb, pOffset, "Description");
- parseUInt32(subtree, tvb, pOffset, hf_opcua_WriteMask);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_UserWriteMask);
+ parseNodeId(subtree, tvb, pinfo, pOffset, "NodeId");
+ parseNodeClass(subtree, tvb, pinfo, pOffset);
+ parseQualifiedName(subtree, tvb, pinfo, pOffset, "BrowseName");
+ parseLocalizedText(subtree, tvb, pinfo, pOffset, "DisplayName");
+ parseLocalizedText(subtree, tvb, pinfo, pOffset, "Description");
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_WriteMask);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_UserWriteMask);
/* Array length field ignored: NoOfReferences */
- parseArrayComplex(subtree, tvb, pOffset, "References", "ReferenceNode", parseReferenceNode, ett_opcua_array_ReferenceNode);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "References", "ReferenceNode", parseReferenceNode, ett_opcua_array_ReferenceNode);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseObjectNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseObjectNode(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_ObjectNode, &ti, "%s: ObjectNode", szFieldName);
- parseNodeId(subtree, tvb, pOffset, "NodeId");
- parseNodeClass(subtree, tvb, pOffset);
- parseQualifiedName(subtree, tvb, pOffset, "BrowseName");
- parseLocalizedText(subtree, tvb, pOffset, "DisplayName");
- parseLocalizedText(subtree, tvb, pOffset, "Description");
- parseUInt32(subtree, tvb, pOffset, hf_opcua_WriteMask);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_UserWriteMask);
+ parseNodeId(subtree, tvb, pinfo, pOffset, "NodeId");
+ parseNodeClass(subtree, tvb, pinfo, pOffset);
+ parseQualifiedName(subtree, tvb, pinfo, pOffset, "BrowseName");
+ parseLocalizedText(subtree, tvb, pinfo, pOffset, "DisplayName");
+ parseLocalizedText(subtree, tvb, pinfo, pOffset, "Description");
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_WriteMask);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_UserWriteMask);
/* Array length field ignored: NoOfReferences */
- parseArrayComplex(subtree, tvb, pOffset, "References", "ReferenceNode", parseReferenceNode, ett_opcua_array_ReferenceNode);
- parseByte(subtree, tvb, pOffset, hf_opcua_EventNotifier);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "References", "ReferenceNode", parseReferenceNode, ett_opcua_array_ReferenceNode);
+ parseByte(subtree, tvb, pinfo, pOffset, hf_opcua_EventNotifier);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseObjectTypeNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseObjectTypeNode(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_ObjectTypeNode, &ti, "%s: ObjectTypeNode", szFieldName);
- parseNodeId(subtree, tvb, pOffset, "NodeId");
- parseNodeClass(subtree, tvb, pOffset);
- parseQualifiedName(subtree, tvb, pOffset, "BrowseName");
- parseLocalizedText(subtree, tvb, pOffset, "DisplayName");
- parseLocalizedText(subtree, tvb, pOffset, "Description");
- parseUInt32(subtree, tvb, pOffset, hf_opcua_WriteMask);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_UserWriteMask);
+ parseNodeId(subtree, tvb, pinfo, pOffset, "NodeId");
+ parseNodeClass(subtree, tvb, pinfo, pOffset);
+ parseQualifiedName(subtree, tvb, pinfo, pOffset, "BrowseName");
+ parseLocalizedText(subtree, tvb, pinfo, pOffset, "DisplayName");
+ parseLocalizedText(subtree, tvb, pinfo, pOffset, "Description");
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_WriteMask);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_UserWriteMask);
/* Array length field ignored: NoOfReferences */
- parseArrayComplex(subtree, tvb, pOffset, "References", "ReferenceNode", parseReferenceNode, ett_opcua_array_ReferenceNode);
- parseBoolean(subtree, tvb, pOffset, hf_opcua_IsAbstract);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "References", "ReferenceNode", parseReferenceNode, ett_opcua_array_ReferenceNode);
+ parseBoolean(subtree, tvb, pinfo, pOffset, hf_opcua_IsAbstract);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseVariableNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseVariableNode(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_VariableNode, &ti, "%s: VariableNode", szFieldName);
- parseNodeId(subtree, tvb, pOffset, "NodeId");
- parseNodeClass(subtree, tvb, pOffset);
- parseQualifiedName(subtree, tvb, pOffset, "BrowseName");
- parseLocalizedText(subtree, tvb, pOffset, "DisplayName");
- parseLocalizedText(subtree, tvb, pOffset, "Description");
- parseUInt32(subtree, tvb, pOffset, hf_opcua_WriteMask);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_UserWriteMask);
+ parseNodeId(subtree, tvb, pinfo, pOffset, "NodeId");
+ parseNodeClass(subtree, tvb, pinfo, pOffset);
+ parseQualifiedName(subtree, tvb, pinfo, pOffset, "BrowseName");
+ parseLocalizedText(subtree, tvb, pinfo, pOffset, "DisplayName");
+ parseLocalizedText(subtree, tvb, pinfo, pOffset, "Description");
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_WriteMask);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_UserWriteMask);
/* Array length field ignored: NoOfReferences */
- parseArrayComplex(subtree, tvb, pOffset, "References", "ReferenceNode", parseReferenceNode, ett_opcua_array_ReferenceNode);
- parseVariant(subtree, tvb, pOffset, "Value");
- parseNodeId(subtree, tvb, pOffset, "DataType");
- parseInt32(subtree, tvb, pOffset, hf_opcua_ValueRank);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "References", "ReferenceNode", parseReferenceNode, ett_opcua_array_ReferenceNode);
+ parseVariant(subtree, tvb, pinfo, pOffset, "Value");
+ parseNodeId(subtree, tvb, pinfo, pOffset, "DataType");
+ parseInt32(subtree, tvb, pinfo, pOffset, hf_opcua_ValueRank);
/* Array length field ignored: NoOfArrayDimensions */
- parseArraySimple(subtree, tvb, pOffset, "ArrayDimensions", "UInt32", hf_opcua_ArrayDimensions, parseUInt32, ett_opcua_array_UInt32);
- parseByte(subtree, tvb, pOffset, hf_opcua_AccessLevel);
- parseByte(subtree, tvb, pOffset, hf_opcua_UserAccessLevel);
- parseDouble(subtree, tvb, pOffset, hf_opcua_MinimumSamplingInterval);
- parseBoolean(subtree, tvb, pOffset, hf_opcua_Historizing);
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "ArrayDimensions", "UInt32", hf_opcua_ArrayDimensions, parseUInt32, ett_opcua_array_UInt32);
+ parseByte(subtree, tvb, pinfo, pOffset, hf_opcua_AccessLevel);
+ parseByte(subtree, tvb, pinfo, pOffset, hf_opcua_UserAccessLevel);
+ parseDouble(subtree, tvb, pinfo, pOffset, hf_opcua_MinimumSamplingInterval);
+ parseBoolean(subtree, tvb, pinfo, pOffset, hf_opcua_Historizing);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseVariableTypeNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseVariableTypeNode(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_VariableTypeNode, &ti, "%s: VariableTypeNode", szFieldName);
- parseNodeId(subtree, tvb, pOffset, "NodeId");
- parseNodeClass(subtree, tvb, pOffset);
- parseQualifiedName(subtree, tvb, pOffset, "BrowseName");
- parseLocalizedText(subtree, tvb, pOffset, "DisplayName");
- parseLocalizedText(subtree, tvb, pOffset, "Description");
- parseUInt32(subtree, tvb, pOffset, hf_opcua_WriteMask);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_UserWriteMask);
+ parseNodeId(subtree, tvb, pinfo, pOffset, "NodeId");
+ parseNodeClass(subtree, tvb, pinfo, pOffset);
+ parseQualifiedName(subtree, tvb, pinfo, pOffset, "BrowseName");
+ parseLocalizedText(subtree, tvb, pinfo, pOffset, "DisplayName");
+ parseLocalizedText(subtree, tvb, pinfo, pOffset, "Description");
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_WriteMask);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_UserWriteMask);
/* Array length field ignored: NoOfReferences */
- parseArrayComplex(subtree, tvb, pOffset, "References", "ReferenceNode", parseReferenceNode, ett_opcua_array_ReferenceNode);
- parseVariant(subtree, tvb, pOffset, "Value");
- parseNodeId(subtree, tvb, pOffset, "DataType");
- parseInt32(subtree, tvb, pOffset, hf_opcua_ValueRank);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "References", "ReferenceNode", parseReferenceNode, ett_opcua_array_ReferenceNode);
+ parseVariant(subtree, tvb, pinfo, pOffset, "Value");
+ parseNodeId(subtree, tvb, pinfo, pOffset, "DataType");
+ parseInt32(subtree, tvb, pinfo, pOffset, hf_opcua_ValueRank);
/* Array length field ignored: NoOfArrayDimensions */
- parseArraySimple(subtree, tvb, pOffset, "ArrayDimensions", "UInt32", hf_opcua_ArrayDimensions, parseUInt32, ett_opcua_array_UInt32);
- parseBoolean(subtree, tvb, pOffset, hf_opcua_IsAbstract);
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "ArrayDimensions", "UInt32", hf_opcua_ArrayDimensions, parseUInt32, ett_opcua_array_UInt32);
+ parseBoolean(subtree, tvb, pinfo, pOffset, hf_opcua_IsAbstract);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseReferenceTypeNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseReferenceTypeNode(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_ReferenceTypeNode, &ti, "%s: ReferenceTypeNode", szFieldName);
- parseNodeId(subtree, tvb, pOffset, "NodeId");
- parseNodeClass(subtree, tvb, pOffset);
- parseQualifiedName(subtree, tvb, pOffset, "BrowseName");
- parseLocalizedText(subtree, tvb, pOffset, "DisplayName");
- parseLocalizedText(subtree, tvb, pOffset, "Description");
- parseUInt32(subtree, tvb, pOffset, hf_opcua_WriteMask);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_UserWriteMask);
+ parseNodeId(subtree, tvb, pinfo, pOffset, "NodeId");
+ parseNodeClass(subtree, tvb, pinfo, pOffset);
+ parseQualifiedName(subtree, tvb, pinfo, pOffset, "BrowseName");
+ parseLocalizedText(subtree, tvb, pinfo, pOffset, "DisplayName");
+ parseLocalizedText(subtree, tvb, pinfo, pOffset, "Description");
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_WriteMask);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_UserWriteMask);
/* Array length field ignored: NoOfReferences */
- parseArrayComplex(subtree, tvb, pOffset, "References", "ReferenceNode", parseReferenceNode, ett_opcua_array_ReferenceNode);
- parseBoolean(subtree, tvb, pOffset, hf_opcua_IsAbstract);
- parseBoolean(subtree, tvb, pOffset, hf_opcua_Symmetric);
- parseLocalizedText(subtree, tvb, pOffset, "InverseName");
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "References", "ReferenceNode", parseReferenceNode, ett_opcua_array_ReferenceNode);
+ parseBoolean(subtree, tvb, pinfo, pOffset, hf_opcua_IsAbstract);
+ parseBoolean(subtree, tvb, pinfo, pOffset, hf_opcua_Symmetric);
+ parseLocalizedText(subtree, tvb, pinfo, pOffset, "InverseName");
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseMethodNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseMethodNode(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_MethodNode, &ti, "%s: MethodNode", szFieldName);
- parseNodeId(subtree, tvb, pOffset, "NodeId");
- parseNodeClass(subtree, tvb, pOffset);
- parseQualifiedName(subtree, tvb, pOffset, "BrowseName");
- parseLocalizedText(subtree, tvb, pOffset, "DisplayName");
- parseLocalizedText(subtree, tvb, pOffset, "Description");
- parseUInt32(subtree, tvb, pOffset, hf_opcua_WriteMask);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_UserWriteMask);
+ parseNodeId(subtree, tvb, pinfo, pOffset, "NodeId");
+ parseNodeClass(subtree, tvb, pinfo, pOffset);
+ parseQualifiedName(subtree, tvb, pinfo, pOffset, "BrowseName");
+ parseLocalizedText(subtree, tvb, pinfo, pOffset, "DisplayName");
+ parseLocalizedText(subtree, tvb, pinfo, pOffset, "Description");
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_WriteMask);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_UserWriteMask);
/* Array length field ignored: NoOfReferences */
- parseArrayComplex(subtree, tvb, pOffset, "References", "ReferenceNode", parseReferenceNode, ett_opcua_array_ReferenceNode);
- parseBoolean(subtree, tvb, pOffset, hf_opcua_Executable);
- parseBoolean(subtree, tvb, pOffset, hf_opcua_UserExecutable);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "References", "ReferenceNode", parseReferenceNode, ett_opcua_array_ReferenceNode);
+ parseBoolean(subtree, tvb, pinfo, pOffset, hf_opcua_Executable);
+ parseBoolean(subtree, tvb, pinfo, pOffset, hf_opcua_UserExecutable);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseViewNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseViewNode(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_ViewNode, &ti, "%s: ViewNode", szFieldName);
- parseNodeId(subtree, tvb, pOffset, "NodeId");
- parseNodeClass(subtree, tvb, pOffset);
- parseQualifiedName(subtree, tvb, pOffset, "BrowseName");
- parseLocalizedText(subtree, tvb, pOffset, "DisplayName");
- parseLocalizedText(subtree, tvb, pOffset, "Description");
- parseUInt32(subtree, tvb, pOffset, hf_opcua_WriteMask);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_UserWriteMask);
+ parseNodeId(subtree, tvb, pinfo, pOffset, "NodeId");
+ parseNodeClass(subtree, tvb, pinfo, pOffset);
+ parseQualifiedName(subtree, tvb, pinfo, pOffset, "BrowseName");
+ parseLocalizedText(subtree, tvb, pinfo, pOffset, "DisplayName");
+ parseLocalizedText(subtree, tvb, pinfo, pOffset, "Description");
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_WriteMask);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_UserWriteMask);
/* Array length field ignored: NoOfReferences */
- parseArrayComplex(subtree, tvb, pOffset, "References", "ReferenceNode", parseReferenceNode, ett_opcua_array_ReferenceNode);
- parseBoolean(subtree, tvb, pOffset, hf_opcua_ContainsNoLoops);
- parseByte(subtree, tvb, pOffset, hf_opcua_EventNotifier);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "References", "ReferenceNode", parseReferenceNode, ett_opcua_array_ReferenceNode);
+ parseBoolean(subtree, tvb, pinfo, pOffset, hf_opcua_ContainsNoLoops);
+ parseByte(subtree, tvb, pinfo, pOffset, hf_opcua_EventNotifier);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseDataTypeNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseDataTypeNode(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_DataTypeNode, &ti, "%s: DataTypeNode", szFieldName);
- parseNodeId(subtree, tvb, pOffset, "NodeId");
- parseNodeClass(subtree, tvb, pOffset);
- parseQualifiedName(subtree, tvb, pOffset, "BrowseName");
- parseLocalizedText(subtree, tvb, pOffset, "DisplayName");
- parseLocalizedText(subtree, tvb, pOffset, "Description");
- parseUInt32(subtree, tvb, pOffset, hf_opcua_WriteMask);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_UserWriteMask);
+ parseNodeId(subtree, tvb, pinfo, pOffset, "NodeId");
+ parseNodeClass(subtree, tvb, pinfo, pOffset);
+ parseQualifiedName(subtree, tvb, pinfo, pOffset, "BrowseName");
+ parseLocalizedText(subtree, tvb, pinfo, pOffset, "DisplayName");
+ parseLocalizedText(subtree, tvb, pinfo, pOffset, "Description");
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_WriteMask);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_UserWriteMask);
/* Array length field ignored: NoOfReferences */
- parseArrayComplex(subtree, tvb, pOffset, "References", "ReferenceNode", parseReferenceNode, ett_opcua_array_ReferenceNode);
- parseBoolean(subtree, tvb, pOffset, hf_opcua_IsAbstract);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "References", "ReferenceNode", parseReferenceNode, ett_opcua_array_ReferenceNode);
+ parseBoolean(subtree, tvb, pinfo, pOffset, hf_opcua_IsAbstract);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseReferenceNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseReferenceNode(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_ReferenceNode, &ti, "%s: ReferenceNode", szFieldName);
- parseNodeId(subtree, tvb, pOffset, "ReferenceTypeId");
- parseBoolean(subtree, tvb, pOffset, hf_opcua_IsInverse);
- parseExpandedNodeId(subtree, tvb, pOffset, "TargetId");
+ parseNodeId(subtree, tvb, pinfo, pOffset, "ReferenceTypeId");
+ parseBoolean(subtree, tvb, pinfo, pOffset, hf_opcua_IsInverse);
+ parseExpandedNodeId(subtree, tvb, pinfo, pOffset, "TargetId");
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseArgument(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseArgument(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_Argument, &ti, "%s: Argument", szFieldName);
- parseString(subtree, tvb, pOffset, hf_opcua_Name);
- parseNodeId(subtree, tvb, pOffset, "DataType");
- parseInt32(subtree, tvb, pOffset, hf_opcua_ValueRank);
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_Name);
+ parseNodeId(subtree, tvb, pinfo, pOffset, "DataType");
+ parseInt32(subtree, tvb, pinfo, pOffset, hf_opcua_ValueRank);
/* Array length field ignored: NoOfArrayDimensions */
- parseArraySimple(subtree, tvb, pOffset, "ArrayDimensions", "UInt32", hf_opcua_ArrayDimensions, parseUInt32, ett_opcua_array_UInt32);
- parseLocalizedText(subtree, tvb, pOffset, "Description");
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "ArrayDimensions", "UInt32", hf_opcua_ArrayDimensions, parseUInt32, ett_opcua_array_UInt32);
+ parseLocalizedText(subtree, tvb, pinfo, pOffset, "Description");
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseEnumValueType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseEnumValueType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_EnumValueType, &ti, "%s: EnumValueType", szFieldName);
- parseInt64(subtree, tvb, pOffset, hf_opcua_Value);
- parseLocalizedText(subtree, tvb, pOffset, "DisplayName");
- parseLocalizedText(subtree, tvb, pOffset, "Description");
+ parseInt64(subtree, tvb, pinfo, pOffset, hf_opcua_Value);
+ parseLocalizedText(subtree, tvb, pinfo, pOffset, "DisplayName");
+ parseLocalizedText(subtree, tvb, pinfo, pOffset, "Description");
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseTimeZoneDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseTimeZoneDataType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_TimeZoneDataType, &ti, "%s: TimeZoneDataType", szFieldName);
- parseInt16(subtree, tvb, pOffset, hf_opcua_Offset);
- parseBoolean(subtree, tvb, pOffset, hf_opcua_DaylightSavingInOffset);
+ parseInt16(subtree, tvb, pinfo, pOffset, hf_opcua_Offset);
+ parseBoolean(subtree, tvb, pinfo, pOffset, hf_opcua_DaylightSavingInOffset);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseApplicationDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseApplicationDescription(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_ApplicationDescription, &ti, "%s: ApplicationDescription", szFieldName);
- parseString(subtree, tvb, pOffset, hf_opcua_ApplicationUri);
- parseString(subtree, tvb, pOffset, hf_opcua_ProductUri);
- parseLocalizedText(subtree, tvb, pOffset, "ApplicationName");
- parseApplicationType(subtree, tvb, pOffset);
- parseString(subtree, tvb, pOffset, hf_opcua_GatewayServerUri);
- parseString(subtree, tvb, pOffset, hf_opcua_DiscoveryProfileUri);
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_ApplicationUri);
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_ProductUri);
+ parseLocalizedText(subtree, tvb, pinfo, pOffset, "ApplicationName");
+ parseApplicationType(subtree, tvb, pinfo, pOffset);
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_GatewayServerUri);
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_DiscoveryProfileUri);
/* Array length field ignored: NoOfDiscoveryUrls */
- parseArraySimple(subtree, tvb, pOffset, "DiscoveryUrls", "String", hf_opcua_DiscoveryUrls, parseString, ett_opcua_array_String);
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "DiscoveryUrls", "String", hf_opcua_DiscoveryUrls, parseString, ett_opcua_array_String);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseRequestHeader(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseRequestHeader(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_RequestHeader, &ti, "%s: RequestHeader", szFieldName);
- parseNodeId(subtree, tvb, pOffset, "AuthenticationToken");
- parseDateTime(subtree, tvb, pOffset, hf_opcua_Timestamp);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_RequestHandle);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_ReturnDiagnostics);
- parseString(subtree, tvb, pOffset, hf_opcua_AuditEntryId);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_TimeoutHint);
- parseExtensionObject(subtree, tvb, pOffset, "AdditionalHeader");
+ parseNodeId(subtree, tvb, pinfo, pOffset, "AuthenticationToken");
+ parseDateTime(subtree, tvb, pinfo, pOffset, hf_opcua_Timestamp);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_RequestHandle);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_ReturnDiagnostics);
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_AuditEntryId);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_TimeoutHint);
+ parseExtensionObject(subtree, tvb, pinfo, pOffset, "AdditionalHeader");
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseResponseHeader(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseResponseHeader(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_ResponseHeader, &ti, "%s: ResponseHeader", szFieldName);
- parseDateTime(subtree, tvb, pOffset, hf_opcua_Timestamp);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_RequestHandle);
- parseStatusCode(subtree, tvb, pOffset, hf_opcua_ServiceResult);
- parseDiagnosticInfo(subtree, tvb, pOffset, "ServiceDiagnostics");
+ parseDateTime(subtree, tvb, pinfo, pOffset, hf_opcua_Timestamp);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_RequestHandle);
+ parseStatusCode(subtree, tvb, pinfo, pOffset, hf_opcua_ServiceResult);
+ parseDiagnosticInfo(subtree, tvb, pinfo, pOffset, "ServiceDiagnostics");
/* Array length field ignored: NoOfStringTable */
- parseArraySimple(subtree, tvb, pOffset, "StringTable", "String", hf_opcua_StringTable, parseString, ett_opcua_array_String);
- parseExtensionObject(subtree, tvb, pOffset, "AdditionalHeader");
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "StringTable", "String", hf_opcua_StringTable, parseString, ett_opcua_array_String);
+ parseExtensionObject(subtree, tvb, pinfo, pOffset, "AdditionalHeader");
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseUserTokenPolicy(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseUserTokenPolicy(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_UserTokenPolicy, &ti, "%s: UserTokenPolicy", szFieldName);
- parseString(subtree, tvb, pOffset, hf_opcua_PolicyId);
- parseUserTokenType(subtree, tvb, pOffset);
- parseString(subtree, tvb, pOffset, hf_opcua_IssuedTokenType);
- parseString(subtree, tvb, pOffset, hf_opcua_IssuerEndpointUrl);
- parseString(subtree, tvb, pOffset, hf_opcua_SecurityPolicyUri);
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_PolicyId);
+ parseUserTokenType(subtree, tvb, pinfo, pOffset);
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_IssuedTokenType);
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_IssuerEndpointUrl);
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_SecurityPolicyUri);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseEndpointDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseEndpointDescription(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_EndpointDescription, &ti, "%s: EndpointDescription", szFieldName);
- parseString(subtree, tvb, pOffset, hf_opcua_EndpointUrl);
- parseApplicationDescription(subtree, tvb, pOffset, "Server");
- parseByteString(subtree, tvb, pOffset, hf_opcua_ServerCertificate);
- parseMessageSecurityMode(subtree, tvb, pOffset);
- parseString(subtree, tvb, pOffset, hf_opcua_SecurityPolicyUri);
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_EndpointUrl);
+ parseApplicationDescription(subtree, tvb, pinfo, pOffset, "Server");
+ parseByteString(subtree, tvb, pinfo, pOffset, hf_opcua_ServerCertificate);
+ parseMessageSecurityMode(subtree, tvb, pinfo, pOffset);
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_SecurityPolicyUri);
/* Array length field ignored: NoOfUserIdentityTokens */
- parseArrayComplex(subtree, tvb, pOffset, "UserIdentityTokens", "UserTokenPolicy", parseUserTokenPolicy, ett_opcua_array_UserTokenPolicy);
- parseString(subtree, tvb, pOffset, hf_opcua_TransportProfileUri);
- parseByte(subtree, tvb, pOffset, hf_opcua_SecurityLevel);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "UserIdentityTokens", "UserTokenPolicy", parseUserTokenPolicy, ett_opcua_array_UserTokenPolicy);
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_TransportProfileUri);
+ parseByte(subtree, tvb, pinfo, pOffset, hf_opcua_SecurityLevel);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseRegisteredServer(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseRegisteredServer(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_RegisteredServer, &ti, "%s: RegisteredServer", szFieldName);
- parseString(subtree, tvb, pOffset, hf_opcua_ServerUri);
- parseString(subtree, tvb, pOffset, hf_opcua_ProductUri);
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_ServerUri);
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_ProductUri);
/* Array length field ignored: NoOfServerNames */
- parseArrayComplex(subtree, tvb, pOffset, "ServerNames", "LocalizedText", parseLocalizedText, ett_opcua_array_LocalizedText);
- parseApplicationType(subtree, tvb, pOffset);
- parseString(subtree, tvb, pOffset, hf_opcua_GatewayServerUri);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "ServerNames", "LocalizedText", parseLocalizedText, ett_opcua_array_LocalizedText);
+ parseApplicationType(subtree, tvb, pinfo, pOffset);
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_GatewayServerUri);
/* Array length field ignored: NoOfDiscoveryUrls */
- parseArraySimple(subtree, tvb, pOffset, "DiscoveryUrls", "String", hf_opcua_DiscoveryUrls, parseString, ett_opcua_array_String);
- parseString(subtree, tvb, pOffset, hf_opcua_SemaphoreFilePath);
- parseBoolean(subtree, tvb, pOffset, hf_opcua_IsOnline);
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "DiscoveryUrls", "String", hf_opcua_DiscoveryUrls, parseString, ett_opcua_array_String);
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_SemaphoreFilePath);
+ parseBoolean(subtree, tvb, pinfo, pOffset, hf_opcua_IsOnline);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseChannelSecurityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseChannelSecurityToken(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_ChannelSecurityToken, &ti, "%s: ChannelSecurityToken", szFieldName);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_ChannelId);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_TokenId);
- parseDateTime(subtree, tvb, pOffset, hf_opcua_CreatedAt);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_RevisedLifetime);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_ChannelId);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_TokenId);
+ parseDateTime(subtree, tvb, pinfo, pOffset, hf_opcua_CreatedAt);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_RevisedLifetime);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseSignedSoftwareCertificate(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseSignedSoftwareCertificate(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_SignedSoftwareCertificate, &ti, "%s: SignedSoftwareCertificate", szFieldName);
- parseByteString(subtree, tvb, pOffset, hf_opcua_CertificateData);
- parseByteString(subtree, tvb, pOffset, hf_opcua_Signature);
+ parseByteString(subtree, tvb, pinfo, pOffset, hf_opcua_CertificateData);
+ parseByteString(subtree, tvb, pinfo, pOffset, hf_opcua_Signature);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseSignatureData(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseSignatureData(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_SignatureData, &ti, "%s: SignatureData", szFieldName);
- parseString(subtree, tvb, pOffset, hf_opcua_Algorithm);
- parseByteString(subtree, tvb, pOffset, hf_opcua_Signature);
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_Algorithm);
+ parseByteString(subtree, tvb, pinfo, pOffset, hf_opcua_Signature);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseUserIdentityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseUserIdentityToken(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_UserIdentityToken, &ti, "%s: UserIdentityToken", szFieldName);
- parseString(subtree, tvb, pOffset, hf_opcua_PolicyId);
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_PolicyId);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseAnonymousIdentityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseAnonymousIdentityToken(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_AnonymousIdentityToken, &ti, "%s: AnonymousIdentityToken", szFieldName);
- parseString(subtree, tvb, pOffset, hf_opcua_PolicyId);
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_PolicyId);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseUserNameIdentityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseUserNameIdentityToken(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_UserNameIdentityToken, &ti, "%s: UserNameIdentityToken", szFieldName);
- parseString(subtree, tvb, pOffset, hf_opcua_PolicyId);
- parseString(subtree, tvb, pOffset, hf_opcua_UserName);
- parseByteString(subtree, tvb, pOffset, hf_opcua_Password);
- parseString(subtree, tvb, pOffset, hf_opcua_EncryptionAlgorithm);
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_PolicyId);
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_UserName);
+ parseByteString(subtree, tvb, pinfo, pOffset, hf_opcua_Password);
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_EncryptionAlgorithm);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseX509IdentityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseX509IdentityToken(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_X509IdentityToken, &ti, "%s: X509IdentityToken", szFieldName);
- parseString(subtree, tvb, pOffset, hf_opcua_PolicyId);
- parseByteString(subtree, tvb, pOffset, hf_opcua_CertificateData);
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_PolicyId);
+ parseByteString(subtree, tvb, pinfo, pOffset, hf_opcua_CertificateData);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseIssuedIdentityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseIssuedIdentityToken(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_IssuedIdentityToken, &ti, "%s: IssuedIdentityToken", szFieldName);
- parseString(subtree, tvb, pOffset, hf_opcua_PolicyId);
- parseByteString(subtree, tvb, pOffset, hf_opcua_TokenData);
- parseString(subtree, tvb, pOffset, hf_opcua_EncryptionAlgorithm);
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_PolicyId);
+ parseByteString(subtree, tvb, pinfo, pOffset, hf_opcua_TokenData);
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_EncryptionAlgorithm);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseNodeAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseNodeAttributes(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_NodeAttributes, &ti, "%s: NodeAttributes", szFieldName);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_SpecifiedAttributes);
- parseLocalizedText(subtree, tvb, pOffset, "DisplayName");
- parseLocalizedText(subtree, tvb, pOffset, "Description");
- parseUInt32(subtree, tvb, pOffset, hf_opcua_WriteMask);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_UserWriteMask);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_SpecifiedAttributes);
+ parseLocalizedText(subtree, tvb, pinfo, pOffset, "DisplayName");
+ parseLocalizedText(subtree, tvb, pinfo, pOffset, "Description");
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_WriteMask);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_UserWriteMask);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseObjectAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseObjectAttributes(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_ObjectAttributes, &ti, "%s: ObjectAttributes", szFieldName);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_SpecifiedAttributes);
- parseLocalizedText(subtree, tvb, pOffset, "DisplayName");
- parseLocalizedText(subtree, tvb, pOffset, "Description");
- parseUInt32(subtree, tvb, pOffset, hf_opcua_WriteMask);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_UserWriteMask);
- parseByte(subtree, tvb, pOffset, hf_opcua_EventNotifier);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_SpecifiedAttributes);
+ parseLocalizedText(subtree, tvb, pinfo, pOffset, "DisplayName");
+ parseLocalizedText(subtree, tvb, pinfo, pOffset, "Description");
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_WriteMask);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_UserWriteMask);
+ parseByte(subtree, tvb, pinfo, pOffset, hf_opcua_EventNotifier);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseVariableAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseVariableAttributes(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_VariableAttributes, &ti, "%s: VariableAttributes", szFieldName);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_SpecifiedAttributes);
- parseLocalizedText(subtree, tvb, pOffset, "DisplayName");
- parseLocalizedText(subtree, tvb, pOffset, "Description");
- parseUInt32(subtree, tvb, pOffset, hf_opcua_WriteMask);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_UserWriteMask);
- parseVariant(subtree, tvb, pOffset, "Value");
- parseNodeId(subtree, tvb, pOffset, "DataType");
- parseInt32(subtree, tvb, pOffset, hf_opcua_ValueRank);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_SpecifiedAttributes);
+ parseLocalizedText(subtree, tvb, pinfo, pOffset, "DisplayName");
+ parseLocalizedText(subtree, tvb, pinfo, pOffset, "Description");
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_WriteMask);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_UserWriteMask);
+ parseVariant(subtree, tvb, pinfo, pOffset, "Value");
+ parseNodeId(subtree, tvb, pinfo, pOffset, "DataType");
+ parseInt32(subtree, tvb, pinfo, pOffset, hf_opcua_ValueRank);
/* Array length field ignored: NoOfArrayDimensions */
- parseArraySimple(subtree, tvb, pOffset, "ArrayDimensions", "UInt32", hf_opcua_ArrayDimensions, parseUInt32, ett_opcua_array_UInt32);
- parseByte(subtree, tvb, pOffset, hf_opcua_AccessLevel);
- parseByte(subtree, tvb, pOffset, hf_opcua_UserAccessLevel);
- parseDouble(subtree, tvb, pOffset, hf_opcua_MinimumSamplingInterval);
- parseBoolean(subtree, tvb, pOffset, hf_opcua_Historizing);
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "ArrayDimensions", "UInt32", hf_opcua_ArrayDimensions, parseUInt32, ett_opcua_array_UInt32);
+ parseByte(subtree, tvb, pinfo, pOffset, hf_opcua_AccessLevel);
+ parseByte(subtree, tvb, pinfo, pOffset, hf_opcua_UserAccessLevel);
+ parseDouble(subtree, tvb, pinfo, pOffset, hf_opcua_MinimumSamplingInterval);
+ parseBoolean(subtree, tvb, pinfo, pOffset, hf_opcua_Historizing);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseMethodAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseMethodAttributes(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_MethodAttributes, &ti, "%s: MethodAttributes", szFieldName);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_SpecifiedAttributes);
- parseLocalizedText(subtree, tvb, pOffset, "DisplayName");
- parseLocalizedText(subtree, tvb, pOffset, "Description");
- parseUInt32(subtree, tvb, pOffset, hf_opcua_WriteMask);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_UserWriteMask);
- parseBoolean(subtree, tvb, pOffset, hf_opcua_Executable);
- parseBoolean(subtree, tvb, pOffset, hf_opcua_UserExecutable);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_SpecifiedAttributes);
+ parseLocalizedText(subtree, tvb, pinfo, pOffset, "DisplayName");
+ parseLocalizedText(subtree, tvb, pinfo, pOffset, "Description");
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_WriteMask);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_UserWriteMask);
+ parseBoolean(subtree, tvb, pinfo, pOffset, hf_opcua_Executable);
+ parseBoolean(subtree, tvb, pinfo, pOffset, hf_opcua_UserExecutable);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseObjectTypeAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseObjectTypeAttributes(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_ObjectTypeAttributes, &ti, "%s: ObjectTypeAttributes", szFieldName);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_SpecifiedAttributes);
- parseLocalizedText(subtree, tvb, pOffset, "DisplayName");
- parseLocalizedText(subtree, tvb, pOffset, "Description");
- parseUInt32(subtree, tvb, pOffset, hf_opcua_WriteMask);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_UserWriteMask);
- parseBoolean(subtree, tvb, pOffset, hf_opcua_IsAbstract);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_SpecifiedAttributes);
+ parseLocalizedText(subtree, tvb, pinfo, pOffset, "DisplayName");
+ parseLocalizedText(subtree, tvb, pinfo, pOffset, "Description");
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_WriteMask);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_UserWriteMask);
+ parseBoolean(subtree, tvb, pinfo, pOffset, hf_opcua_IsAbstract);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseVariableTypeAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseVariableTypeAttributes(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_VariableTypeAttributes, &ti, "%s: VariableTypeAttributes", szFieldName);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_SpecifiedAttributes);
- parseLocalizedText(subtree, tvb, pOffset, "DisplayName");
- parseLocalizedText(subtree, tvb, pOffset, "Description");
- parseUInt32(subtree, tvb, pOffset, hf_opcua_WriteMask);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_UserWriteMask);
- parseVariant(subtree, tvb, pOffset, "Value");
- parseNodeId(subtree, tvb, pOffset, "DataType");
- parseInt32(subtree, tvb, pOffset, hf_opcua_ValueRank);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_SpecifiedAttributes);
+ parseLocalizedText(subtree, tvb, pinfo, pOffset, "DisplayName");
+ parseLocalizedText(subtree, tvb, pinfo, pOffset, "Description");
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_WriteMask);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_UserWriteMask);
+ parseVariant(subtree, tvb, pinfo, pOffset, "Value");
+ parseNodeId(subtree, tvb, pinfo, pOffset, "DataType");
+ parseInt32(subtree, tvb, pinfo, pOffset, hf_opcua_ValueRank);
/* Array length field ignored: NoOfArrayDimensions */
- parseArraySimple(subtree, tvb, pOffset, "ArrayDimensions", "UInt32", hf_opcua_ArrayDimensions, parseUInt32, ett_opcua_array_UInt32);
- parseBoolean(subtree, tvb, pOffset, hf_opcua_IsAbstract);
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "ArrayDimensions", "UInt32", hf_opcua_ArrayDimensions, parseUInt32, ett_opcua_array_UInt32);
+ parseBoolean(subtree, tvb, pinfo, pOffset, hf_opcua_IsAbstract);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseReferenceTypeAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseReferenceTypeAttributes(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_ReferenceTypeAttributes, &ti, "%s: ReferenceTypeAttributes", szFieldName);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_SpecifiedAttributes);
- parseLocalizedText(subtree, tvb, pOffset, "DisplayName");
- parseLocalizedText(subtree, tvb, pOffset, "Description");
- parseUInt32(subtree, tvb, pOffset, hf_opcua_WriteMask);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_UserWriteMask);
- parseBoolean(subtree, tvb, pOffset, hf_opcua_IsAbstract);
- parseBoolean(subtree, tvb, pOffset, hf_opcua_Symmetric);
- parseLocalizedText(subtree, tvb, pOffset, "InverseName");
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_SpecifiedAttributes);
+ parseLocalizedText(subtree, tvb, pinfo, pOffset, "DisplayName");
+ parseLocalizedText(subtree, tvb, pinfo, pOffset, "Description");
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_WriteMask);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_UserWriteMask);
+ parseBoolean(subtree, tvb, pinfo, pOffset, hf_opcua_IsAbstract);
+ parseBoolean(subtree, tvb, pinfo, pOffset, hf_opcua_Symmetric);
+ parseLocalizedText(subtree, tvb, pinfo, pOffset, "InverseName");
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseDataTypeAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseDataTypeAttributes(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_DataTypeAttributes, &ti, "%s: DataTypeAttributes", szFieldName);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_SpecifiedAttributes);
- parseLocalizedText(subtree, tvb, pOffset, "DisplayName");
- parseLocalizedText(subtree, tvb, pOffset, "Description");
- parseUInt32(subtree, tvb, pOffset, hf_opcua_WriteMask);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_UserWriteMask);
- parseBoolean(subtree, tvb, pOffset, hf_opcua_IsAbstract);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_SpecifiedAttributes);
+ parseLocalizedText(subtree, tvb, pinfo, pOffset, "DisplayName");
+ parseLocalizedText(subtree, tvb, pinfo, pOffset, "Description");
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_WriteMask);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_UserWriteMask);
+ parseBoolean(subtree, tvb, pinfo, pOffset, hf_opcua_IsAbstract);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseViewAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseViewAttributes(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_ViewAttributes, &ti, "%s: ViewAttributes", szFieldName);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_SpecifiedAttributes);
- parseLocalizedText(subtree, tvb, pOffset, "DisplayName");
- parseLocalizedText(subtree, tvb, pOffset, "Description");
- parseUInt32(subtree, tvb, pOffset, hf_opcua_WriteMask);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_UserWriteMask);
- parseBoolean(subtree, tvb, pOffset, hf_opcua_ContainsNoLoops);
- parseByte(subtree, tvb, pOffset, hf_opcua_EventNotifier);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_SpecifiedAttributes);
+ parseLocalizedText(subtree, tvb, pinfo, pOffset, "DisplayName");
+ parseLocalizedText(subtree, tvb, pinfo, pOffset, "Description");
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_WriteMask);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_UserWriteMask);
+ parseBoolean(subtree, tvb, pinfo, pOffset, hf_opcua_ContainsNoLoops);
+ parseByte(subtree, tvb, pinfo, pOffset, hf_opcua_EventNotifier);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseAddNodesItem(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseAddNodesItem(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_AddNodesItem, &ti, "%s: AddNodesItem", szFieldName);
- parseExpandedNodeId(subtree, tvb, pOffset, "ParentNodeId");
- parseNodeId(subtree, tvb, pOffset, "ReferenceTypeId");
- parseExpandedNodeId(subtree, tvb, pOffset, "RequestedNewNodeId");
- parseQualifiedName(subtree, tvb, pOffset, "BrowseName");
- parseNodeClass(subtree, tvb, pOffset);
- parseExtensionObject(subtree, tvb, pOffset, "NodeAttributes");
- parseExpandedNodeId(subtree, tvb, pOffset, "TypeDefinition");
+ parseExpandedNodeId(subtree, tvb, pinfo, pOffset, "ParentNodeId");
+ parseNodeId(subtree, tvb, pinfo, pOffset, "ReferenceTypeId");
+ parseExpandedNodeId(subtree, tvb, pinfo, pOffset, "RequestedNewNodeId");
+ parseQualifiedName(subtree, tvb, pinfo, pOffset, "BrowseName");
+ parseNodeClass(subtree, tvb, pinfo, pOffset);
+ parseExtensionObject(subtree, tvb, pinfo, pOffset, "NodeAttributes");
+ parseExpandedNodeId(subtree, tvb, pinfo, pOffset, "TypeDefinition");
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseAddNodesResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseAddNodesResult(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_AddNodesResult, &ti, "%s: AddNodesResult", szFieldName);
- parseStatusCode(subtree, tvb, pOffset, hf_opcua_StatusCode);
- parseNodeId(subtree, tvb, pOffset, "AddedNodeId");
+ parseStatusCode(subtree, tvb, pinfo, pOffset, hf_opcua_StatusCode);
+ parseNodeId(subtree, tvb, pinfo, pOffset, "AddedNodeId");
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseAddReferencesItem(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseAddReferencesItem(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_AddReferencesItem, &ti, "%s: AddReferencesItem", szFieldName);
- parseNodeId(subtree, tvb, pOffset, "SourceNodeId");
- parseNodeId(subtree, tvb, pOffset, "ReferenceTypeId");
- parseBoolean(subtree, tvb, pOffset, hf_opcua_IsForward);
- parseString(subtree, tvb, pOffset, hf_opcua_TargetServerUri);
- parseExpandedNodeId(subtree, tvb, pOffset, "TargetNodeId");
- parseNodeClass(subtree, tvb, pOffset);
+ parseNodeId(subtree, tvb, pinfo, pOffset, "SourceNodeId");
+ parseNodeId(subtree, tvb, pinfo, pOffset, "ReferenceTypeId");
+ parseBoolean(subtree, tvb, pinfo, pOffset, hf_opcua_IsForward);
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_TargetServerUri);
+ parseExpandedNodeId(subtree, tvb, pinfo, pOffset, "TargetNodeId");
+ parseNodeClass(subtree, tvb, pinfo, pOffset);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseDeleteNodesItem(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseDeleteNodesItem(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_DeleteNodesItem, &ti, "%s: DeleteNodesItem", szFieldName);
- parseNodeId(subtree, tvb, pOffset, "NodeId");
- parseBoolean(subtree, tvb, pOffset, hf_opcua_DeleteTargetReferences);
+ parseNodeId(subtree, tvb, pinfo, pOffset, "NodeId");
+ parseBoolean(subtree, tvb, pinfo, pOffset, hf_opcua_DeleteTargetReferences);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseDeleteReferencesItem(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseDeleteReferencesItem(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_DeleteReferencesItem, &ti, "%s: DeleteReferencesItem", szFieldName);
- parseNodeId(subtree, tvb, pOffset, "SourceNodeId");
- parseNodeId(subtree, tvb, pOffset, "ReferenceTypeId");
- parseBoolean(subtree, tvb, pOffset, hf_opcua_IsForward);
- parseExpandedNodeId(subtree, tvb, pOffset, "TargetNodeId");
- parseBoolean(subtree, tvb, pOffset, hf_opcua_DeleteBidirectional);
+ parseNodeId(subtree, tvb, pinfo, pOffset, "SourceNodeId");
+ parseNodeId(subtree, tvb, pinfo, pOffset, "ReferenceTypeId");
+ parseBoolean(subtree, tvb, pinfo, pOffset, hf_opcua_IsForward);
+ parseExpandedNodeId(subtree, tvb, pinfo, pOffset, "TargetNodeId");
+ parseBoolean(subtree, tvb, pinfo, pOffset, hf_opcua_DeleteBidirectional);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseViewDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseViewDescription(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_ViewDescription, &ti, "%s: ViewDescription", szFieldName);
- parseNodeId(subtree, tvb, pOffset, "ViewId");
- parseDateTime(subtree, tvb, pOffset, hf_opcua_Timestamp);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_ViewVersion);
+ parseNodeId(subtree, tvb, pinfo, pOffset, "ViewId");
+ parseDateTime(subtree, tvb, pinfo, pOffset, hf_opcua_Timestamp);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_ViewVersion);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseBrowseDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseBrowseDescription(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_BrowseDescription, &ti, "%s: BrowseDescription", szFieldName);
- parseNodeId(subtree, tvb, pOffset, "NodeId");
- parseBrowseDirection(subtree, tvb, pOffset);
- parseNodeId(subtree, tvb, pOffset, "ReferenceTypeId");
- parseBoolean(subtree, tvb, pOffset, hf_opcua_IncludeSubtypes);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_NodeClassMask);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_ResultMask);
+ parseNodeId(subtree, tvb, pinfo, pOffset, "NodeId");
+ parseBrowseDirection(subtree, tvb, pinfo, pOffset);
+ parseNodeId(subtree, tvb, pinfo, pOffset, "ReferenceTypeId");
+ parseBoolean(subtree, tvb, pinfo, pOffset, hf_opcua_IncludeSubtypes);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_NodeClassMask);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_ResultMask);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseReferenceDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseReferenceDescription(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_ReferenceDescription, &ti, "%s: ReferenceDescription", szFieldName);
- parseNodeId(subtree, tvb, pOffset, "ReferenceTypeId");
- parseBoolean(subtree, tvb, pOffset, hf_opcua_IsForward);
- parseExpandedNodeId(subtree, tvb, pOffset, "NodeId");
- parseQualifiedName(subtree, tvb, pOffset, "BrowseName");
- parseLocalizedText(subtree, tvb, pOffset, "DisplayName");
- parseNodeClass(subtree, tvb, pOffset);
- parseExpandedNodeId(subtree, tvb, pOffset, "TypeDefinition");
+ parseNodeId(subtree, tvb, pinfo, pOffset, "ReferenceTypeId");
+ parseBoolean(subtree, tvb, pinfo, pOffset, hf_opcua_IsForward);
+ parseExpandedNodeId(subtree, tvb, pinfo, pOffset, "NodeId");
+ parseQualifiedName(subtree, tvb, pinfo, pOffset, "BrowseName");
+ parseLocalizedText(subtree, tvb, pinfo, pOffset, "DisplayName");
+ parseNodeClass(subtree, tvb, pinfo, pOffset);
+ parseExpandedNodeId(subtree, tvb, pinfo, pOffset, "TypeDefinition");
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseBrowseResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseBrowseResult(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_BrowseResult, &ti, "%s: BrowseResult", szFieldName);
- parseStatusCode(subtree, tvb, pOffset, hf_opcua_StatusCode);
- parseByteString(subtree, tvb, pOffset, hf_opcua_ContinuationPoint);
+ parseStatusCode(subtree, tvb, pinfo, pOffset, hf_opcua_StatusCode);
+ parseByteString(subtree, tvb, pinfo, pOffset, hf_opcua_ContinuationPoint);
/* Array length field ignored: NoOfReferences */
- parseArrayComplex(subtree, tvb, pOffset, "References", "ReferenceDescription", parseReferenceDescription, ett_opcua_array_ReferenceDescription);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "References", "ReferenceDescription", parseReferenceDescription, ett_opcua_array_ReferenceDescription);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseRelativePathElement(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseRelativePathElement(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_RelativePathElement, &ti, "%s: RelativePathElement", szFieldName);
- parseNodeId(subtree, tvb, pOffset, "ReferenceTypeId");
- parseBoolean(subtree, tvb, pOffset, hf_opcua_IsInverse);
- parseBoolean(subtree, tvb, pOffset, hf_opcua_IncludeSubtypes);
- parseQualifiedName(subtree, tvb, pOffset, "TargetName");
+ parseNodeId(subtree, tvb, pinfo, pOffset, "ReferenceTypeId");
+ parseBoolean(subtree, tvb, pinfo, pOffset, hf_opcua_IsInverse);
+ parseBoolean(subtree, tvb, pinfo, pOffset, hf_opcua_IncludeSubtypes);
+ parseQualifiedName(subtree, tvb, pinfo, pOffset, "TargetName");
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseRelativePath(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseRelativePath(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_RelativePath, &ti, "%s: RelativePath", szFieldName);
/* Array length field ignored: NoOfElements */
- parseArrayComplex(subtree, tvb, pOffset, "Elements", "RelativePathElement", parseRelativePathElement, ett_opcua_array_RelativePathElement);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "Elements", "RelativePathElement", parseRelativePathElement, ett_opcua_array_RelativePathElement);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseBrowsePath(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseBrowsePath(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_BrowsePath, &ti, "%s: BrowsePath", szFieldName);
- parseNodeId(subtree, tvb, pOffset, "StartingNode");
- parseRelativePath(subtree, tvb, pOffset, "RelativePath");
+ parseNodeId(subtree, tvb, pinfo, pOffset, "StartingNode");
+ parseRelativePath(subtree, tvb, pinfo, pOffset, "RelativePath");
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseBrowsePathTarget(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseBrowsePathTarget(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_BrowsePathTarget, &ti, "%s: BrowsePathTarget", szFieldName);
- parseExpandedNodeId(subtree, tvb, pOffset, "TargetId");
- parseUInt32(subtree, tvb, pOffset, hf_opcua_RemainingPathIndex);
+ parseExpandedNodeId(subtree, tvb, pinfo, pOffset, "TargetId");
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_RemainingPathIndex);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseBrowsePathResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseBrowsePathResult(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_BrowsePathResult, &ti, "%s: BrowsePathResult", szFieldName);
- parseStatusCode(subtree, tvb, pOffset, hf_opcua_StatusCode);
+ parseStatusCode(subtree, tvb, pinfo, pOffset, hf_opcua_StatusCode);
/* Array length field ignored: NoOfTargets */
- parseArrayComplex(subtree, tvb, pOffset, "Targets", "BrowsePathTarget", parseBrowsePathTarget, ett_opcua_array_BrowsePathTarget);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "Targets", "BrowsePathTarget", parseBrowsePathTarget, ett_opcua_array_BrowsePathTarget);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseEndpointConfiguration(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseEndpointConfiguration(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_EndpointConfiguration, &ti, "%s: EndpointConfiguration", szFieldName);
- parseInt32(subtree, tvb, pOffset, hf_opcua_OperationTimeout);
- parseBoolean(subtree, tvb, pOffset, hf_opcua_UseBinaryEncoding);
- parseInt32(subtree, tvb, pOffset, hf_opcua_MaxStringLength);
- parseInt32(subtree, tvb, pOffset, hf_opcua_MaxByteStringLength);
- parseInt32(subtree, tvb, pOffset, hf_opcua_MaxArrayLength);
- parseInt32(subtree, tvb, pOffset, hf_opcua_MaxMessageSize);
- parseInt32(subtree, tvb, pOffset, hf_opcua_MaxBufferSize);
- parseInt32(subtree, tvb, pOffset, hf_opcua_ChannelLifetime);
- parseInt32(subtree, tvb, pOffset, hf_opcua_SecurityTokenLifetime);
+ parseInt32(subtree, tvb, pinfo, pOffset, hf_opcua_OperationTimeout);
+ parseBoolean(subtree, tvb, pinfo, pOffset, hf_opcua_UseBinaryEncoding);
+ parseInt32(subtree, tvb, pinfo, pOffset, hf_opcua_MaxStringLength);
+ parseInt32(subtree, tvb, pinfo, pOffset, hf_opcua_MaxByteStringLength);
+ parseInt32(subtree, tvb, pinfo, pOffset, hf_opcua_MaxArrayLength);
+ parseInt32(subtree, tvb, pinfo, pOffset, hf_opcua_MaxMessageSize);
+ parseInt32(subtree, tvb, pinfo, pOffset, hf_opcua_MaxBufferSize);
+ parseInt32(subtree, tvb, pinfo, pOffset, hf_opcua_ChannelLifetime);
+ parseInt32(subtree, tvb, pinfo, pOffset, hf_opcua_SecurityTokenLifetime);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseSupportedProfile(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseSupportedProfile(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_SupportedProfile, &ti, "%s: SupportedProfile", szFieldName);
- parseString(subtree, tvb, pOffset, hf_opcua_OrganizationUri);
- parseString(subtree, tvb, pOffset, hf_opcua_ProfileId);
- parseString(subtree, tvb, pOffset, hf_opcua_ComplianceTool);
- parseDateTime(subtree, tvb, pOffset, hf_opcua_ComplianceDate);
- parseComplianceLevel(subtree, tvb, pOffset);
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_OrganizationUri);
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_ProfileId);
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_ComplianceTool);
+ parseDateTime(subtree, tvb, pinfo, pOffset, hf_opcua_ComplianceDate);
+ parseComplianceLevel(subtree, tvb, pinfo, pOffset);
/* Array length field ignored: NoOfUnsupportedUnitIds */
- parseArraySimple(subtree, tvb, pOffset, "UnsupportedUnitIds", "String", hf_opcua_UnsupportedUnitIds, parseString, ett_opcua_array_String);
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "UnsupportedUnitIds", "String", hf_opcua_UnsupportedUnitIds, parseString, ett_opcua_array_String);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseSoftwareCertificate(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseSoftwareCertificate(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_SoftwareCertificate, &ti, "%s: SoftwareCertificate", szFieldName);
- parseString(subtree, tvb, pOffset, hf_opcua_ProductName);
- parseString(subtree, tvb, pOffset, hf_opcua_ProductUri);
- parseString(subtree, tvb, pOffset, hf_opcua_VendorName);
- parseByteString(subtree, tvb, pOffset, hf_opcua_VendorProductCertificate);
- parseString(subtree, tvb, pOffset, hf_opcua_SoftwareVersion);
- parseString(subtree, tvb, pOffset, hf_opcua_BuildNumber);
- parseDateTime(subtree, tvb, pOffset, hf_opcua_BuildDate);
- parseString(subtree, tvb, pOffset, hf_opcua_IssuedBy);
- parseDateTime(subtree, tvb, pOffset, hf_opcua_IssueDate);
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_ProductName);
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_ProductUri);
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_VendorName);
+ parseByteString(subtree, tvb, pinfo, pOffset, hf_opcua_VendorProductCertificate);
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_SoftwareVersion);
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_BuildNumber);
+ parseDateTime(subtree, tvb, pinfo, pOffset, hf_opcua_BuildDate);
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_IssuedBy);
+ parseDateTime(subtree, tvb, pinfo, pOffset, hf_opcua_IssueDate);
/* Array length field ignored: NoOfSupportedProfiles */
- parseArrayComplex(subtree, tvb, pOffset, "SupportedProfiles", "SupportedProfile", parseSupportedProfile, ett_opcua_array_SupportedProfile);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "SupportedProfiles", "SupportedProfile", parseSupportedProfile, ett_opcua_array_SupportedProfile);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseQueryDataDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseQueryDataDescription(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_QueryDataDescription, &ti, "%s: QueryDataDescription", szFieldName);
- parseRelativePath(subtree, tvb, pOffset, "RelativePath");
- parseUInt32(subtree, tvb, pOffset, hf_opcua_AttributeId);
- parseString(subtree, tvb, pOffset, hf_opcua_IndexRange);
+ parseRelativePath(subtree, tvb, pinfo, pOffset, "RelativePath");
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_AttributeId);
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_IndexRange);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseNodeTypeDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseNodeTypeDescription(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_NodeTypeDescription, &ti, "%s: NodeTypeDescription", szFieldName);
- parseExpandedNodeId(subtree, tvb, pOffset, "TypeDefinitionNode");
- parseBoolean(subtree, tvb, pOffset, hf_opcua_IncludeSubTypes);
+ parseExpandedNodeId(subtree, tvb, pinfo, pOffset, "TypeDefinitionNode");
+ parseBoolean(subtree, tvb, pinfo, pOffset, hf_opcua_IncludeSubTypes);
/* Array length field ignored: NoOfDataToReturn */
- parseArrayComplex(subtree, tvb, pOffset, "DataToReturn", "QueryDataDescription", parseQueryDataDescription, ett_opcua_array_QueryDataDescription);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "DataToReturn", "QueryDataDescription", parseQueryDataDescription, ett_opcua_array_QueryDataDescription);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseQueryDataSet(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseQueryDataSet(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_QueryDataSet, &ti, "%s: QueryDataSet", szFieldName);
- parseExpandedNodeId(subtree, tvb, pOffset, "NodeId");
- parseExpandedNodeId(subtree, tvb, pOffset, "TypeDefinitionNode");
+ parseExpandedNodeId(subtree, tvb, pinfo, pOffset, "NodeId");
+ parseExpandedNodeId(subtree, tvb, pinfo, pOffset, "TypeDefinitionNode");
/* Array length field ignored: NoOfValues */
- parseArrayComplex(subtree, tvb, pOffset, "Values", "Variant", parseVariant, ett_opcua_array_Variant);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "Values", "Variant", parseVariant, ett_opcua_array_Variant);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseNodeReference(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseNodeReference(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_NodeReference, &ti, "%s: NodeReference", szFieldName);
- parseNodeId(subtree, tvb, pOffset, "NodeId");
- parseNodeId(subtree, tvb, pOffset, "ReferenceTypeId");
- parseBoolean(subtree, tvb, pOffset, hf_opcua_IsForward);
+ parseNodeId(subtree, tvb, pinfo, pOffset, "NodeId");
+ parseNodeId(subtree, tvb, pinfo, pOffset, "ReferenceTypeId");
+ parseBoolean(subtree, tvb, pinfo, pOffset, hf_opcua_IsForward);
/* Array length field ignored: NoOfReferencedNodeIds */
- parseArrayComplex(subtree, tvb, pOffset, "ReferencedNodeIds", "NodeId", parseNodeId, ett_opcua_array_NodeId);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "ReferencedNodeIds", "NodeId", parseNodeId, ett_opcua_array_NodeId);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseContentFilterElement(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseContentFilterElement(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_ContentFilterElement, &ti, "%s: ContentFilterElement", szFieldName);
- parseFilterOperator(subtree, tvb, pOffset);
+ parseFilterOperator(subtree, tvb, pinfo, pOffset);
/* Array length field ignored: NoOfFilterOperands */
- parseArrayComplex(subtree, tvb, pOffset, "FilterOperands", "ExtensionObject", parseExtensionObject, ett_opcua_array_ExtensionObject);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "FilterOperands", "ExtensionObject", parseExtensionObject, ett_opcua_array_ExtensionObject);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseContentFilter(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseContentFilter(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_ContentFilter, &ti, "%s: ContentFilter", szFieldName);
/* Array length field ignored: NoOfElements */
- parseArrayComplex(subtree, tvb, pOffset, "Elements", "ContentFilterElement", parseContentFilterElement, ett_opcua_array_ContentFilterElement);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "Elements", "ContentFilterElement", parseContentFilterElement, ett_opcua_array_ContentFilterElement);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseElementOperand(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseElementOperand(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_ElementOperand, &ti, "%s: ElementOperand", szFieldName);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_Index);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_Index);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseLiteralOperand(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseLiteralOperand(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_LiteralOperand, &ti, "%s: LiteralOperand", szFieldName);
- parseVariant(subtree, tvb, pOffset, "Value");
+ parseVariant(subtree, tvb, pinfo, pOffset, "Value");
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseAttributeOperand(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseAttributeOperand(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_AttributeOperand, &ti, "%s: AttributeOperand", szFieldName);
- parseNodeId(subtree, tvb, pOffset, "NodeId");
- parseString(subtree, tvb, pOffset, hf_opcua_Alias);
- parseRelativePath(subtree, tvb, pOffset, "BrowsePath");
- parseUInt32(subtree, tvb, pOffset, hf_opcua_AttributeId);
- parseString(subtree, tvb, pOffset, hf_opcua_IndexRange);
+ parseNodeId(subtree, tvb, pinfo, pOffset, "NodeId");
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_Alias);
+ parseRelativePath(subtree, tvb, pinfo, pOffset, "BrowsePath");
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_AttributeId);
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_IndexRange);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseSimpleAttributeOperand(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseSimpleAttributeOperand(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_SimpleAttributeOperand, &ti, "%s: SimpleAttributeOperand", szFieldName);
- parseNodeId(subtree, tvb, pOffset, "TypeDefinitionId");
+ parseNodeId(subtree, tvb, pinfo, pOffset, "TypeDefinitionId");
/* Array length field ignored: NoOfBrowsePath */
- parseArrayComplex(subtree, tvb, pOffset, "BrowsePath", "QualifiedName", parseQualifiedName, ett_opcua_array_QualifiedName);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_AttributeId);
- parseString(subtree, tvb, pOffset, hf_opcua_IndexRange);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "BrowsePath", "QualifiedName", parseQualifiedName, ett_opcua_array_QualifiedName);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_AttributeId);
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_IndexRange);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseContentFilterElementResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseContentFilterElementResult(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_ContentFilterElementResult, &ti, "%s: ContentFilterElementResult", szFieldName);
- parseStatusCode(subtree, tvb, pOffset, hf_opcua_StatusCode);
+ parseStatusCode(subtree, tvb, pinfo, pOffset, hf_opcua_StatusCode);
/* Array length field ignored: NoOfOperandStatusCodes */
- parseArraySimple(subtree, tvb, pOffset, "OperandStatusCodes", "StatusCode", hf_opcua_OperandStatusCodes, parseStatusCode, ett_opcua_array_StatusCode);
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "OperandStatusCodes", "StatusCode", hf_opcua_OperandStatusCodes, parseStatusCode, ett_opcua_array_StatusCode);
/* Array length field ignored: NoOfOperandDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "OperandDiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "OperandDiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseContentFilterResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseContentFilterResult(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_ContentFilterResult, &ti, "%s: ContentFilterResult", szFieldName);
/* Array length field ignored: NoOfElementResults */
- parseArrayComplex(subtree, tvb, pOffset, "ElementResults", "ContentFilterElementResult", parseContentFilterElementResult, ett_opcua_array_ContentFilterElementResult);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "ElementResults", "ContentFilterElementResult", parseContentFilterElementResult, ett_opcua_array_ContentFilterElementResult);
/* Array length field ignored: NoOfElementDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "ElementDiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "ElementDiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseParsingResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseParsingResult(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_ParsingResult, &ti, "%s: ParsingResult", szFieldName);
- parseStatusCode(subtree, tvb, pOffset, hf_opcua_StatusCode);
+ parseStatusCode(subtree, tvb, pinfo, pOffset, hf_opcua_StatusCode);
/* Array length field ignored: NoOfDataStatusCodes */
- parseArraySimple(subtree, tvb, pOffset, "DataStatusCodes", "StatusCode", hf_opcua_DataStatusCodes, parseStatusCode, ett_opcua_array_StatusCode);
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "DataStatusCodes", "StatusCode", hf_opcua_DataStatusCodes, parseStatusCode, ett_opcua_array_StatusCode);
/* Array length field ignored: NoOfDataDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "DataDiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "DataDiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseReadValueId(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseReadValueId(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_ReadValueId, &ti, "%s: ReadValueId", szFieldName);
- parseNodeId(subtree, tvb, pOffset, "NodeId");
- parseUInt32(subtree, tvb, pOffset, hf_opcua_AttributeId);
- parseString(subtree, tvb, pOffset, hf_opcua_IndexRange);
- parseQualifiedName(subtree, tvb, pOffset, "DataEncoding");
+ parseNodeId(subtree, tvb, pinfo, pOffset, "NodeId");
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_AttributeId);
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_IndexRange);
+ parseQualifiedName(subtree, tvb, pinfo, pOffset, "DataEncoding");
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseHistoryReadValueId(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseHistoryReadValueId(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_HistoryReadValueId, &ti, "%s: HistoryReadValueId", szFieldName);
- parseNodeId(subtree, tvb, pOffset, "NodeId");
- parseString(subtree, tvb, pOffset, hf_opcua_IndexRange);
- parseQualifiedName(subtree, tvb, pOffset, "DataEncoding");
- parseByteString(subtree, tvb, pOffset, hf_opcua_ContinuationPoint);
+ parseNodeId(subtree, tvb, pinfo, pOffset, "NodeId");
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_IndexRange);
+ parseQualifiedName(subtree, tvb, pinfo, pOffset, "DataEncoding");
+ parseByteString(subtree, tvb, pinfo, pOffset, hf_opcua_ContinuationPoint);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseHistoryReadResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseHistoryReadResult(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_HistoryReadResult, &ti, "%s: HistoryReadResult", szFieldName);
- parseStatusCode(subtree, tvb, pOffset, hf_opcua_StatusCode);
- parseByteString(subtree, tvb, pOffset, hf_opcua_ContinuationPoint);
- parseExtensionObject(subtree, tvb, pOffset, "HistoryData");
+ parseStatusCode(subtree, tvb, pinfo, pOffset, hf_opcua_StatusCode);
+ parseByteString(subtree, tvb, pinfo, pOffset, hf_opcua_ContinuationPoint);
+ parseExtensionObject(subtree, tvb, pinfo, pOffset, "HistoryData");
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseReadEventDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseReadEventDetails(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_ReadEventDetails, &ti, "%s: ReadEventDetails", szFieldName);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_NumValuesPerNode);
- parseDateTime(subtree, tvb, pOffset, hf_opcua_StartTime);
- parseDateTime(subtree, tvb, pOffset, hf_opcua_EndTime);
- parseEventFilter(subtree, tvb, pOffset, "Filter");
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_NumValuesPerNode);
+ parseDateTime(subtree, tvb, pinfo, pOffset, hf_opcua_StartTime);
+ parseDateTime(subtree, tvb, pinfo, pOffset, hf_opcua_EndTime);
+ parseEventFilter(subtree, tvb, pinfo, pOffset, "Filter");
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseReadRawModifiedDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseReadRawModifiedDetails(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_ReadRawModifiedDetails, &ti, "%s: ReadRawModifiedDetails", szFieldName);
- parseBoolean(subtree, tvb, pOffset, hf_opcua_IsReadModified);
- parseDateTime(subtree, tvb, pOffset, hf_opcua_StartTime);
- parseDateTime(subtree, tvb, pOffset, hf_opcua_EndTime);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_NumValuesPerNode);
- parseBoolean(subtree, tvb, pOffset, hf_opcua_ReturnBounds);
+ parseBoolean(subtree, tvb, pinfo, pOffset, hf_opcua_IsReadModified);
+ parseDateTime(subtree, tvb, pinfo, pOffset, hf_opcua_StartTime);
+ parseDateTime(subtree, tvb, pinfo, pOffset, hf_opcua_EndTime);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_NumValuesPerNode);
+ parseBoolean(subtree, tvb, pinfo, pOffset, hf_opcua_ReturnBounds);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseReadProcessedDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseReadProcessedDetails(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_ReadProcessedDetails, &ti, "%s: ReadProcessedDetails", szFieldName);
- parseDateTime(subtree, tvb, pOffset, hf_opcua_StartTime);
- parseDateTime(subtree, tvb, pOffset, hf_opcua_EndTime);
- parseDouble(subtree, tvb, pOffset, hf_opcua_ProcessingInterval);
+ parseDateTime(subtree, tvb, pinfo, pOffset, hf_opcua_StartTime);
+ parseDateTime(subtree, tvb, pinfo, pOffset, hf_opcua_EndTime);
+ parseDouble(subtree, tvb, pinfo, pOffset, hf_opcua_ProcessingInterval);
/* Array length field ignored: NoOfAggregateType */
- parseArrayComplex(subtree, tvb, pOffset, "AggregateType", "NodeId", parseNodeId, ett_opcua_array_NodeId);
- parseAggregateConfiguration(subtree, tvb, pOffset, "AggregateConfiguration");
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "AggregateType", "NodeId", parseNodeId, ett_opcua_array_NodeId);
+ parseAggregateConfiguration(subtree, tvb, pinfo, pOffset, "AggregateConfiguration");
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseReadAtTimeDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseReadAtTimeDetails(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_ReadAtTimeDetails, &ti, "%s: ReadAtTimeDetails", szFieldName);
/* Array length field ignored: NoOfReqTimes */
- parseArraySimple(subtree, tvb, pOffset, "ReqTimes", "DateTime", hf_opcua_ReqTimes, parseDateTime, ett_opcua_array_DateTime);
- parseBoolean(subtree, tvb, pOffset, hf_opcua_UseSimpleBounds);
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "ReqTimes", "DateTime", hf_opcua_ReqTimes, parseDateTime, ett_opcua_array_DateTime);
+ parseBoolean(subtree, tvb, pinfo, pOffset, hf_opcua_UseSimpleBounds);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseHistoryData(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseHistoryData(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_HistoryData, &ti, "%s: HistoryData", szFieldName);
/* Array length field ignored: NoOfDataValues */
- parseArrayComplex(subtree, tvb, pOffset, "DataValues", "DataValue", parseDataValue, ett_opcua_array_DataValue);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "DataValues", "DataValue", parseDataValue, ett_opcua_array_DataValue);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseModificationInfo(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseModificationInfo(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_ModificationInfo, &ti, "%s: ModificationInfo", szFieldName);
- parseDateTime(subtree, tvb, pOffset, hf_opcua_ModificationTime);
- parseHistoryUpdateType(subtree, tvb, pOffset);
- parseString(subtree, tvb, pOffset, hf_opcua_UserName);
+ parseDateTime(subtree, tvb, pinfo, pOffset, hf_opcua_ModificationTime);
+ parseHistoryUpdateType(subtree, tvb, pinfo, pOffset);
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_UserName);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseHistoryModifiedData(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseHistoryModifiedData(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_HistoryModifiedData, &ti, "%s: HistoryModifiedData", szFieldName);
/* Array length field ignored: NoOfDataValues */
- parseArrayComplex(subtree, tvb, pOffset, "DataValues", "DataValue", parseDataValue, ett_opcua_array_DataValue);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "DataValues", "DataValue", parseDataValue, ett_opcua_array_DataValue);
/* Array length field ignored: NoOfModificationInfos */
- parseArrayComplex(subtree, tvb, pOffset, "ModificationInfos", "ModificationInfo", parseModificationInfo, ett_opcua_array_ModificationInfo);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "ModificationInfos", "ModificationInfo", parseModificationInfo, ett_opcua_array_ModificationInfo);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseHistoryEvent(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseHistoryEvent(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_HistoryEvent, &ti, "%s: HistoryEvent", szFieldName);
/* Array length field ignored: NoOfEvents */
- parseArrayComplex(subtree, tvb, pOffset, "Events", "HistoryEventFieldList", parseHistoryEventFieldList, ett_opcua_array_HistoryEventFieldList);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "Events", "HistoryEventFieldList", parseHistoryEventFieldList, ett_opcua_array_HistoryEventFieldList);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseWriteValue(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseWriteValue(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_WriteValue, &ti, "%s: WriteValue", szFieldName);
- parseNodeId(subtree, tvb, pOffset, "NodeId");
- parseUInt32(subtree, tvb, pOffset, hf_opcua_AttributeId);
- parseString(subtree, tvb, pOffset, hf_opcua_IndexRange);
- parseDataValue(subtree, tvb, pOffset, "Value");
+ parseNodeId(subtree, tvb, pinfo, pOffset, "NodeId");
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_AttributeId);
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_IndexRange);
+ parseDataValue(subtree, tvb, pinfo, pOffset, "Value");
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseHistoryUpdateDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseHistoryUpdateDetails(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_HistoryUpdateDetails, &ti, "%s: HistoryUpdateDetails", szFieldName);
- parseNodeId(subtree, tvb, pOffset, "NodeId");
+ parseNodeId(subtree, tvb, pinfo, pOffset, "NodeId");
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseUpdateDataDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseUpdateDataDetails(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_UpdateDataDetails, &ti, "%s: UpdateDataDetails", szFieldName);
- parseNodeId(subtree, tvb, pOffset, "NodeId");
- parsePerformUpdateType(subtree, tvb, pOffset);
+ parseNodeId(subtree, tvb, pinfo, pOffset, "NodeId");
+ parsePerformUpdateType(subtree, tvb, pinfo, pOffset);
/* Array length field ignored: NoOfUpdateValues */
- parseArrayComplex(subtree, tvb, pOffset, "UpdateValues", "DataValue", parseDataValue, ett_opcua_array_DataValue);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "UpdateValues", "DataValue", parseDataValue, ett_opcua_array_DataValue);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseUpdateStructureDataDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseUpdateStructureDataDetails(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_UpdateStructureDataDetails, &ti, "%s: UpdateStructureDataDetails", szFieldName);
- parseNodeId(subtree, tvb, pOffset, "NodeId");
- parsePerformUpdateType(subtree, tvb, pOffset);
+ parseNodeId(subtree, tvb, pinfo, pOffset, "NodeId");
+ parsePerformUpdateType(subtree, tvb, pinfo, pOffset);
/* Array length field ignored: NoOfUpdateValues */
- parseArrayComplex(subtree, tvb, pOffset, "UpdateValues", "DataValue", parseDataValue, ett_opcua_array_DataValue);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "UpdateValues", "DataValue", parseDataValue, ett_opcua_array_DataValue);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseUpdateEventDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseUpdateEventDetails(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_UpdateEventDetails, &ti, "%s: UpdateEventDetails", szFieldName);
- parseNodeId(subtree, tvb, pOffset, "NodeId");
- parsePerformUpdateType(subtree, tvb, pOffset);
- parseEventFilter(subtree, tvb, pOffset, "Filter");
- parseHistoryEventFieldList(subtree, tvb, pOffset, "EventData");
+ parseNodeId(subtree, tvb, pinfo, pOffset, "NodeId");
+ parsePerformUpdateType(subtree, tvb, pinfo, pOffset);
+ parseEventFilter(subtree, tvb, pinfo, pOffset, "Filter");
+ parseHistoryEventFieldList(subtree, tvb, pinfo, pOffset, "EventData");
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseDeleteRawModifiedDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseDeleteRawModifiedDetails(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_DeleteRawModifiedDetails, &ti, "%s: DeleteRawModifiedDetails", szFieldName);
- parseNodeId(subtree, tvb, pOffset, "NodeId");
- parseBoolean(subtree, tvb, pOffset, hf_opcua_IsDeleteModified);
- parseDateTime(subtree, tvb, pOffset, hf_opcua_StartTime);
- parseDateTime(subtree, tvb, pOffset, hf_opcua_EndTime);
+ parseNodeId(subtree, tvb, pinfo, pOffset, "NodeId");
+ parseBoolean(subtree, tvb, pinfo, pOffset, hf_opcua_IsDeleteModified);
+ parseDateTime(subtree, tvb, pinfo, pOffset, hf_opcua_StartTime);
+ parseDateTime(subtree, tvb, pinfo, pOffset, hf_opcua_EndTime);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseDeleteAtTimeDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseDeleteAtTimeDetails(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_DeleteAtTimeDetails, &ti, "%s: DeleteAtTimeDetails", szFieldName);
- parseNodeId(subtree, tvb, pOffset, "NodeId");
+ parseNodeId(subtree, tvb, pinfo, pOffset, "NodeId");
/* Array length field ignored: NoOfReqTimes */
- parseArraySimple(subtree, tvb, pOffset, "ReqTimes", "DateTime", hf_opcua_ReqTimes, parseDateTime, ett_opcua_array_DateTime);
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "ReqTimes", "DateTime", hf_opcua_ReqTimes, parseDateTime, ett_opcua_array_DateTime);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseDeleteEventDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseDeleteEventDetails(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_DeleteEventDetails, &ti, "%s: DeleteEventDetails", szFieldName);
- parseNodeId(subtree, tvb, pOffset, "NodeId");
+ parseNodeId(subtree, tvb, pinfo, pOffset, "NodeId");
/* Array length field ignored: NoOfEventIds */
- parseArraySimple(subtree, tvb, pOffset, "EventIds", "ByteString", hf_opcua_EventIds, parseByteString, ett_opcua_array_ByteString);
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "EventIds", "ByteString", hf_opcua_EventIds, parseByteString, ett_opcua_array_ByteString);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseHistoryUpdateResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseHistoryUpdateResult(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_HistoryUpdateResult, &ti, "%s: HistoryUpdateResult", szFieldName);
- parseStatusCode(subtree, tvb, pOffset, hf_opcua_StatusCode);
+ parseStatusCode(subtree, tvb, pinfo, pOffset, hf_opcua_StatusCode);
/* Array length field ignored: NoOfOperationResults */
- parseArraySimple(subtree, tvb, pOffset, "OperationResults", "StatusCode", hf_opcua_OperationResults, parseStatusCode, ett_opcua_array_StatusCode);
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "OperationResults", "StatusCode", hf_opcua_OperationResults, parseStatusCode, ett_opcua_array_StatusCode);
/* Array length field ignored: NoOfDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseCallMethodRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseCallMethodRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_CallMethodRequest, &ti, "%s: CallMethodRequest", szFieldName);
- parseNodeId(subtree, tvb, pOffset, "ObjectId");
- parseNodeId(subtree, tvb, pOffset, "MethodId");
+ parseNodeId(subtree, tvb, pinfo, pOffset, "ObjectId");
+ parseNodeId(subtree, tvb, pinfo, pOffset, "MethodId");
/* Array length field ignored: NoOfInputArguments */
- parseArrayComplex(subtree, tvb, pOffset, "InputArguments", "Variant", parseVariant, ett_opcua_array_Variant);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "InputArguments", "Variant", parseVariant, ett_opcua_array_Variant);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseCallMethodResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseCallMethodResult(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_CallMethodResult, &ti, "%s: CallMethodResult", szFieldName);
- parseStatusCode(subtree, tvb, pOffset, hf_opcua_StatusCode);
+ parseStatusCode(subtree, tvb, pinfo, pOffset, hf_opcua_StatusCode);
/* Array length field ignored: NoOfInputArgumentResults */
- parseArraySimple(subtree, tvb, pOffset, "InputArgumentResults", "StatusCode", hf_opcua_InputArgumentResults, parseStatusCode, ett_opcua_array_StatusCode);
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "InputArgumentResults", "StatusCode", hf_opcua_InputArgumentResults, parseStatusCode, ett_opcua_array_StatusCode);
/* Array length field ignored: NoOfInputArgumentDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "InputArgumentDiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "InputArgumentDiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
/* Array length field ignored: NoOfOutputArguments */
- parseArrayComplex(subtree, tvb, pOffset, "OutputArguments", "Variant", parseVariant, ett_opcua_array_Variant);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "OutputArguments", "Variant", parseVariant, ett_opcua_array_Variant);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseDataChangeFilter(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseDataChangeFilter(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_DataChangeFilter, &ti, "%s: DataChangeFilter", szFieldName);
- parseDataChangeTrigger(subtree, tvb, pOffset);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_DeadbandType);
- parseDouble(subtree, tvb, pOffset, hf_opcua_DeadbandValue);
+ parseDataChangeTrigger(subtree, tvb, pinfo, pOffset);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_DeadbandType);
+ parseDouble(subtree, tvb, pinfo, pOffset, hf_opcua_DeadbandValue);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseEventFilter(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseEventFilter(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_EventFilter, &ti, "%s: EventFilter", szFieldName);
/* Array length field ignored: NoOfSelectClauses */
- parseArrayComplex(subtree, tvb, pOffset, "SelectClauses", "SimpleAttributeOperand", parseSimpleAttributeOperand, ett_opcua_array_SimpleAttributeOperand);
- parseContentFilter(subtree, tvb, pOffset, "WhereClause");
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "SelectClauses", "SimpleAttributeOperand", parseSimpleAttributeOperand, ett_opcua_array_SimpleAttributeOperand);
+ parseContentFilter(subtree, tvb, pinfo, pOffset, "WhereClause");
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseAggregateConfiguration(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseAggregateConfiguration(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_AggregateConfiguration, &ti, "%s: AggregateConfiguration", szFieldName);
- parseBoolean(subtree, tvb, pOffset, hf_opcua_UseServerCapabilitiesDefaults);
- parseBoolean(subtree, tvb, pOffset, hf_opcua_TreatUncertainAsBad);
- parseByte(subtree, tvb, pOffset, hf_opcua_PercentDataBad);
- parseByte(subtree, tvb, pOffset, hf_opcua_PercentDataGood);
- parseBoolean(subtree, tvb, pOffset, hf_opcua_UseSlopedExtrapolation);
+ parseBoolean(subtree, tvb, pinfo, pOffset, hf_opcua_UseServerCapabilitiesDefaults);
+ parseBoolean(subtree, tvb, pinfo, pOffset, hf_opcua_TreatUncertainAsBad);
+ parseByte(subtree, tvb, pinfo, pOffset, hf_opcua_PercentDataBad);
+ parseByte(subtree, tvb, pinfo, pOffset, hf_opcua_PercentDataGood);
+ parseBoolean(subtree, tvb, pinfo, pOffset, hf_opcua_UseSlopedExtrapolation);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseAggregateFilter(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseAggregateFilter(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_AggregateFilter, &ti, "%s: AggregateFilter", szFieldName);
- parseDateTime(subtree, tvb, pOffset, hf_opcua_StartTime);
- parseNodeId(subtree, tvb, pOffset, "AggregateType");
- parseDouble(subtree, tvb, pOffset, hf_opcua_ProcessingInterval);
- parseAggregateConfiguration(subtree, tvb, pOffset, "AggregateConfiguration");
+ parseDateTime(subtree, tvb, pinfo, pOffset, hf_opcua_StartTime);
+ parseNodeId(subtree, tvb, pinfo, pOffset, "AggregateType");
+ parseDouble(subtree, tvb, pinfo, pOffset, hf_opcua_ProcessingInterval);
+ parseAggregateConfiguration(subtree, tvb, pinfo, pOffset, "AggregateConfiguration");
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseEventFilterResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseEventFilterResult(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_EventFilterResult, &ti, "%s: EventFilterResult", szFieldName);
/* Array length field ignored: NoOfSelectClauseResults */
- parseArraySimple(subtree, tvb, pOffset, "SelectClauseResults", "StatusCode", hf_opcua_SelectClauseResults, parseStatusCode, ett_opcua_array_StatusCode);
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "SelectClauseResults", "StatusCode", hf_opcua_SelectClauseResults, parseStatusCode, ett_opcua_array_StatusCode);
/* Array length field ignored: NoOfSelectClauseDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "SelectClauseDiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
- parseContentFilterResult(subtree, tvb, pOffset, "WhereClauseResult");
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "SelectClauseDiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
+ parseContentFilterResult(subtree, tvb, pinfo, pOffset, "WhereClauseResult");
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseAggregateFilterResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseAggregateFilterResult(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_AggregateFilterResult, &ti, "%s: AggregateFilterResult", szFieldName);
- parseDateTime(subtree, tvb, pOffset, hf_opcua_RevisedStartTime);
- parseDouble(subtree, tvb, pOffset, hf_opcua_RevisedProcessingInterval);
- parseAggregateConfiguration(subtree, tvb, pOffset, "RevisedAggregateConfiguration");
+ parseDateTime(subtree, tvb, pinfo, pOffset, hf_opcua_RevisedStartTime);
+ parseDouble(subtree, tvb, pinfo, pOffset, hf_opcua_RevisedProcessingInterval);
+ parseAggregateConfiguration(subtree, tvb, pinfo, pOffset, "RevisedAggregateConfiguration");
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseMonitoringParameters(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseMonitoringParameters(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_MonitoringParameters, &ti, "%s: MonitoringParameters", szFieldName);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_ClientHandle);
- parseDouble(subtree, tvb, pOffset, hf_opcua_SamplingInterval);
- parseExtensionObject(subtree, tvb, pOffset, "Filter");
- parseUInt32(subtree, tvb, pOffset, hf_opcua_QueueSize);
- parseBoolean(subtree, tvb, pOffset, hf_opcua_DiscardOldest);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_ClientHandle);
+ parseDouble(subtree, tvb, pinfo, pOffset, hf_opcua_SamplingInterval);
+ parseExtensionObject(subtree, tvb, pinfo, pOffset, "Filter");
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_QueueSize);
+ parseBoolean(subtree, tvb, pinfo, pOffset, hf_opcua_DiscardOldest);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseMonitoredItemCreateRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseMonitoredItemCreateRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_MonitoredItemCreateRequest, &ti, "%s: MonitoredItemCreateRequest", szFieldName);
- parseReadValueId(subtree, tvb, pOffset, "ItemToMonitor");
- parseMonitoringMode(subtree, tvb, pOffset);
- parseMonitoringParameters(subtree, tvb, pOffset, "RequestedParameters");
+ parseReadValueId(subtree, tvb, pinfo, pOffset, "ItemToMonitor");
+ parseMonitoringMode(subtree, tvb, pinfo, pOffset);
+ parseMonitoringParameters(subtree, tvb, pinfo, pOffset, "RequestedParameters");
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseMonitoredItemCreateResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseMonitoredItemCreateResult(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_MonitoredItemCreateResult, &ti, "%s: MonitoredItemCreateResult", szFieldName);
- parseStatusCode(subtree, tvb, pOffset, hf_opcua_StatusCode);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_MonitoredItemId);
- parseDouble(subtree, tvb, pOffset, hf_opcua_RevisedSamplingInterval);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_RevisedQueueSize);
- parseExtensionObject(subtree, tvb, pOffset, "FilterResult");
+ parseStatusCode(subtree, tvb, pinfo, pOffset, hf_opcua_StatusCode);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_MonitoredItemId);
+ parseDouble(subtree, tvb, pinfo, pOffset, hf_opcua_RevisedSamplingInterval);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_RevisedQueueSize);
+ parseExtensionObject(subtree, tvb, pinfo, pOffset, "FilterResult");
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseMonitoredItemModifyRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseMonitoredItemModifyRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_MonitoredItemModifyRequest, &ti, "%s: MonitoredItemModifyRequest", szFieldName);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_MonitoredItemId);
- parseMonitoringParameters(subtree, tvb, pOffset, "RequestedParameters");
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_MonitoredItemId);
+ parseMonitoringParameters(subtree, tvb, pinfo, pOffset, "RequestedParameters");
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseMonitoredItemModifyResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseMonitoredItemModifyResult(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_MonitoredItemModifyResult, &ti, "%s: MonitoredItemModifyResult", szFieldName);
- parseStatusCode(subtree, tvb, pOffset, hf_opcua_StatusCode);
- parseDouble(subtree, tvb, pOffset, hf_opcua_RevisedSamplingInterval);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_RevisedQueueSize);
- parseExtensionObject(subtree, tvb, pOffset, "FilterResult");
+ parseStatusCode(subtree, tvb, pinfo, pOffset, hf_opcua_StatusCode);
+ parseDouble(subtree, tvb, pinfo, pOffset, hf_opcua_RevisedSamplingInterval);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_RevisedQueueSize);
+ parseExtensionObject(subtree, tvb, pinfo, pOffset, "FilterResult");
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseNotificationMessage(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseNotificationMessage(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_NotificationMessage, &ti, "%s: NotificationMessage", szFieldName);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_SequenceNumber);
- parseDateTime(subtree, tvb, pOffset, hf_opcua_PublishTime);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_SequenceNumber);
+ parseDateTime(subtree, tvb, pinfo, pOffset, hf_opcua_PublishTime);
/* Array length field ignored: NoOfNotificationData */
- parseArrayComplex(subtree, tvb, pOffset, "NotificationData", "ExtensionObject", parseExtensionObject, ett_opcua_array_ExtensionObject);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "NotificationData", "ExtensionObject", parseExtensionObject, ett_opcua_array_ExtensionObject);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseDataChangeNotification(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseDataChangeNotification(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_DataChangeNotification, &ti, "%s: DataChangeNotification", szFieldName);
/* Array length field ignored: NoOfMonitoredItems */
- parseArrayComplex(subtree, tvb, pOffset, "MonitoredItems", "MonitoredItemNotification", parseMonitoredItemNotification, ett_opcua_array_MonitoredItemNotification);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "MonitoredItems", "MonitoredItemNotification", parseMonitoredItemNotification, ett_opcua_array_MonitoredItemNotification);
/* Array length field ignored: NoOfDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseMonitoredItemNotification(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseMonitoredItemNotification(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_MonitoredItemNotification, &ti, "%s: MonitoredItemNotification", szFieldName);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_ClientHandle);
- parseDataValue(subtree, tvb, pOffset, "Value");
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_ClientHandle);
+ parseDataValue(subtree, tvb, pinfo, pOffset, "Value");
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseEventNotificationList(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseEventNotificationList(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_EventNotificationList, &ti, "%s: EventNotificationList", szFieldName);
/* Array length field ignored: NoOfEvents */
- parseArrayComplex(subtree, tvb, pOffset, "Events", "EventFieldList", parseEventFieldList, ett_opcua_array_EventFieldList);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "Events", "EventFieldList", parseEventFieldList, ett_opcua_array_EventFieldList);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseEventFieldList(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseEventFieldList(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_EventFieldList, &ti, "%s: EventFieldList", szFieldName);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_ClientHandle);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_ClientHandle);
/* Array length field ignored: NoOfEventFields */
- parseArrayComplex(subtree, tvb, pOffset, "EventFields", "Variant", parseVariant, ett_opcua_array_Variant);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "EventFields", "Variant", parseVariant, ett_opcua_array_Variant);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseHistoryEventFieldList(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseHistoryEventFieldList(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_HistoryEventFieldList, &ti, "%s: HistoryEventFieldList", szFieldName);
/* Array length field ignored: NoOfEventFields */
- parseArrayComplex(subtree, tvb, pOffset, "EventFields", "Variant", parseVariant, ett_opcua_array_Variant);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "EventFields", "Variant", parseVariant, ett_opcua_array_Variant);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseStatusChangeNotification(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseStatusChangeNotification(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_StatusChangeNotification, &ti, "%s: StatusChangeNotification", szFieldName);
- parseStatusCode(subtree, tvb, pOffset, hf_opcua_Status);
- parseDiagnosticInfo(subtree, tvb, pOffset, "DiagnosticInfo");
+ parseStatusCode(subtree, tvb, pinfo, pOffset, hf_opcua_Status);
+ parseDiagnosticInfo(subtree, tvb, pinfo, pOffset, "DiagnosticInfo");
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseSubscriptionAcknowledgement(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseSubscriptionAcknowledgement(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_SubscriptionAcknowledgement, &ti, "%s: SubscriptionAcknowledgement", szFieldName);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_SequenceNumber);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_SubscriptionId);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_SequenceNumber);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseTransferResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseTransferResult(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_TransferResult, &ti, "%s: TransferResult", szFieldName);
- parseStatusCode(subtree, tvb, pOffset, hf_opcua_StatusCode);
+ parseStatusCode(subtree, tvb, pinfo, pOffset, hf_opcua_StatusCode);
/* Array length field ignored: NoOfAvailableSequenceNumbers */
- parseArraySimple(subtree, tvb, pOffset, "AvailableSequenceNumbers", "UInt32", hf_opcua_AvailableSequenceNumbers, parseUInt32, ett_opcua_array_UInt32);
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "AvailableSequenceNumbers", "UInt32", hf_opcua_AvailableSequenceNumbers, parseUInt32, ett_opcua_array_UInt32);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseScalarTestType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseScalarTestType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_ScalarTestType, &ti, "%s: ScalarTestType", szFieldName);
- parseBoolean(subtree, tvb, pOffset, hf_opcua_Boolean);
- parseSByte(subtree, tvb, pOffset, hf_opcua_SByte);
- parseByte(subtree, tvb, pOffset, hf_opcua_Byte);
- parseInt16(subtree, tvb, pOffset, hf_opcua_Int16);
- parseUInt16(subtree, tvb, pOffset, hf_opcua_UInt16);
- parseInt32(subtree, tvb, pOffset, hf_opcua_Int32);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_UInt32);
- parseInt64(subtree, tvb, pOffset, hf_opcua_Int64);
- parseUInt64(subtree, tvb, pOffset, hf_opcua_UInt64);
- parseFloat(subtree, tvb, pOffset, hf_opcua_Float);
- parseDouble(subtree, tvb, pOffset, hf_opcua_Double);
- parseString(subtree, tvb, pOffset, hf_opcua_String);
- parseDateTime(subtree, tvb, pOffset, hf_opcua_DateTime);
- parseGuid(subtree, tvb, pOffset, hf_opcua_Guid);
- parseByteString(subtree, tvb, pOffset, hf_opcua_ByteString);
- parseXmlElement(subtree, tvb, pOffset, hf_opcua_XmlElement);
- parseNodeId(subtree, tvb, pOffset, "NodeId");
- parseExpandedNodeId(subtree, tvb, pOffset, "ExpandedNodeId");
- parseStatusCode(subtree, tvb, pOffset, hf_opcua_StatusCode);
- parseDiagnosticInfo(subtree, tvb, pOffset, "DiagnosticInfo");
- parseQualifiedName(subtree, tvb, pOffset, "QualifiedName");
- parseLocalizedText(subtree, tvb, pOffset, "LocalizedText");
- parseExtensionObject(subtree, tvb, pOffset, "ExtensionObject");
- parseDataValue(subtree, tvb, pOffset, "DataValue");
- parseEnumeratedTestType(subtree, tvb, pOffset);
- proto_item_set_end(ti, tvb, *pOffset);
-}
-void parseArrayTestType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+ parseBoolean(subtree, tvb, pinfo, pOffset, hf_opcua_Boolean);
+ parseSByte(subtree, tvb, pinfo, pOffset, hf_opcua_SByte);
+ parseByte(subtree, tvb, pinfo, pOffset, hf_opcua_Byte);
+ parseInt16(subtree, tvb, pinfo, pOffset, hf_opcua_Int16);
+ parseUInt16(subtree, tvb, pinfo, pOffset, hf_opcua_UInt16);
+ parseInt32(subtree, tvb, pinfo, pOffset, hf_opcua_Int32);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_UInt32);
+ parseInt64(subtree, tvb, pinfo, pOffset, hf_opcua_Int64);
+ parseUInt64(subtree, tvb, pinfo, pOffset, hf_opcua_UInt64);
+ parseFloat(subtree, tvb, pinfo, pOffset, hf_opcua_Float);
+ parseDouble(subtree, tvb, pinfo, pOffset, hf_opcua_Double);
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_String);
+ parseDateTime(subtree, tvb, pinfo, pOffset, hf_opcua_DateTime);
+ parseGuid(subtree, tvb, pinfo, pOffset, hf_opcua_Guid);
+ parseByteString(subtree, tvb, pinfo, pOffset, hf_opcua_ByteString);
+ parseXmlElement(subtree, tvb, pinfo, pOffset, hf_opcua_XmlElement);
+ parseNodeId(subtree, tvb, pinfo, pOffset, "NodeId");
+ parseExpandedNodeId(subtree, tvb, pinfo, pOffset, "ExpandedNodeId");
+ parseStatusCode(subtree, tvb, pinfo, pOffset, hf_opcua_StatusCode);
+ parseDiagnosticInfo(subtree, tvb, pinfo, pOffset, "DiagnosticInfo");
+ parseQualifiedName(subtree, tvb, pinfo, pOffset, "QualifiedName");
+ parseLocalizedText(subtree, tvb, pinfo, pOffset, "LocalizedText");
+ parseExtensionObject(subtree, tvb, pinfo, pOffset, "ExtensionObject");
+ parseDataValue(subtree, tvb, pinfo, pOffset, "DataValue");
+ parseEnumeratedTestType(subtree, tvb, pinfo, pOffset);
+ proto_item_set_end(ti, tvb, *pOffset);
+}
+void parseArrayTestType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_ArrayTestType, &ti, "%s: ArrayTestType", szFieldName);
/* Array length field ignored: NoOfBooleans */
- parseArraySimple(subtree, tvb, pOffset, "Booleans", "Boolean", hf_opcua_Booleans, parseBoolean, ett_opcua_array_Boolean);
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "Booleans", "Boolean", hf_opcua_Booleans, parseBoolean, ett_opcua_array_Boolean);
/* Array length field ignored: NoOfSBytes */
- parseArraySimple(subtree, tvb, pOffset, "SBytes", "SByte", hf_opcua_SBytes, parseSByte, ett_opcua_array_SByte);
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "SBytes", "SByte", hf_opcua_SBytes, parseSByte, ett_opcua_array_SByte);
/* Array length field ignored: NoOfInt16s */
- parseArraySimple(subtree, tvb, pOffset, "Int16s", "Int16", hf_opcua_Int16s, parseInt16, ett_opcua_array_Int16);
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "Int16s", "Int16", hf_opcua_Int16s, parseInt16, ett_opcua_array_Int16);
/* Array length field ignored: NoOfUInt16s */
- parseArraySimple(subtree, tvb, pOffset, "UInt16s", "UInt16", hf_opcua_UInt16s, parseUInt16, ett_opcua_array_UInt16);
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "UInt16s", "UInt16", hf_opcua_UInt16s, parseUInt16, ett_opcua_array_UInt16);
/* Array length field ignored: NoOfInt32s */
- parseArraySimple(subtree, tvb, pOffset, "Int32s", "Int32", hf_opcua_Int32s, parseInt32, ett_opcua_array_Int32);
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "Int32s", "Int32", hf_opcua_Int32s, parseInt32, ett_opcua_array_Int32);
/* Array length field ignored: NoOfUInt32s */
- parseArraySimple(subtree, tvb, pOffset, "UInt32s", "UInt32", hf_opcua_UInt32s, parseUInt32, ett_opcua_array_UInt32);
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "UInt32s", "UInt32", hf_opcua_UInt32s, parseUInt32, ett_opcua_array_UInt32);
/* Array length field ignored: NoOfInt64s */
- parseArraySimple(subtree, tvb, pOffset, "Int64s", "Int64", hf_opcua_Int64s, parseInt64, ett_opcua_array_Int64);
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "Int64s", "Int64", hf_opcua_Int64s, parseInt64, ett_opcua_array_Int64);
/* Array length field ignored: NoOfUInt64s */
- parseArraySimple(subtree, tvb, pOffset, "UInt64s", "UInt64", hf_opcua_UInt64s, parseUInt64, ett_opcua_array_UInt64);
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "UInt64s", "UInt64", hf_opcua_UInt64s, parseUInt64, ett_opcua_array_UInt64);
/* Array length field ignored: NoOfFloats */
- parseArraySimple(subtree, tvb, pOffset, "Floats", "Float", hf_opcua_Floats, parseFloat, ett_opcua_array_Float);
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "Floats", "Float", hf_opcua_Floats, parseFloat, ett_opcua_array_Float);
/* Array length field ignored: NoOfDoubles */
- parseArraySimple(subtree, tvb, pOffset, "Doubles", "Double", hf_opcua_Doubles, parseDouble, ett_opcua_array_Double);
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "Doubles", "Double", hf_opcua_Doubles, parseDouble, ett_opcua_array_Double);
/* Array length field ignored: NoOfStrings */
- parseArraySimple(subtree, tvb, pOffset, "Strings", "String", hf_opcua_Strings, parseString, ett_opcua_array_String);
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "Strings", "String", hf_opcua_Strings, parseString, ett_opcua_array_String);
/* Array length field ignored: NoOfDateTimes */
- parseArraySimple(subtree, tvb, pOffset, "DateTimes", "DateTime", hf_opcua_DateTimes, parseDateTime, ett_opcua_array_DateTime);
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "DateTimes", "DateTime", hf_opcua_DateTimes, parseDateTime, ett_opcua_array_DateTime);
/* Array length field ignored: NoOfGuids */
- parseArraySimple(subtree, tvb, pOffset, "Guids", "Guid", hf_opcua_Guids, parseGuid, ett_opcua_array_Guid);
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "Guids", "Guid", hf_opcua_Guids, parseGuid, ett_opcua_array_Guid);
/* Array length field ignored: NoOfByteStrings */
- parseArraySimple(subtree, tvb, pOffset, "ByteStrings", "ByteString", hf_opcua_ByteStrings, parseByteString, ett_opcua_array_ByteString);
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "ByteStrings", "ByteString", hf_opcua_ByteStrings, parseByteString, ett_opcua_array_ByteString);
/* Array length field ignored: NoOfXmlElements */
- parseArraySimple(subtree, tvb, pOffset, "XmlElements", "XmlElement", hf_opcua_XmlElements, parseXmlElement, ett_opcua_array_XmlElement);
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "XmlElements", "XmlElement", hf_opcua_XmlElements, parseXmlElement, ett_opcua_array_XmlElement);
/* Array length field ignored: NoOfNodeIds */
- parseArrayComplex(subtree, tvb, pOffset, "NodeIds", "NodeId", parseNodeId, ett_opcua_array_NodeId);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "NodeIds", "NodeId", parseNodeId, ett_opcua_array_NodeId);
/* Array length field ignored: NoOfExpandedNodeIds */
- parseArrayComplex(subtree, tvb, pOffset, "ExpandedNodeIds", "ExpandedNodeId", parseExpandedNodeId, ett_opcua_array_ExpandedNodeId);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "ExpandedNodeIds", "ExpandedNodeId", parseExpandedNodeId, ett_opcua_array_ExpandedNodeId);
/* Array length field ignored: NoOfStatusCodes */
- parseArraySimple(subtree, tvb, pOffset, "StatusCodes", "StatusCode", hf_opcua_StatusCodes, parseStatusCode, ett_opcua_array_StatusCode);
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "StatusCodes", "StatusCode", hf_opcua_StatusCodes, parseStatusCode, ett_opcua_array_StatusCode);
/* Array length field ignored: NoOfDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
/* Array length field ignored: NoOfQualifiedNames */
- parseArrayComplex(subtree, tvb, pOffset, "QualifiedNames", "QualifiedName", parseQualifiedName, ett_opcua_array_QualifiedName);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "QualifiedNames", "QualifiedName", parseQualifiedName, ett_opcua_array_QualifiedName);
/* Array length field ignored: NoOfLocalizedTexts */
- parseArrayComplex(subtree, tvb, pOffset, "LocalizedTexts", "LocalizedText", parseLocalizedText, ett_opcua_array_LocalizedText);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "LocalizedTexts", "LocalizedText", parseLocalizedText, ett_opcua_array_LocalizedText);
/* Array length field ignored: NoOfExtensionObjects */
- parseArrayComplex(subtree, tvb, pOffset, "ExtensionObjects", "ExtensionObject", parseExtensionObject, ett_opcua_array_ExtensionObject);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "ExtensionObjects", "ExtensionObject", parseExtensionObject, ett_opcua_array_ExtensionObject);
/* Array length field ignored: NoOfDataValues */
- parseArrayComplex(subtree, tvb, pOffset, "DataValues", "DataValue", parseDataValue, ett_opcua_array_DataValue);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "DataValues", "DataValue", parseDataValue, ett_opcua_array_DataValue);
/* Array length field ignored: NoOfVariants */
- parseArrayComplex(subtree, tvb, pOffset, "Variants", "Variant", parseVariant, ett_opcua_array_Variant);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "Variants", "Variant", parseVariant, ett_opcua_array_Variant);
/* Array length field ignored: NoOfEnumeratedValues */
- parseArrayEnum(subtree, tvb, pOffset, "EnumeratedValues", "EnumeratedTestType", parseEnumeratedTestType, ett_opcua_array_EnumeratedTestType);
+ parseArrayEnum(subtree, tvb, pinfo, pOffset, "EnumeratedValues", "EnumeratedTestType", parseEnumeratedTestType, ett_opcua_array_EnumeratedTestType);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseCompositeTestType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseCompositeTestType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_CompositeTestType, &ti, "%s: CompositeTestType", szFieldName);
- parseScalarTestType(subtree, tvb, pOffset, "Field1");
- parseArrayTestType(subtree, tvb, pOffset, "Field2");
+ parseScalarTestType(subtree, tvb, pinfo, pOffset, "Field1");
+ parseArrayTestType(subtree, tvb, pinfo, pOffset, "Field2");
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseBuildInfo(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseBuildInfo(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_BuildInfo, &ti, "%s: BuildInfo", szFieldName);
- parseString(subtree, tvb, pOffset, hf_opcua_ProductUri);
- parseString(subtree, tvb, pOffset, hf_opcua_ManufacturerName);
- parseString(subtree, tvb, pOffset, hf_opcua_ProductName);
- parseString(subtree, tvb, pOffset, hf_opcua_SoftwareVersion);
- parseString(subtree, tvb, pOffset, hf_opcua_BuildNumber);
- parseDateTime(subtree, tvb, pOffset, hf_opcua_BuildDate);
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_ProductUri);
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_ManufacturerName);
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_ProductName);
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_SoftwareVersion);
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_BuildNumber);
+ parseDateTime(subtree, tvb, pinfo, pOffset, hf_opcua_BuildDate);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseRedundantServerDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseRedundantServerDataType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_RedundantServerDataType, &ti, "%s: RedundantServerDataType", szFieldName);
- parseString(subtree, tvb, pOffset, hf_opcua_ServerId);
- parseByte(subtree, tvb, pOffset, hf_opcua_ServiceLevel);
- parseServerState(subtree, tvb, pOffset);
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_ServerId);
+ parseByte(subtree, tvb, pinfo, pOffset, hf_opcua_ServiceLevel);
+ parseServerState(subtree, tvb, pinfo, pOffset);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseEndpointUrlListDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseEndpointUrlListDataType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_EndpointUrlListDataType, &ti, "%s: EndpointUrlListDataType", szFieldName);
/* Array length field ignored: NoOfEndpointUrlList */
- parseArraySimple(subtree, tvb, pOffset, "EndpointUrlList", "String", hf_opcua_EndpointUrlList, parseString, ett_opcua_array_String);
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "EndpointUrlList", "String", hf_opcua_EndpointUrlList, parseString, ett_opcua_array_String);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseNetworkGroupDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseNetworkGroupDataType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_NetworkGroupDataType, &ti, "%s: NetworkGroupDataType", szFieldName);
- parseString(subtree, tvb, pOffset, hf_opcua_ServerUri);
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_ServerUri);
/* Array length field ignored: NoOfNetworkPaths */
- parseArrayComplex(subtree, tvb, pOffset, "NetworkPaths", "EndpointUrlListDataType", parseEndpointUrlListDataType, ett_opcua_array_EndpointUrlListDataType);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "NetworkPaths", "EndpointUrlListDataType", parseEndpointUrlListDataType, ett_opcua_array_EndpointUrlListDataType);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseSamplingIntervalDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseSamplingIntervalDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_SamplingIntervalDiagnosticsDataType, &ti, "%s: SamplingIntervalDiagnosticsDataType", szFieldName);
- parseDouble(subtree, tvb, pOffset, hf_opcua_SamplingInterval);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_MonitoredItemCount);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_MaxMonitoredItemCount);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_DisabledMonitoredItemCount);
+ parseDouble(subtree, tvb, pinfo, pOffset, hf_opcua_SamplingInterval);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_MonitoredItemCount);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_MaxMonitoredItemCount);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_DisabledMonitoredItemCount);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseServerDiagnosticsSummaryDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseServerDiagnosticsSummaryDataType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_ServerDiagnosticsSummaryDataType, &ti, "%s: ServerDiagnosticsSummaryDataType", szFieldName);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_ServerViewCount);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_CurrentSessionCount);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_CumulatedSessionCount);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_SecurityRejectedSessionCount);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_RejectedSessionCount);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_SessionTimeoutCount);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_SessionAbortCount);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_CurrentSubscriptionCount);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_CumulatedSubscriptionCount);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_PublishingIntervalCount);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_SecurityRejectedRequestsCount);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_RejectedRequestsCount);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_ServerViewCount);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_CurrentSessionCount);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_CumulatedSessionCount);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_SecurityRejectedSessionCount);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_RejectedSessionCount);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_SessionTimeoutCount);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_SessionAbortCount);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_CurrentSubscriptionCount);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_CumulatedSubscriptionCount);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_PublishingIntervalCount);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_SecurityRejectedRequestsCount);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_RejectedRequestsCount);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseServerStatusDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseServerStatusDataType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_ServerStatusDataType, &ti, "%s: ServerStatusDataType", szFieldName);
- parseDateTime(subtree, tvb, pOffset, hf_opcua_StartTime);
- parseDateTime(subtree, tvb, pOffset, hf_opcua_CurrentTime);
- parseServerState(subtree, tvb, pOffset);
- parseBuildInfo(subtree, tvb, pOffset, "BuildInfo");
- parseUInt32(subtree, tvb, pOffset, hf_opcua_SecondsTillShutdown);
- parseLocalizedText(subtree, tvb, pOffset, "ShutdownReason");
+ parseDateTime(subtree, tvb, pinfo, pOffset, hf_opcua_StartTime);
+ parseDateTime(subtree, tvb, pinfo, pOffset, hf_opcua_CurrentTime);
+ parseServerState(subtree, tvb, pinfo, pOffset);
+ parseBuildInfo(subtree, tvb, pinfo, pOffset, "BuildInfo");
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_SecondsTillShutdown);
+ parseLocalizedText(subtree, tvb, pinfo, pOffset, "ShutdownReason");
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseSessionDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseSessionDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_SessionDiagnosticsDataType, &ti, "%s: SessionDiagnosticsDataType", szFieldName);
- parseNodeId(subtree, tvb, pOffset, "SessionId");
- parseString(subtree, tvb, pOffset, hf_opcua_SessionName);
- parseApplicationDescription(subtree, tvb, pOffset, "ClientDescription");
- parseString(subtree, tvb, pOffset, hf_opcua_ServerUri);
- parseString(subtree, tvb, pOffset, hf_opcua_EndpointUrl);
+ parseNodeId(subtree, tvb, pinfo, pOffset, "SessionId");
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_SessionName);
+ parseApplicationDescription(subtree, tvb, pinfo, pOffset, "ClientDescription");
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_ServerUri);
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_EndpointUrl);
/* Array length field ignored: NoOfLocaleIds */
- parseArraySimple(subtree, tvb, pOffset, "LocaleIds", "String", hf_opcua_LocaleIds, parseString, ett_opcua_array_String);
- parseDouble(subtree, tvb, pOffset, hf_opcua_ActualSessionTimeout);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_MaxResponseMessageSize);
- parseDateTime(subtree, tvb, pOffset, hf_opcua_ClientConnectionTime);
- parseDateTime(subtree, tvb, pOffset, hf_opcua_ClientLastContactTime);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_CurrentSubscriptionsCount);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_CurrentMonitoredItemsCount);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_CurrentPublishRequestsInQueue);
- parseServiceCounterDataType(subtree, tvb, pOffset, "TotalRequestCount");
- parseUInt32(subtree, tvb, pOffset, hf_opcua_UnauthorizedRequestCount);
- parseServiceCounterDataType(subtree, tvb, pOffset, "ReadCount");
- parseServiceCounterDataType(subtree, tvb, pOffset, "HistoryReadCount");
- parseServiceCounterDataType(subtree, tvb, pOffset, "WriteCount");
- parseServiceCounterDataType(subtree, tvb, pOffset, "HistoryUpdateCount");
- parseServiceCounterDataType(subtree, tvb, pOffset, "CallCount");
- parseServiceCounterDataType(subtree, tvb, pOffset, "CreateMonitoredItemsCount");
- parseServiceCounterDataType(subtree, tvb, pOffset, "ModifyMonitoredItemsCount");
- parseServiceCounterDataType(subtree, tvb, pOffset, "SetMonitoringModeCount");
- parseServiceCounterDataType(subtree, tvb, pOffset, "SetTriggeringCount");
- parseServiceCounterDataType(subtree, tvb, pOffset, "DeleteMonitoredItemsCount");
- parseServiceCounterDataType(subtree, tvb, pOffset, "CreateSubscriptionCount");
- parseServiceCounterDataType(subtree, tvb, pOffset, "ModifySubscriptionCount");
- parseServiceCounterDataType(subtree, tvb, pOffset, "SetPublishingModeCount");
- parseServiceCounterDataType(subtree, tvb, pOffset, "PublishCount");
- parseServiceCounterDataType(subtree, tvb, pOffset, "RepublishCount");
- parseServiceCounterDataType(subtree, tvb, pOffset, "TransferSubscriptionsCount");
- parseServiceCounterDataType(subtree, tvb, pOffset, "DeleteSubscriptionsCount");
- parseServiceCounterDataType(subtree, tvb, pOffset, "AddNodesCount");
- parseServiceCounterDataType(subtree, tvb, pOffset, "AddReferencesCount");
- parseServiceCounterDataType(subtree, tvb, pOffset, "DeleteNodesCount");
- parseServiceCounterDataType(subtree, tvb, pOffset, "DeleteReferencesCount");
- parseServiceCounterDataType(subtree, tvb, pOffset, "BrowseCount");
- parseServiceCounterDataType(subtree, tvb, pOffset, "BrowseNextCount");
- parseServiceCounterDataType(subtree, tvb, pOffset, "TranslateBrowsePathsToNodeIdsCount");
- parseServiceCounterDataType(subtree, tvb, pOffset, "QueryFirstCount");
- parseServiceCounterDataType(subtree, tvb, pOffset, "QueryNextCount");
- parseServiceCounterDataType(subtree, tvb, pOffset, "RegisterNodesCount");
- parseServiceCounterDataType(subtree, tvb, pOffset, "UnregisterNodesCount");
- proto_item_set_end(ti, tvb, *pOffset);
-}
-void parseSessionSecurityDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "LocaleIds", "String", hf_opcua_LocaleIds, parseString, ett_opcua_array_String);
+ parseDouble(subtree, tvb, pinfo, pOffset, hf_opcua_ActualSessionTimeout);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_MaxResponseMessageSize);
+ parseDateTime(subtree, tvb, pinfo, pOffset, hf_opcua_ClientConnectionTime);
+ parseDateTime(subtree, tvb, pinfo, pOffset, hf_opcua_ClientLastContactTime);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_CurrentSubscriptionsCount);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_CurrentMonitoredItemsCount);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_CurrentPublishRequestsInQueue);
+ parseServiceCounterDataType(subtree, tvb, pinfo, pOffset, "TotalRequestCount");
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_UnauthorizedRequestCount);
+ parseServiceCounterDataType(subtree, tvb, pinfo, pOffset, "ReadCount");
+ parseServiceCounterDataType(subtree, tvb, pinfo, pOffset, "HistoryReadCount");
+ parseServiceCounterDataType(subtree, tvb, pinfo, pOffset, "WriteCount");
+ parseServiceCounterDataType(subtree, tvb, pinfo, pOffset, "HistoryUpdateCount");
+ parseServiceCounterDataType(subtree, tvb, pinfo, pOffset, "CallCount");
+ parseServiceCounterDataType(subtree, tvb, pinfo, pOffset, "CreateMonitoredItemsCount");
+ parseServiceCounterDataType(subtree, tvb, pinfo, pOffset, "ModifyMonitoredItemsCount");
+ parseServiceCounterDataType(subtree, tvb, pinfo, pOffset, "SetMonitoringModeCount");
+ parseServiceCounterDataType(subtree, tvb, pinfo, pOffset, "SetTriggeringCount");
+ parseServiceCounterDataType(subtree, tvb, pinfo, pOffset, "DeleteMonitoredItemsCount");
+ parseServiceCounterDataType(subtree, tvb, pinfo, pOffset, "CreateSubscriptionCount");
+ parseServiceCounterDataType(subtree, tvb, pinfo, pOffset, "ModifySubscriptionCount");
+ parseServiceCounterDataType(subtree, tvb, pinfo, pOffset, "SetPublishingModeCount");
+ parseServiceCounterDataType(subtree, tvb, pinfo, pOffset, "PublishCount");
+ parseServiceCounterDataType(subtree, tvb, pinfo, pOffset, "RepublishCount");
+ parseServiceCounterDataType(subtree, tvb, pinfo, pOffset, "TransferSubscriptionsCount");
+ parseServiceCounterDataType(subtree, tvb, pinfo, pOffset, "DeleteSubscriptionsCount");
+ parseServiceCounterDataType(subtree, tvb, pinfo, pOffset, "AddNodesCount");
+ parseServiceCounterDataType(subtree, tvb, pinfo, pOffset, "AddReferencesCount");
+ parseServiceCounterDataType(subtree, tvb, pinfo, pOffset, "DeleteNodesCount");
+ parseServiceCounterDataType(subtree, tvb, pinfo, pOffset, "DeleteReferencesCount");
+ parseServiceCounterDataType(subtree, tvb, pinfo, pOffset, "BrowseCount");
+ parseServiceCounterDataType(subtree, tvb, pinfo, pOffset, "BrowseNextCount");
+ parseServiceCounterDataType(subtree, tvb, pinfo, pOffset, "TranslateBrowsePathsToNodeIdsCount");
+ parseServiceCounterDataType(subtree, tvb, pinfo, pOffset, "QueryFirstCount");
+ parseServiceCounterDataType(subtree, tvb, pinfo, pOffset, "QueryNextCount");
+ parseServiceCounterDataType(subtree, tvb, pinfo, pOffset, "RegisterNodesCount");
+ parseServiceCounterDataType(subtree, tvb, pinfo, pOffset, "UnregisterNodesCount");
+ proto_item_set_end(ti, tvb, *pOffset);
+}
+void parseSessionSecurityDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_SessionSecurityDiagnosticsDataType, &ti, "%s: SessionSecurityDiagnosticsDataType", szFieldName);
- parseNodeId(subtree, tvb, pOffset, "SessionId");
- parseString(subtree, tvb, pOffset, hf_opcua_ClientUserIdOfSession);
+ parseNodeId(subtree, tvb, pinfo, pOffset, "SessionId");
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_ClientUserIdOfSession);
/* Array length field ignored: NoOfClientUserIdHistory */
- parseArraySimple(subtree, tvb, pOffset, "ClientUserIdHistory", "String", hf_opcua_ClientUserIdHistory, parseString, ett_opcua_array_String);
- parseString(subtree, tvb, pOffset, hf_opcua_AuthenticationMechanism);
- parseString(subtree, tvb, pOffset, hf_opcua_Encoding);
- parseString(subtree, tvb, pOffset, hf_opcua_TransportProtocol);
- parseMessageSecurityMode(subtree, tvb, pOffset);
- parseString(subtree, tvb, pOffset, hf_opcua_SecurityPolicyUri);
- parseByteString(subtree, tvb, pOffset, hf_opcua_ClientCertificate);
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "ClientUserIdHistory", "String", hf_opcua_ClientUserIdHistory, parseString, ett_opcua_array_String);
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_AuthenticationMechanism);
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_Encoding);
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_TransportProtocol);
+ parseMessageSecurityMode(subtree, tvb, pinfo, pOffset);
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_SecurityPolicyUri);
+ parseByteString(subtree, tvb, pinfo, pOffset, hf_opcua_ClientCertificate);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseServiceCounterDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseServiceCounterDataType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_ServiceCounterDataType, &ti, "%s: ServiceCounterDataType", szFieldName);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_TotalCount);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_ErrorCount);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_TotalCount);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_ErrorCount);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseStatusResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseStatusResult(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_StatusResult, &ti, "%s: StatusResult", szFieldName);
- parseStatusCode(subtree, tvb, pOffset, hf_opcua_StatusCode);
- parseDiagnosticInfo(subtree, tvb, pOffset, "DiagnosticInfo");
+ parseStatusCode(subtree, tvb, pinfo, pOffset, hf_opcua_StatusCode);
+ parseDiagnosticInfo(subtree, tvb, pinfo, pOffset, "DiagnosticInfo");
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseSubscriptionDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseSubscriptionDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_SubscriptionDiagnosticsDataType, &ti, "%s: SubscriptionDiagnosticsDataType", szFieldName);
- parseNodeId(subtree, tvb, pOffset, "SessionId");
- parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId);
- parseByte(subtree, tvb, pOffset, hf_opcua_Priority);
- parseDouble(subtree, tvb, pOffset, hf_opcua_PublishingInterval);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_MaxKeepAliveCount);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_MaxLifetimeCount);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_MaxNotificationsPerPublish);
- parseBoolean(subtree, tvb, pOffset, hf_opcua_PublishingEnabled);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_ModifyCount);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_EnableCount);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_DisableCount);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_RepublishRequestCount);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_RepublishMessageRequestCount);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_RepublishMessageCount);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_TransferRequestCount);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_TransferredToAltClientCount);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_TransferredToSameClientCount);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_PublishRequestCount);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_DataChangeNotificationsCount);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_EventNotificationsCount);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_NotificationsCount);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_LatePublishRequestCount);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_CurrentKeepAliveCount);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_CurrentLifetimeCount);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_UnacknowledgedMessageCount);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_DiscardedMessageCount);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_MonitoredItemCount);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_DisabledMonitoredItemCount);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_MonitoringQueueOverflowCount);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_NextSequenceNumber);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_EventQueueOverFlowCount);
- proto_item_set_end(ti, tvb, *pOffset);
-}
-void parseModelChangeStructureDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+ parseNodeId(subtree, tvb, pinfo, pOffset, "SessionId");
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_SubscriptionId);
+ parseByte(subtree, tvb, pinfo, pOffset, hf_opcua_Priority);
+ parseDouble(subtree, tvb, pinfo, pOffset, hf_opcua_PublishingInterval);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_MaxKeepAliveCount);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_MaxLifetimeCount);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_MaxNotificationsPerPublish);
+ parseBoolean(subtree, tvb, pinfo, pOffset, hf_opcua_PublishingEnabled);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_ModifyCount);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_EnableCount);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_DisableCount);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_RepublishRequestCount);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_RepublishMessageRequestCount);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_RepublishMessageCount);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_TransferRequestCount);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_TransferredToAltClientCount);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_TransferredToSameClientCount);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_PublishRequestCount);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_DataChangeNotificationsCount);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_EventNotificationsCount);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_NotificationsCount);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_LatePublishRequestCount);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_CurrentKeepAliveCount);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_CurrentLifetimeCount);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_UnacknowledgedMessageCount);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_DiscardedMessageCount);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_MonitoredItemCount);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_DisabledMonitoredItemCount);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_MonitoringQueueOverflowCount);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_NextSequenceNumber);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_EventQueueOverFlowCount);
+ proto_item_set_end(ti, tvb, *pOffset);
+}
+void parseModelChangeStructureDataType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_ModelChangeStructureDataType, &ti, "%s: ModelChangeStructureDataType", szFieldName);
- parseNodeId(subtree, tvb, pOffset, "Affected");
- parseNodeId(subtree, tvb, pOffset, "AffectedType");
- parseByte(subtree, tvb, pOffset, hf_opcua_Verb);
+ parseNodeId(subtree, tvb, pinfo, pOffset, "Affected");
+ parseNodeId(subtree, tvb, pinfo, pOffset, "AffectedType");
+ parseByte(subtree, tvb, pinfo, pOffset, hf_opcua_Verb);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseSemanticChangeStructureDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseSemanticChangeStructureDataType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_SemanticChangeStructureDataType, &ti, "%s: SemanticChangeStructureDataType", szFieldName);
- parseNodeId(subtree, tvb, pOffset, "Affected");
- parseNodeId(subtree, tvb, pOffset, "AffectedType");
+ parseNodeId(subtree, tvb, pinfo, pOffset, "Affected");
+ parseNodeId(subtree, tvb, pinfo, pOffset, "AffectedType");
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseRange(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseRange(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_Range, &ti, "%s: Range", szFieldName);
- parseDouble(subtree, tvb, pOffset, hf_opcua_Low);
- parseDouble(subtree, tvb, pOffset, hf_opcua_High);
+ parseDouble(subtree, tvb, pinfo, pOffset, hf_opcua_Low);
+ parseDouble(subtree, tvb, pinfo, pOffset, hf_opcua_High);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseEUInformation(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseEUInformation(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_EUInformation, &ti, "%s: EUInformation", szFieldName);
- parseString(subtree, tvb, pOffset, hf_opcua_NamespaceUri);
- parseInt32(subtree, tvb, pOffset, hf_opcua_UnitId);
- parseLocalizedText(subtree, tvb, pOffset, "DisplayName");
- parseLocalizedText(subtree, tvb, pOffset, "Description");
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_NamespaceUri);
+ parseInt32(subtree, tvb, pinfo, pOffset, hf_opcua_UnitId);
+ parseLocalizedText(subtree, tvb, pinfo, pOffset, "DisplayName");
+ parseLocalizedText(subtree, tvb, pinfo, pOffset, "Description");
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseComplexNumberType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseComplexNumberType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_ComplexNumberType, &ti, "%s: ComplexNumberType", szFieldName);
- parseFloat(subtree, tvb, pOffset, hf_opcua_Real);
- parseFloat(subtree, tvb, pOffset, hf_opcua_Imaginary);
+ parseFloat(subtree, tvb, pinfo, pOffset, hf_opcua_Real);
+ parseFloat(subtree, tvb, pinfo, pOffset, hf_opcua_Imaginary);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseDoubleComplexNumberType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseDoubleComplexNumberType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_DoubleComplexNumberType, &ti, "%s: DoubleComplexNumberType", szFieldName);
- parseDouble(subtree, tvb, pOffset, hf_opcua_Real);
- parseDouble(subtree, tvb, pOffset, hf_opcua_Imaginary);
+ parseDouble(subtree, tvb, pinfo, pOffset, hf_opcua_Real);
+ parseDouble(subtree, tvb, pinfo, pOffset, hf_opcua_Imaginary);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseAxisInformation(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseAxisInformation(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_AxisInformation, &ti, "%s: AxisInformation", szFieldName);
- parseEUInformation(subtree, tvb, pOffset, "EngineeringUnits");
- parseRange(subtree, tvb, pOffset, "EURange");
- parseLocalizedText(subtree, tvb, pOffset, "Title");
- parseAxisScaleEnumeration(subtree, tvb, pOffset);
+ parseEUInformation(subtree, tvb, pinfo, pOffset, "EngineeringUnits");
+ parseRange(subtree, tvb, pinfo, pOffset, "EURange");
+ parseLocalizedText(subtree, tvb, pinfo, pOffset, "Title");
+ parseAxisScaleEnumeration(subtree, tvb, pinfo, pOffset);
/* Array length field ignored: NoOfAxisSteps */
- parseArraySimple(subtree, tvb, pOffset, "AxisSteps", "Double", hf_opcua_AxisSteps, parseDouble, ett_opcua_array_Double);
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "AxisSteps", "Double", hf_opcua_AxisSteps, parseDouble, ett_opcua_array_Double);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseXVType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseXVType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_XVType, &ti, "%s: XVType", szFieldName);
- parseDouble(subtree, tvb, pOffset, hf_opcua_X);
- parseFloat(subtree, tvb, pOffset, hf_opcua_Value);
+ parseDouble(subtree, tvb, pinfo, pOffset, hf_opcua_X);
+ parseFloat(subtree, tvb, pinfo, pOffset, hf_opcua_Value);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseProgramDiagnosticDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseProgramDiagnosticDataType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_ProgramDiagnosticDataType, &ti, "%s: ProgramDiagnosticDataType", szFieldName);
- parseNodeId(subtree, tvb, pOffset, "CreateSessionId");
- parseString(subtree, tvb, pOffset, hf_opcua_CreateClientName);
- parseDateTime(subtree, tvb, pOffset, hf_opcua_InvocationCreationTime);
- parseDateTime(subtree, tvb, pOffset, hf_opcua_LastTransitionTime);
- parseString(subtree, tvb, pOffset, hf_opcua_LastMethodCall);
- parseNodeId(subtree, tvb, pOffset, "LastMethodSessionId");
+ parseNodeId(subtree, tvb, pinfo, pOffset, "CreateSessionId");
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_CreateClientName);
+ parseDateTime(subtree, tvb, pinfo, pOffset, hf_opcua_InvocationCreationTime);
+ parseDateTime(subtree, tvb, pinfo, pOffset, hf_opcua_LastTransitionTime);
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_LastMethodCall);
+ parseNodeId(subtree, tvb, pinfo, pOffset, "LastMethodSessionId");
/* Array length field ignored: NoOfLastMethodInputArguments */
- parseArrayComplex(subtree, tvb, pOffset, "LastMethodInputArguments", "Argument", parseArgument, ett_opcua_array_Argument);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "LastMethodInputArguments", "Argument", parseArgument, ett_opcua_array_Argument);
/* Array length field ignored: NoOfLastMethodOutputArguments */
- parseArrayComplex(subtree, tvb, pOffset, "LastMethodOutputArguments", "Argument", parseArgument, ett_opcua_array_Argument);
- parseDateTime(subtree, tvb, pOffset, hf_opcua_LastMethodCallTime);
- parseStatusResult(subtree, tvb, pOffset, "LastMethodReturnStatus");
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "LastMethodOutputArguments", "Argument", parseArgument, ett_opcua_array_Argument);
+ parseDateTime(subtree, tvb, pinfo, pOffset, hf_opcua_LastMethodCallTime);
+ parseStatusResult(subtree, tvb, pinfo, pOffset, "LastMethodReturnStatus");
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseAnnotation(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseAnnotation(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_Annotation, &ti, "%s: Annotation", szFieldName);
- parseString(subtree, tvb, pOffset, hf_opcua_Message);
- parseString(subtree, tvb, pOffset, hf_opcua_UserName);
- parseDateTime(subtree, tvb, pOffset, hf_opcua_AnnotationTime);
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_Message);
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_UserName);
+ parseDateTime(subtree, tvb, pinfo, pOffset, hf_opcua_AnnotationTime);
proto_item_set_end(ti, tvb, *pOffset);
}
diff --git a/plugins/opcua/opcua_complextypeparser.h b/plugins/opcua/opcua_complextypeparser.h
index ca176c2a93..7eb63afa27 100644
--- a/plugins/opcua/opcua_complextypeparser.h
+++ b/plugins/opcua/opcua_complextypeparser.h
@@ -14,7 +14,7 @@
**
** Description: OpcUa Complex Type Parser
**
-** This file was autogenerated on 17.06.2014.
+** This file was autogenerated on 16.10.2014.
** DON'T MODIFY THIS FILE!
** XXX - well, except that you may have to. See the README.
**
@@ -294,140 +294,140 @@ extern gint ett_opcua_array_ProgramDiagnosticDataType;
extern gint ett_opcua_Annotation;
extern gint ett_opcua_array_Annotation;
-void parseNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseInstanceNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseTypeNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseObjectNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseObjectTypeNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseVariableNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseVariableTypeNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseReferenceTypeNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseMethodNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseViewNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseDataTypeNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseReferenceNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseArgument(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseEnumValueType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseTimeZoneDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseApplicationDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseRequestHeader(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseResponseHeader(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseUserTokenPolicy(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseEndpointDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseRegisteredServer(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseChannelSecurityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseSignedSoftwareCertificate(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseSignatureData(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseUserIdentityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseAnonymousIdentityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseUserNameIdentityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseX509IdentityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseIssuedIdentityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseNodeAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseObjectAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseVariableAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseMethodAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseObjectTypeAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseVariableTypeAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseReferenceTypeAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseDataTypeAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseViewAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseAddNodesItem(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseAddNodesResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseAddReferencesItem(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseDeleteNodesItem(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseDeleteReferencesItem(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseViewDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseBrowseDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseReferenceDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseBrowseResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseRelativePathElement(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseRelativePath(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseBrowsePath(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseBrowsePathTarget(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseBrowsePathResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseEndpointConfiguration(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseSupportedProfile(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseSoftwareCertificate(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseQueryDataDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseNodeTypeDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseQueryDataSet(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseNodeReference(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseContentFilterElement(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseContentFilter(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseElementOperand(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseLiteralOperand(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseAttributeOperand(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseSimpleAttributeOperand(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseContentFilterElementResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseContentFilterResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseParsingResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseReadValueId(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseHistoryReadValueId(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseHistoryReadResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseReadEventDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseReadRawModifiedDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseReadProcessedDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseReadAtTimeDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseHistoryData(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseModificationInfo(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseHistoryModifiedData(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseHistoryEvent(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseWriteValue(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseHistoryUpdateDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseUpdateDataDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseUpdateStructureDataDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseUpdateEventDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseDeleteRawModifiedDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseDeleteAtTimeDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseDeleteEventDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseHistoryUpdateResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseCallMethodRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseCallMethodResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseDataChangeFilter(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseEventFilter(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseAggregateConfiguration(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseAggregateFilter(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseEventFilterResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseAggregateFilterResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseMonitoringParameters(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseMonitoredItemCreateRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseMonitoredItemCreateResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseMonitoredItemModifyRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseMonitoredItemModifyResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseNotificationMessage(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseDataChangeNotification(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseMonitoredItemNotification(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseEventNotificationList(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseEventFieldList(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseHistoryEventFieldList(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseStatusChangeNotification(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseSubscriptionAcknowledgement(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseTransferResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseScalarTestType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseArrayTestType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseCompositeTestType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseBuildInfo(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseRedundantServerDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseEndpointUrlListDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseNetworkGroupDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseSamplingIntervalDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseServerDiagnosticsSummaryDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseServerStatusDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseSessionDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseSessionSecurityDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseServiceCounterDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseStatusResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseSubscriptionDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseModelChangeStructureDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseSemanticChangeStructureDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseRange(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseEUInformation(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseComplexNumberType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseDoubleComplexNumberType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseAxisInformation(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseXVType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseProgramDiagnosticDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseAnnotation(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
+void parseNode(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseInstanceNode(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseTypeNode(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseObjectNode(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseObjectTypeNode(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseVariableNode(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseVariableTypeNode(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseReferenceTypeNode(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseMethodNode(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseViewNode(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseDataTypeNode(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseReferenceNode(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseArgument(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseEnumValueType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseTimeZoneDataType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseApplicationDescription(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseRequestHeader(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseResponseHeader(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseUserTokenPolicy(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseEndpointDescription(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseRegisteredServer(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseChannelSecurityToken(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseSignedSoftwareCertificate(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseSignatureData(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseUserIdentityToken(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseAnonymousIdentityToken(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseUserNameIdentityToken(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseX509IdentityToken(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseIssuedIdentityToken(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseNodeAttributes(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseObjectAttributes(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseVariableAttributes(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseMethodAttributes(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseObjectTypeAttributes(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseVariableTypeAttributes(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseReferenceTypeAttributes(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseDataTypeAttributes(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseViewAttributes(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseAddNodesItem(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseAddNodesResult(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseAddReferencesItem(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseDeleteNodesItem(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseDeleteReferencesItem(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseViewDescription(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseBrowseDescription(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseReferenceDescription(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseBrowseResult(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseRelativePathElement(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseRelativePath(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseBrowsePath(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseBrowsePathTarget(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseBrowsePathResult(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseEndpointConfiguration(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseSupportedProfile(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseSoftwareCertificate(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseQueryDataDescription(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseNodeTypeDescription(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseQueryDataSet(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseNodeReference(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseContentFilterElement(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseContentFilter(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseElementOperand(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseLiteralOperand(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseAttributeOperand(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseSimpleAttributeOperand(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseContentFilterElementResult(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseContentFilterResult(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseParsingResult(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseReadValueId(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseHistoryReadValueId(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseHistoryReadResult(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseReadEventDetails(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseReadRawModifiedDetails(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseReadProcessedDetails(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseReadAtTimeDetails(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseHistoryData(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseModificationInfo(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseHistoryModifiedData(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseHistoryEvent(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseWriteValue(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseHistoryUpdateDetails(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseUpdateDataDetails(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseUpdateStructureDataDetails(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseUpdateEventDetails(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseDeleteRawModifiedDetails(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseDeleteAtTimeDetails(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseDeleteEventDetails(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseHistoryUpdateResult(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseCallMethodRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseCallMethodResult(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseDataChangeFilter(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseEventFilter(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseAggregateConfiguration(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseAggregateFilter(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseEventFilterResult(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseAggregateFilterResult(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseMonitoringParameters(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseMonitoredItemCreateRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseMonitoredItemCreateResult(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseMonitoredItemModifyRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseMonitoredItemModifyResult(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseNotificationMessage(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseDataChangeNotification(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseMonitoredItemNotification(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseEventNotificationList(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseEventFieldList(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseHistoryEventFieldList(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseStatusChangeNotification(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseSubscriptionAcknowledgement(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseTransferResult(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseScalarTestType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseArrayTestType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseCompositeTestType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseBuildInfo(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseRedundantServerDataType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseEndpointUrlListDataType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseNetworkGroupDataType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseSamplingIntervalDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseServerDiagnosticsSummaryDataType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseServerStatusDataType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseSessionDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseSessionSecurityDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseServiceCounterDataType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseStatusResult(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseSubscriptionDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseModelChangeStructureDataType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseSemanticChangeStructureDataType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseRange(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseEUInformation(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseComplexNumberType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseDoubleComplexNumberType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseAxisInformation(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseXVType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseProgramDiagnosticDataType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseAnnotation(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
void registerComplexTypes(void);
diff --git a/plugins/opcua/opcua_enumparser.c b/plugins/opcua/opcua_enumparser.c
index 36b26bb944..54113a2ddd 100644
--- a/plugins/opcua/opcua_enumparser.c
+++ b/plugins/opcua/opcua_enumparser.c
@@ -14,7 +14,7 @@
**
** Description: OpcUa Enum Type Parser
**
-** This file was autogenerated on 17.06.2014.
+** This file was autogenerated on 16.10.2014.
** DON'T MODIFY THIS FILE!
**
******************************************************************************/
@@ -65,7 +65,7 @@ static const value_string g_NodeIdTypeTable[] = {
};
static int hf_opcua_NodeIdType = -1;
-void parseNodeIdType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseNodeIdType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset)
{
proto_tree_add_item(tree, hf_opcua_NodeIdType, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
}
@@ -79,7 +79,7 @@ static const value_string g_OpenFileModeTable[] = {
};
static int hf_opcua_OpenFileMode = -1;
-void parseOpenFileMode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseOpenFileMode(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset)
{
proto_tree_add_item(tree, hf_opcua_OpenFileMode, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
}
@@ -93,7 +93,7 @@ static const value_string g_IdTypeTable[] = {
};
static int hf_opcua_IdType = -1;
-void parseIdType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseIdType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset)
{
proto_tree_add_item(tree, hf_opcua_IdType, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
}
@@ -112,7 +112,7 @@ static const value_string g_NodeClassTable[] = {
};
static int hf_opcua_NodeClass = -1;
-void parseNodeClass(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseNodeClass(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset)
{
proto_tree_add_item(tree, hf_opcua_NodeClass, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
}
@@ -126,7 +126,7 @@ static const value_string g_ApplicationTypeTable[] = {
};
static int hf_opcua_ApplicationType = -1;
-void parseApplicationType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseApplicationType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset)
{
proto_tree_add_item(tree, hf_opcua_ApplicationType, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
}
@@ -140,7 +140,7 @@ static const value_string g_MessageSecurityModeTable[] = {
};
static int hf_opcua_MessageSecurityMode = -1;
-void parseMessageSecurityMode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseMessageSecurityMode(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset)
{
proto_tree_add_item(tree, hf_opcua_MessageSecurityMode, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
}
@@ -154,7 +154,7 @@ static const value_string g_UserTokenTypeTable[] = {
};
static int hf_opcua_UserTokenType = -1;
-void parseUserTokenType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseUserTokenType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset)
{
proto_tree_add_item(tree, hf_opcua_UserTokenType, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
}
@@ -166,7 +166,7 @@ static const value_string g_SecurityTokenRequestTypeTable[] = {
};
static int hf_opcua_SecurityTokenRequestType = -1;
-void parseSecurityTokenRequestType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseSecurityTokenRequestType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset)
{
proto_tree_add_item(tree, hf_opcua_SecurityTokenRequestType, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
}
@@ -208,7 +208,7 @@ static const value_string g_NodeAttributesMaskTable[] = {
};
static int hf_opcua_NodeAttributesMask = -1;
-void parseNodeAttributesMask(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseNodeAttributesMask(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset)
{
proto_tree_add_item(tree, hf_opcua_NodeAttributesMask, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
}
@@ -241,7 +241,7 @@ static const value_string g_AttributeWriteMaskTable[] = {
};
static int hf_opcua_AttributeWriteMask = -1;
-void parseAttributeWriteMask(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseAttributeWriteMask(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset)
{
proto_tree_add_item(tree, hf_opcua_AttributeWriteMask, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
}
@@ -254,7 +254,7 @@ static const value_string g_BrowseDirectionTable[] = {
};
static int hf_opcua_BrowseDirection = -1;
-void parseBrowseDirection(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseBrowseDirection(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset)
{
proto_tree_add_item(tree, hf_opcua_BrowseDirection, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
}
@@ -274,7 +274,7 @@ static const value_string g_BrowseResultMaskTable[] = {
};
static int hf_opcua_BrowseResultMask = -1;
-void parseBrowseResultMask(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseBrowseResultMask(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset)
{
proto_tree_add_item(tree, hf_opcua_BrowseResultMask, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
}
@@ -288,7 +288,7 @@ static const value_string g_ComplianceLevelTable[] = {
};
static int hf_opcua_ComplianceLevel = -1;
-void parseComplianceLevel(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseComplianceLevel(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset)
{
proto_tree_add_item(tree, hf_opcua_ComplianceLevel, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
}
@@ -316,7 +316,7 @@ static const value_string g_FilterOperatorTable[] = {
};
static int hf_opcua_FilterOperator = -1;
-void parseFilterOperator(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseFilterOperator(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset)
{
proto_tree_add_item(tree, hf_opcua_FilterOperator, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
}
@@ -330,7 +330,7 @@ static const value_string g_TimestampsToReturnTable[] = {
};
static int hf_opcua_TimestampsToReturn = -1;
-void parseTimestampsToReturn(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseTimestampsToReturn(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset)
{
proto_tree_add_item(tree, hf_opcua_TimestampsToReturn, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
}
@@ -344,7 +344,7 @@ static const value_string g_HistoryUpdateTypeTable[] = {
};
static int hf_opcua_HistoryUpdateType = -1;
-void parseHistoryUpdateType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseHistoryUpdateType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset)
{
proto_tree_add_item(tree, hf_opcua_HistoryUpdateType, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
}
@@ -358,7 +358,7 @@ static const value_string g_PerformUpdateTypeTable[] = {
};
static int hf_opcua_PerformUpdateType = -1;
-void parsePerformUpdateType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parsePerformUpdateType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset)
{
proto_tree_add_item(tree, hf_opcua_PerformUpdateType, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
}
@@ -371,7 +371,7 @@ static const value_string g_MonitoringModeTable[] = {
};
static int hf_opcua_MonitoringMode = -1;
-void parseMonitoringMode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseMonitoringMode(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset)
{
proto_tree_add_item(tree, hf_opcua_MonitoringMode, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
}
@@ -384,7 +384,7 @@ static const value_string g_DataChangeTriggerTable[] = {
};
static int hf_opcua_DataChangeTrigger = -1;
-void parseDataChangeTrigger(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseDataChangeTrigger(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset)
{
proto_tree_add_item(tree, hf_opcua_DataChangeTrigger, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
}
@@ -397,7 +397,7 @@ static const value_string g_DeadbandTypeTable[] = {
};
static int hf_opcua_DeadbandType = -1;
-void parseDeadbandType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseDeadbandType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset)
{
proto_tree_add_item(tree, hf_opcua_DeadbandType, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
}
@@ -410,7 +410,7 @@ static const value_string g_EnumeratedTestTypeTable[] = {
};
static int hf_opcua_EnumeratedTestType = -1;
-void parseEnumeratedTestType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseEnumeratedTestType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset)
{
proto_tree_add_item(tree, hf_opcua_EnumeratedTestType, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
}
@@ -426,7 +426,7 @@ static const value_string g_RedundancySupportTable[] = {
};
static int hf_opcua_RedundancySupport = -1;
-void parseRedundancySupport(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseRedundancySupport(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset)
{
proto_tree_add_item(tree, hf_opcua_RedundancySupport, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
}
@@ -444,7 +444,7 @@ static const value_string g_ServerStateTable[] = {
};
static int hf_opcua_ServerState = -1;
-void parseServerState(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseServerState(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset)
{
proto_tree_add_item(tree, hf_opcua_ServerState, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
}
@@ -459,7 +459,7 @@ static const value_string g_ModelChangeStructureVerbMaskTable[] = {
};
static int hf_opcua_ModelChangeStructureVerbMask = -1;
-void parseModelChangeStructureVerbMask(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseModelChangeStructureVerbMask(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset)
{
proto_tree_add_item(tree, hf_opcua_ModelChangeStructureVerbMask, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
}
@@ -472,7 +472,7 @@ static const value_string g_AxisScaleEnumerationTable[] = {
};
static int hf_opcua_AxisScaleEnumeration = -1;
-void parseAxisScaleEnumeration(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseAxisScaleEnumeration(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset)
{
proto_tree_add_item(tree, hf_opcua_AxisScaleEnumeration, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
}
@@ -487,7 +487,7 @@ static const value_string g_ExceptionDeviationFormatTable[] = {
};
static int hf_opcua_ExceptionDeviationFormat = -1;
-void parseExceptionDeviationFormat(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseExceptionDeviationFormat(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset)
{
proto_tree_add_item(tree, hf_opcua_ExceptionDeviationFormat, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
}
diff --git a/plugins/opcua/opcua_enumparser.h b/plugins/opcua/opcua_enumparser.h
index cedb9a9209..a029f3d14b 100644
--- a/plugins/opcua/opcua_enumparser.h
+++ b/plugins/opcua/opcua_enumparser.h
@@ -14,7 +14,7 @@
**
** Description: OpcUa Enum Type Parser
**
-** This file was autogenerated on 17.06.2014.
+** This file was autogenerated on 16.10.2014.
** DON'T MODIFY THIS FILE!
** XXX - well, except that you may have to. See the README.
**
@@ -50,30 +50,30 @@ extern gint ett_opcua_array_ModelChangeStructureVerbMask;
extern gint ett_opcua_array_AxisScaleEnumeration;
extern gint ett_opcua_array_ExceptionDeviationFormat;
-void parseNodeIdType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseOpenFileMode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseIdType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseNodeClass(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseApplicationType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseMessageSecurityMode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseUserTokenType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseSecurityTokenRequestType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseNodeAttributesMask(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseAttributeWriteMask(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseBrowseDirection(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseBrowseResultMask(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseComplianceLevel(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseFilterOperator(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseTimestampsToReturn(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseHistoryUpdateType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parsePerformUpdateType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseMonitoringMode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseDataChangeTrigger(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseDeadbandType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseEnumeratedTestType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseRedundancySupport(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseServerState(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseModelChangeStructureVerbMask(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseAxisScaleEnumeration(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseExceptionDeviationFormat(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
+void parseNodeIdType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseOpenFileMode(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseIdType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseNodeClass(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseApplicationType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseMessageSecurityMode(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseUserTokenType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseSecurityTokenRequestType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseNodeAttributesMask(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseAttributeWriteMask(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseBrowseDirection(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseBrowseResultMask(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseComplianceLevel(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseFilterOperator(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseTimestampsToReturn(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseHistoryUpdateType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parsePerformUpdateType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseMonitoringMode(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseDataChangeTrigger(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseDeadbandType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseEnumeratedTestType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseRedundancySupport(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseServerState(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseModelChangeStructureVerbMask(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseAxisScaleEnumeration(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseExceptionDeviationFormat(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
void registerEnumTypes(int proto);
diff --git a/plugins/opcua/opcua_extensionobjecttable.c b/plugins/opcua/opcua_extensionobjecttable.c
index cc4067c7a5..9ca5960b62 100644
--- a/plugins/opcua/opcua_extensionobjecttable.c
+++ b/plugins/opcua/opcua_extensionobjecttable.c
@@ -14,7 +14,7 @@
**
** Description: Service table and service dispatcher.
**
-** This file was autogenerated on 10.06.2014.
+** This file was autogenerated on 16.10.2014.
** DON'T MODIFY THIS FILE!
** XXX - well, except that you may have to. See the README.
**
@@ -170,7 +170,7 @@ ExtensionObjectParserEntry g_arExtensionObjectParserTable[] = {
const int g_NumTypes = sizeof(g_arExtensionObjectParserTable) / sizeof(ExtensionObjectParserEntry);
/** Dispatch all extension objects to a special parser function. */
-void dispatchExtensionObjectType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int TypeId)
+void dispatchExtensionObjectType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, int TypeId)
{
gint iOffset = *pOffset;
int indx = 0;
@@ -186,7 +186,7 @@ void dispatchExtensionObjectType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset,
if (g_arExtensionObjectParserTable[indx].iRequestId == TypeId)
{
bFound = 1;
- (*g_arExtensionObjectParserTable[indx].pParser)(tree, tvb, &iOffset, g_arExtensionObjectParserTable[indx].typeName);
+ (*g_arExtensionObjectParserTable[indx].pParser)(tree, tvb, pinfo, &iOffset, g_arExtensionObjectParserTable[indx].typeName);
break;
}
indx++;
@@ -197,7 +197,7 @@ void dispatchExtensionObjectType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset,
{
if (iLen == -1)
{
- proto_tree_add_bytes_format(tree, hf_opcua_ByteString, tvb, *pOffset, 4, NULL, "[OpcUa Null ByteString]");
+ proto_tree_add_text(tree, tvb, *pOffset, 4, "[OpcUa Null ByteString]");
}
else if (iLen >= 0)
{
@@ -206,7 +206,8 @@ void dispatchExtensionObjectType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset,
}
else
{
- proto_tree_add_bytes_format(tree, hf_opcua_ByteString, tvb, *pOffset, 4, NULL, "[Invalid ByteString] Invalid length: %d", iLen);
+ char *szValue = wmem_strdup_printf(wmem_packet_scope(), "[Invalid ByteString] Invalid length: %d", iLen);
+ proto_tree_add_text(tree, tvb, *pOffset, 4, "%s", szValue);
}
}
diff --git a/plugins/opcua/opcua_identifiers.h b/plugins/opcua/opcua_identifiers.h
index 32da44f4c3..18891834da 100644
--- a/plugins/opcua/opcua_identifiers.h
+++ b/plugins/opcua/opcua_identifiers.h
@@ -24,13 +24,13 @@
#include <epan/packet.h>
/* declare service parser function prototype */
-typedef void (*fctServiceParser)(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
+typedef void (*fctServiceParser)(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
/* declare enum parser function prototype */
-typedef void (*fctEnumParser)(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
+typedef void (*fctEnumParser)(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
/* declare type parser function prototype */
-typedef void (*fctComplexTypeParser)(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
+typedef void (*fctComplexTypeParser)(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
/* declare type parser function prototype */
-typedef proto_item* (*fctSimpleTypeParser)(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int hfIndex);
+typedef proto_item* (*fctSimpleTypeParser)(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, int hfIndex);
typedef struct _ParserEntry
{
diff --git a/plugins/opcua/opcua_serviceparser.c b/plugins/opcua/opcua_serviceparser.c
index 5718228f5a..e7799376aa 100644
--- a/plugins/opcua/opcua_serviceparser.c
+++ b/plugins/opcua/opcua_serviceparser.c
@@ -188,904 +188,904 @@ gint ett_opcua_array_TestStackExRequest = -1;
gint ett_opcua_TestStackExResponse = -1;
gint ett_opcua_array_TestStackExResponse = -1;
-void parseServiceFault(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseServiceFault(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_ServiceFault, &ti, "ServiceFault");
- parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
+ parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader");
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseFindServersRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseFindServersRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_FindServersRequest, &ti, "FindServersRequest");
- parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
- parseString(subtree, tvb, pOffset, hf_opcua_EndpointUrl);
+ parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader");
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_EndpointUrl);
/* Array length field ignored: NoOfLocaleIds */
- parseArraySimple(subtree, tvb, pOffset, "LocaleIds", "String", hf_opcua_LocaleIds, parseString, ett_opcua_array_String);
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "LocaleIds", "String", hf_opcua_LocaleIds, parseString, ett_opcua_array_String);
/* Array length field ignored: NoOfServerUris */
- parseArraySimple(subtree, tvb, pOffset, "ServerUris", "String", hf_opcua_ServerUris, parseString, ett_opcua_array_String);
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "ServerUris", "String", hf_opcua_ServerUris, parseString, ett_opcua_array_String);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseFindServersResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseFindServersResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_FindServersResponse, &ti, "FindServersResponse");
- parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
+ parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader");
/* Array length field ignored: NoOfServers */
- parseArrayComplex(subtree, tvb, pOffset, "Servers", "ApplicationDescription", parseApplicationDescription, ett_opcua_array_ApplicationDescription);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "Servers", "ApplicationDescription", parseApplicationDescription, ett_opcua_array_ApplicationDescription);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseGetEndpointsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseGetEndpointsRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_GetEndpointsRequest, &ti, "GetEndpointsRequest");
- parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
- parseString(subtree, tvb, pOffset, hf_opcua_EndpointUrl);
+ parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader");
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_EndpointUrl);
/* Array length field ignored: NoOfLocaleIds */
- parseArraySimple(subtree, tvb, pOffset, "LocaleIds", "String", hf_opcua_LocaleIds, parseString, ett_opcua_array_String);
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "LocaleIds", "String", hf_opcua_LocaleIds, parseString, ett_opcua_array_String);
/* Array length field ignored: NoOfProfileUris */
- parseArraySimple(subtree, tvb, pOffset, "ProfileUris", "String", hf_opcua_ProfileUris, parseString, ett_opcua_array_String);
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "ProfileUris", "String", hf_opcua_ProfileUris, parseString, ett_opcua_array_String);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseGetEndpointsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseGetEndpointsResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_GetEndpointsResponse, &ti, "GetEndpointsResponse");
- parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
+ parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader");
/* Array length field ignored: NoOfEndpoints */
- parseArrayComplex(subtree, tvb, pOffset, "Endpoints", "EndpointDescription", parseEndpointDescription, ett_opcua_array_EndpointDescription);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "Endpoints", "EndpointDescription", parseEndpointDescription, ett_opcua_array_EndpointDescription);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseRegisterServerRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseRegisterServerRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_RegisterServerRequest, &ti, "RegisterServerRequest");
- parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
- parseRegisteredServer(subtree, tvb, pOffset, "Server");
+ parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader");
+ parseRegisteredServer(subtree, tvb, pinfo, pOffset, "Server");
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseRegisterServerResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseRegisterServerResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_RegisterServerResponse, &ti, "RegisterServerResponse");
- parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
+ parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader");
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseOpenSecureChannelRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseOpenSecureChannelRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_OpenSecureChannelRequest, &ti, "OpenSecureChannelRequest");
- parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
- parseUInt32(subtree, tvb, pOffset, hf_opcua_ClientProtocolVersion);
- parseSecurityTokenRequestType(subtree, tvb, pOffset);
- parseMessageSecurityMode(subtree, tvb, pOffset);
- parseByteString(subtree, tvb, pOffset, hf_opcua_ClientNonce);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_RequestedLifetime);
+ parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader");
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_ClientProtocolVersion);
+ parseSecurityTokenRequestType(subtree, tvb, pinfo, pOffset);
+ parseMessageSecurityMode(subtree, tvb, pinfo, pOffset);
+ parseByteString(subtree, tvb, pinfo, pOffset, hf_opcua_ClientNonce);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_RequestedLifetime);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseOpenSecureChannelResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseOpenSecureChannelResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_OpenSecureChannelResponse, &ti, "OpenSecureChannelResponse");
- parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
- parseUInt32(subtree, tvb, pOffset, hf_opcua_ServerProtocolVersion);
- parseChannelSecurityToken(subtree, tvb, pOffset, "SecurityToken");
- parseByteString(subtree, tvb, pOffset, hf_opcua_ServerNonce);
+ parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader");
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_ServerProtocolVersion);
+ parseChannelSecurityToken(subtree, tvb, pinfo, pOffset, "SecurityToken");
+ parseByteString(subtree, tvb, pinfo, pOffset, hf_opcua_ServerNonce);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseCloseSecureChannelRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseCloseSecureChannelRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_CloseSecureChannelRequest, &ti, "CloseSecureChannelRequest");
- parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
+ parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader");
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseCloseSecureChannelResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseCloseSecureChannelResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_CloseSecureChannelResponse, &ti, "CloseSecureChannelResponse");
- parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
+ parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader");
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseCreateSessionRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseCreateSessionRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_CreateSessionRequest, &ti, "CreateSessionRequest");
- parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
- parseApplicationDescription(subtree, tvb, pOffset, "ClientDescription");
- parseString(subtree, tvb, pOffset, hf_opcua_ServerUri);
- parseString(subtree, tvb, pOffset, hf_opcua_EndpointUrl);
- parseString(subtree, tvb, pOffset, hf_opcua_SessionName);
- parseByteString(subtree, tvb, pOffset, hf_opcua_ClientNonce);
- parseByteString(subtree, tvb, pOffset, hf_opcua_ClientCertificate);
- parseDouble(subtree, tvb, pOffset, hf_opcua_RequestedSessionTimeout);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_MaxResponseMessageSize);
+ parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader");
+ parseApplicationDescription(subtree, tvb, pinfo, pOffset, "ClientDescription");
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_ServerUri);
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_EndpointUrl);
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_SessionName);
+ parseByteString(subtree, tvb, pinfo, pOffset, hf_opcua_ClientNonce);
+ parseByteString(subtree, tvb, pinfo, pOffset, hf_opcua_ClientCertificate);
+ parseDouble(subtree, tvb, pinfo, pOffset, hf_opcua_RequestedSessionTimeout);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_MaxResponseMessageSize);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseCreateSessionResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseCreateSessionResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_CreateSessionResponse, &ti, "CreateSessionResponse");
- parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
- parseNodeId(subtree, tvb, pOffset, "SessionId");
- parseNodeId(subtree, tvb, pOffset, "AuthenticationToken");
- parseDouble(subtree, tvb, pOffset, hf_opcua_RevisedSessionTimeout);
- parseByteString(subtree, tvb, pOffset, hf_opcua_ServerNonce);
- parseByteString(subtree, tvb, pOffset, hf_opcua_ServerCertificate);
+ parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader");
+ parseNodeId(subtree, tvb, pinfo, pOffset, "SessionId");
+ parseNodeId(subtree, tvb, pinfo, pOffset, "AuthenticationToken");
+ parseDouble(subtree, tvb, pinfo, pOffset, hf_opcua_RevisedSessionTimeout);
+ parseByteString(subtree, tvb, pinfo, pOffset, hf_opcua_ServerNonce);
+ parseByteString(subtree, tvb, pinfo, pOffset, hf_opcua_ServerCertificate);
/* Array length field ignored: NoOfServerEndpoints */
- parseArrayComplex(subtree, tvb, pOffset, "ServerEndpoints", "EndpointDescription", parseEndpointDescription, ett_opcua_array_EndpointDescription);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "ServerEndpoints", "EndpointDescription", parseEndpointDescription, ett_opcua_array_EndpointDescription);
/* Array length field ignored: NoOfServerSoftwareCertificates */
- parseArrayComplex(subtree, tvb, pOffset, "ServerSoftwareCertificates", "SignedSoftwareCertificate", parseSignedSoftwareCertificate, ett_opcua_array_SignedSoftwareCertificate);
- parseSignatureData(subtree, tvb, pOffset, "ServerSignature");
- parseUInt32(subtree, tvb, pOffset, hf_opcua_MaxRequestMessageSize);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "ServerSoftwareCertificates", "SignedSoftwareCertificate", parseSignedSoftwareCertificate, ett_opcua_array_SignedSoftwareCertificate);
+ parseSignatureData(subtree, tvb, pinfo, pOffset, "ServerSignature");
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_MaxRequestMessageSize);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseActivateSessionRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseActivateSessionRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_ActivateSessionRequest, &ti, "ActivateSessionRequest");
- parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
- parseSignatureData(subtree, tvb, pOffset, "ClientSignature");
+ parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader");
+ parseSignatureData(subtree, tvb, pinfo, pOffset, "ClientSignature");
/* Array length field ignored: NoOfClientSoftwareCertificates */
- parseArrayComplex(subtree, tvb, pOffset, "ClientSoftwareCertificates", "SignedSoftwareCertificate", parseSignedSoftwareCertificate, ett_opcua_array_SignedSoftwareCertificate);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "ClientSoftwareCertificates", "SignedSoftwareCertificate", parseSignedSoftwareCertificate, ett_opcua_array_SignedSoftwareCertificate);
/* Array length field ignored: NoOfLocaleIds */
- parseArraySimple(subtree, tvb, pOffset, "LocaleIds", "String", hf_opcua_LocaleIds, parseString, ett_opcua_array_String);
- parseExtensionObject(subtree, tvb, pOffset, "UserIdentityToken");
- parseSignatureData(subtree, tvb, pOffset, "UserTokenSignature");
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "LocaleIds", "String", hf_opcua_LocaleIds, parseString, ett_opcua_array_String);
+ parseExtensionObject(subtree, tvb, pinfo, pOffset, "UserIdentityToken");
+ parseSignatureData(subtree, tvb, pinfo, pOffset, "UserTokenSignature");
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseActivateSessionResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseActivateSessionResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_ActivateSessionResponse, &ti, "ActivateSessionResponse");
- parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
- parseByteString(subtree, tvb, pOffset, hf_opcua_ServerNonce);
+ parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader");
+ parseByteString(subtree, tvb, pinfo, pOffset, hf_opcua_ServerNonce);
/* Array length field ignored: NoOfResults */
- parseArraySimple(subtree, tvb, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode, ett_opcua_array_StatusCode);
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode, ett_opcua_array_StatusCode);
/* Array length field ignored: NoOfDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseCloseSessionRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseCloseSessionRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_CloseSessionRequest, &ti, "CloseSessionRequest");
- parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
- parseBoolean(subtree, tvb, pOffset, hf_opcua_DeleteSubscriptions);
+ parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader");
+ parseBoolean(subtree, tvb, pinfo, pOffset, hf_opcua_DeleteSubscriptions);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseCloseSessionResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseCloseSessionResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_CloseSessionResponse, &ti, "CloseSessionResponse");
- parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
+ parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader");
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseCancelRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseCancelRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_CancelRequest, &ti, "CancelRequest");
- parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
- parseUInt32(subtree, tvb, pOffset, hf_opcua_RequestHandle);
+ parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader");
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_RequestHandle);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseCancelResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseCancelResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_CancelResponse, &ti, "CancelResponse");
- parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
- parseUInt32(subtree, tvb, pOffset, hf_opcua_CancelCount);
+ parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader");
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_CancelCount);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseAddNodesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseAddNodesRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_AddNodesRequest, &ti, "AddNodesRequest");
- parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
+ parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader");
/* Array length field ignored: NoOfNodesToAdd */
- parseArrayComplex(subtree, tvb, pOffset, "NodesToAdd", "AddNodesItem", parseAddNodesItem, ett_opcua_array_AddNodesItem);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "NodesToAdd", "AddNodesItem", parseAddNodesItem, ett_opcua_array_AddNodesItem);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseAddNodesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseAddNodesResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_AddNodesResponse, &ti, "AddNodesResponse");
- parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
+ parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader");
/* Array length field ignored: NoOfResults */
- parseArrayComplex(subtree, tvb, pOffset, "Results", "AddNodesResult", parseAddNodesResult, ett_opcua_array_AddNodesResult);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "Results", "AddNodesResult", parseAddNodesResult, ett_opcua_array_AddNodesResult);
/* Array length field ignored: NoOfDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseAddReferencesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseAddReferencesRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_AddReferencesRequest, &ti, "AddReferencesRequest");
- parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
+ parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader");
/* Array length field ignored: NoOfReferencesToAdd */
- parseArrayComplex(subtree, tvb, pOffset, "ReferencesToAdd", "AddReferencesItem", parseAddReferencesItem, ett_opcua_array_AddReferencesItem);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "ReferencesToAdd", "AddReferencesItem", parseAddReferencesItem, ett_opcua_array_AddReferencesItem);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseAddReferencesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseAddReferencesResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_AddReferencesResponse, &ti, "AddReferencesResponse");
- parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
+ parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader");
/* Array length field ignored: NoOfResults */
- parseArraySimple(subtree, tvb, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode, ett_opcua_array_StatusCode);
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode, ett_opcua_array_StatusCode);
/* Array length field ignored: NoOfDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseDeleteNodesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseDeleteNodesRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_DeleteNodesRequest, &ti, "DeleteNodesRequest");
- parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
+ parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader");
/* Array length field ignored: NoOfNodesToDelete */
- parseArrayComplex(subtree, tvb, pOffset, "NodesToDelete", "DeleteNodesItem", parseDeleteNodesItem, ett_opcua_array_DeleteNodesItem);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "NodesToDelete", "DeleteNodesItem", parseDeleteNodesItem, ett_opcua_array_DeleteNodesItem);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseDeleteNodesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseDeleteNodesResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_DeleteNodesResponse, &ti, "DeleteNodesResponse");
- parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
+ parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader");
/* Array length field ignored: NoOfResults */
- parseArraySimple(subtree, tvb, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode, ett_opcua_array_StatusCode);
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode, ett_opcua_array_StatusCode);
/* Array length field ignored: NoOfDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseDeleteReferencesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseDeleteReferencesRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_DeleteReferencesRequest, &ti, "DeleteReferencesRequest");
- parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
+ parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader");
/* Array length field ignored: NoOfReferencesToDelete */
- parseArrayComplex(subtree, tvb, pOffset, "ReferencesToDelete", "DeleteReferencesItem", parseDeleteReferencesItem, ett_opcua_array_DeleteReferencesItem);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "ReferencesToDelete", "DeleteReferencesItem", parseDeleteReferencesItem, ett_opcua_array_DeleteReferencesItem);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseDeleteReferencesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseDeleteReferencesResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_DeleteReferencesResponse, &ti, "DeleteReferencesResponse");
- parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
+ parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader");
/* Array length field ignored: NoOfResults */
- parseArraySimple(subtree, tvb, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode, ett_opcua_array_StatusCode);
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode, ett_opcua_array_StatusCode);
/* Array length field ignored: NoOfDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseBrowseRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseBrowseRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_BrowseRequest, &ti, "BrowseRequest");
- parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
- parseViewDescription(subtree, tvb, pOffset, "View");
- parseUInt32(subtree, tvb, pOffset, hf_opcua_RequestedMaxReferencesPerNode);
+ parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader");
+ parseViewDescription(subtree, tvb, pinfo, pOffset, "View");
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_RequestedMaxReferencesPerNode);
/* Array length field ignored: NoOfNodesToBrowse */
- parseArrayComplex(subtree, tvb, pOffset, "NodesToBrowse", "BrowseDescription", parseBrowseDescription, ett_opcua_array_BrowseDescription);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "NodesToBrowse", "BrowseDescription", parseBrowseDescription, ett_opcua_array_BrowseDescription);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseBrowseResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseBrowseResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_BrowseResponse, &ti, "BrowseResponse");
- parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
+ parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader");
/* Array length field ignored: NoOfResults */
- parseArrayComplex(subtree, tvb, pOffset, "Results", "BrowseResult", parseBrowseResult, ett_opcua_array_BrowseResult);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "Results", "BrowseResult", parseBrowseResult, ett_opcua_array_BrowseResult);
/* Array length field ignored: NoOfDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseBrowseNextRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseBrowseNextRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_BrowseNextRequest, &ti, "BrowseNextRequest");
- parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
- parseBoolean(subtree, tvb, pOffset, hf_opcua_ReleaseContinuationPoints);
+ parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader");
+ parseBoolean(subtree, tvb, pinfo, pOffset, hf_opcua_ReleaseContinuationPoints);
/* Array length field ignored: NoOfContinuationPoints */
- parseArraySimple(subtree, tvb, pOffset, "ContinuationPoints", "ByteString", hf_opcua_ContinuationPoints, parseByteString, ett_opcua_array_ByteString);
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "ContinuationPoints", "ByteString", hf_opcua_ContinuationPoints, parseByteString, ett_opcua_array_ByteString);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseBrowseNextResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseBrowseNextResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_BrowseNextResponse, &ti, "BrowseNextResponse");
- parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
+ parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader");
/* Array length field ignored: NoOfResults */
- parseArrayComplex(subtree, tvb, pOffset, "Results", "BrowseResult", parseBrowseResult, ett_opcua_array_BrowseResult);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "Results", "BrowseResult", parseBrowseResult, ett_opcua_array_BrowseResult);
/* Array length field ignored: NoOfDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseTranslateBrowsePathsToNodeIdsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseTranslateBrowsePathsToNodeIdsRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_TranslateBrowsePathsToNodeIdsRequest, &ti, "TranslateBrowsePathsToNodeIdsRequest");
- parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
+ parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader");
/* Array length field ignored: NoOfBrowsePaths */
- parseArrayComplex(subtree, tvb, pOffset, "BrowsePaths", "BrowsePath", parseBrowsePath, ett_opcua_array_BrowsePath);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "BrowsePaths", "BrowsePath", parseBrowsePath, ett_opcua_array_BrowsePath);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseTranslateBrowsePathsToNodeIdsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseTranslateBrowsePathsToNodeIdsResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_TranslateBrowsePathsToNodeIdsResponse, &ti, "TranslateBrowsePathsToNodeIdsResponse");
- parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
+ parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader");
/* Array length field ignored: NoOfResults */
- parseArrayComplex(subtree, tvb, pOffset, "Results", "BrowsePathResult", parseBrowsePathResult, ett_opcua_array_BrowsePathResult);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "Results", "BrowsePathResult", parseBrowsePathResult, ett_opcua_array_BrowsePathResult);
/* Array length field ignored: NoOfDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseRegisterNodesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseRegisterNodesRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_RegisterNodesRequest, &ti, "RegisterNodesRequest");
- parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
+ parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader");
/* Array length field ignored: NoOfNodesToRegister */
- parseArrayComplex(subtree, tvb, pOffset, "NodesToRegister", "NodeId", parseNodeId, ett_opcua_array_NodeId);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "NodesToRegister", "NodeId", parseNodeId, ett_opcua_array_NodeId);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseRegisterNodesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseRegisterNodesResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_RegisterNodesResponse, &ti, "RegisterNodesResponse");
- parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
+ parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader");
/* Array length field ignored: NoOfRegisteredNodeIds */
- parseArrayComplex(subtree, tvb, pOffset, "RegisteredNodeIds", "NodeId", parseNodeId, ett_opcua_array_NodeId);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "RegisteredNodeIds", "NodeId", parseNodeId, ett_opcua_array_NodeId);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseUnregisterNodesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseUnregisterNodesRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_UnregisterNodesRequest, &ti, "UnregisterNodesRequest");
- parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
+ parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader");
/* Array length field ignored: NoOfNodesToUnregister */
- parseArrayComplex(subtree, tvb, pOffset, "NodesToUnregister", "NodeId", parseNodeId, ett_opcua_array_NodeId);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "NodesToUnregister", "NodeId", parseNodeId, ett_opcua_array_NodeId);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseUnregisterNodesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseUnregisterNodesResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_UnregisterNodesResponse, &ti, "UnregisterNodesResponse");
- parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
+ parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader");
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseQueryFirstRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseQueryFirstRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_QueryFirstRequest, &ti, "QueryFirstRequest");
- parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
- parseViewDescription(subtree, tvb, pOffset, "View");
+ parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader");
+ parseViewDescription(subtree, tvb, pinfo, pOffset, "View");
/* Array length field ignored: NoOfNodeTypes */
- parseArrayComplex(subtree, tvb, pOffset, "NodeTypes", "NodeTypeDescription", parseNodeTypeDescription, ett_opcua_array_NodeTypeDescription);
- parseContentFilter(subtree, tvb, pOffset, "Filter");
- parseUInt32(subtree, tvb, pOffset, hf_opcua_MaxDataSetsToReturn);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_MaxReferencesToReturn);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "NodeTypes", "NodeTypeDescription", parseNodeTypeDescription, ett_opcua_array_NodeTypeDescription);
+ parseContentFilter(subtree, tvb, pinfo, pOffset, "Filter");
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_MaxDataSetsToReturn);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_MaxReferencesToReturn);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseQueryFirstResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseQueryFirstResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_QueryFirstResponse, &ti, "QueryFirstResponse");
- parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
+ parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader");
/* Array length field ignored: NoOfQueryDataSets */
- parseArrayComplex(subtree, tvb, pOffset, "QueryDataSets", "QueryDataSet", parseQueryDataSet, ett_opcua_array_QueryDataSet);
- parseByteString(subtree, tvb, pOffset, hf_opcua_ContinuationPoint);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "QueryDataSets", "QueryDataSet", parseQueryDataSet, ett_opcua_array_QueryDataSet);
+ parseByteString(subtree, tvb, pinfo, pOffset, hf_opcua_ContinuationPoint);
/* Array length field ignored: NoOfParsingResults */
- parseArrayComplex(subtree, tvb, pOffset, "ParsingResults", "ParsingResult", parseParsingResult, ett_opcua_array_ParsingResult);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "ParsingResults", "ParsingResult", parseParsingResult, ett_opcua_array_ParsingResult);
/* Array length field ignored: NoOfDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
- parseContentFilterResult(subtree, tvb, pOffset, "FilterResult");
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
+ parseContentFilterResult(subtree, tvb, pinfo, pOffset, "FilterResult");
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseQueryNextRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseQueryNextRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_QueryNextRequest, &ti, "QueryNextRequest");
- parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
- parseBoolean(subtree, tvb, pOffset, hf_opcua_ReleaseContinuationPoint);
- parseByteString(subtree, tvb, pOffset, hf_opcua_ContinuationPoint);
+ parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader");
+ parseBoolean(subtree, tvb, pinfo, pOffset, hf_opcua_ReleaseContinuationPoint);
+ parseByteString(subtree, tvb, pinfo, pOffset, hf_opcua_ContinuationPoint);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseQueryNextResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseQueryNextResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_QueryNextResponse, &ti, "QueryNextResponse");
- parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
+ parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader");
/* Array length field ignored: NoOfQueryDataSets */
- parseArrayComplex(subtree, tvb, pOffset, "QueryDataSets", "QueryDataSet", parseQueryDataSet, ett_opcua_array_QueryDataSet);
- parseByteString(subtree, tvb, pOffset, hf_opcua_RevisedContinuationPoint);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "QueryDataSets", "QueryDataSet", parseQueryDataSet, ett_opcua_array_QueryDataSet);
+ parseByteString(subtree, tvb, pinfo, pOffset, hf_opcua_RevisedContinuationPoint);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseReadRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseReadRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_ReadRequest, &ti, "ReadRequest");
- parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
- parseDouble(subtree, tvb, pOffset, hf_opcua_MaxAge);
- parseTimestampsToReturn(subtree, tvb, pOffset);
+ parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader");
+ parseDouble(subtree, tvb, pinfo, pOffset, hf_opcua_MaxAge);
+ parseTimestampsToReturn(subtree, tvb, pinfo, pOffset);
/* Array length field ignored: NoOfNodesToRead */
- parseArrayComplex(subtree, tvb, pOffset, "NodesToRead", "ReadValueId", parseReadValueId, ett_opcua_array_ReadValueId);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "NodesToRead", "ReadValueId", parseReadValueId, ett_opcua_array_ReadValueId);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseReadResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseReadResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_ReadResponse, &ti, "ReadResponse");
- parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
+ parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader");
/* Array length field ignored: NoOfResults */
- parseArrayComplex(subtree, tvb, pOffset, "Results", "DataValue", parseDataValue, ett_opcua_array_DataValue);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "Results", "DataValue", parseDataValue, ett_opcua_array_DataValue);
/* Array length field ignored: NoOfDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseHistoryReadRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseHistoryReadRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_HistoryReadRequest, &ti, "HistoryReadRequest");
- parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
- parseExtensionObject(subtree, tvb, pOffset, "HistoryReadDetails");
- parseTimestampsToReturn(subtree, tvb, pOffset);
- parseBoolean(subtree, tvb, pOffset, hf_opcua_ReleaseContinuationPoints);
+ parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader");
+ parseExtensionObject(subtree, tvb, pinfo, pOffset, "HistoryReadDetails");
+ parseTimestampsToReturn(subtree, tvb, pinfo, pOffset);
+ parseBoolean(subtree, tvb, pinfo, pOffset, hf_opcua_ReleaseContinuationPoints);
/* Array length field ignored: NoOfNodesToRead */
- parseArrayComplex(subtree, tvb, pOffset, "NodesToRead", "HistoryReadValueId", parseHistoryReadValueId, ett_opcua_array_HistoryReadValueId);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "NodesToRead", "HistoryReadValueId", parseHistoryReadValueId, ett_opcua_array_HistoryReadValueId);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseHistoryReadResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseHistoryReadResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_HistoryReadResponse, &ti, "HistoryReadResponse");
- parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
+ parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader");
/* Array length field ignored: NoOfResults */
- parseArrayComplex(subtree, tvb, pOffset, "Results", "HistoryReadResult", parseHistoryReadResult, ett_opcua_array_HistoryReadResult);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "Results", "HistoryReadResult", parseHistoryReadResult, ett_opcua_array_HistoryReadResult);
/* Array length field ignored: NoOfDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseWriteRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseWriteRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_WriteRequest, &ti, "WriteRequest");
- parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
+ parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader");
/* Array length field ignored: NoOfNodesToWrite */
- parseArrayComplex(subtree, tvb, pOffset, "NodesToWrite", "WriteValue", parseWriteValue, ett_opcua_array_WriteValue);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "NodesToWrite", "WriteValue", parseWriteValue, ett_opcua_array_WriteValue);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseWriteResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseWriteResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_WriteResponse, &ti, "WriteResponse");
- parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
+ parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader");
/* Array length field ignored: NoOfResults */
- parseArraySimple(subtree, tvb, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode, ett_opcua_array_StatusCode);
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode, ett_opcua_array_StatusCode);
/* Array length field ignored: NoOfDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseHistoryUpdateRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseHistoryUpdateRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_HistoryUpdateRequest, &ti, "HistoryUpdateRequest");
- parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
+ parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader");
/* Array length field ignored: NoOfHistoryUpdateDetails */
- parseArrayComplex(subtree, tvb, pOffset, "HistoryUpdateDetails", "ExtensionObject", parseExtensionObject, ett_opcua_array_ExtensionObject);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "HistoryUpdateDetails", "ExtensionObject", parseExtensionObject, ett_opcua_array_ExtensionObject);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseHistoryUpdateResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseHistoryUpdateResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_HistoryUpdateResponse, &ti, "HistoryUpdateResponse");
- parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
+ parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader");
/* Array length field ignored: NoOfResults */
- parseArrayComplex(subtree, tvb, pOffset, "Results", "HistoryUpdateResult", parseHistoryUpdateResult, ett_opcua_array_HistoryUpdateResult);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "Results", "HistoryUpdateResult", parseHistoryUpdateResult, ett_opcua_array_HistoryUpdateResult);
/* Array length field ignored: NoOfDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseCallRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseCallRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_CallRequest, &ti, "CallRequest");
- parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
+ parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader");
/* Array length field ignored: NoOfMethodsToCall */
- parseArrayComplex(subtree, tvb, pOffset, "MethodsToCall", "CallMethodRequest", parseCallMethodRequest, ett_opcua_array_CallMethodRequest);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "MethodsToCall", "CallMethodRequest", parseCallMethodRequest, ett_opcua_array_CallMethodRequest);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseCallResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseCallResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_CallResponse, &ti, "CallResponse");
- parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
+ parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader");
/* Array length field ignored: NoOfResults */
- parseArrayComplex(subtree, tvb, pOffset, "Results", "CallMethodResult", parseCallMethodResult, ett_opcua_array_CallMethodResult);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "Results", "CallMethodResult", parseCallMethodResult, ett_opcua_array_CallMethodResult);
/* Array length field ignored: NoOfDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseCreateMonitoredItemsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseCreateMonitoredItemsRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_CreateMonitoredItemsRequest, &ti, "CreateMonitoredItemsRequest");
- parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
- parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId);
- parseTimestampsToReturn(subtree, tvb, pOffset);
+ parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader");
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_SubscriptionId);
+ parseTimestampsToReturn(subtree, tvb, pinfo, pOffset);
/* Array length field ignored: NoOfItemsToCreate */
- parseArrayComplex(subtree, tvb, pOffset, "ItemsToCreate", "MonitoredItemCreateRequest", parseMonitoredItemCreateRequest, ett_opcua_array_MonitoredItemCreateRequest);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "ItemsToCreate", "MonitoredItemCreateRequest", parseMonitoredItemCreateRequest, ett_opcua_array_MonitoredItemCreateRequest);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseCreateMonitoredItemsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseCreateMonitoredItemsResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_CreateMonitoredItemsResponse, &ti, "CreateMonitoredItemsResponse");
- parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
+ parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader");
/* Array length field ignored: NoOfResults */
- parseArrayComplex(subtree, tvb, pOffset, "Results", "MonitoredItemCreateResult", parseMonitoredItemCreateResult, ett_opcua_array_MonitoredItemCreateResult);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "Results", "MonitoredItemCreateResult", parseMonitoredItemCreateResult, ett_opcua_array_MonitoredItemCreateResult);
/* Array length field ignored: NoOfDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseModifyMonitoredItemsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseModifyMonitoredItemsRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_ModifyMonitoredItemsRequest, &ti, "ModifyMonitoredItemsRequest");
- parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
- parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId);
- parseTimestampsToReturn(subtree, tvb, pOffset);
+ parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader");
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_SubscriptionId);
+ parseTimestampsToReturn(subtree, tvb, pinfo, pOffset);
/* Array length field ignored: NoOfItemsToModify */
- parseArrayComplex(subtree, tvb, pOffset, "ItemsToModify", "MonitoredItemModifyRequest", parseMonitoredItemModifyRequest, ett_opcua_array_MonitoredItemModifyRequest);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "ItemsToModify", "MonitoredItemModifyRequest", parseMonitoredItemModifyRequest, ett_opcua_array_MonitoredItemModifyRequest);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseModifyMonitoredItemsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseModifyMonitoredItemsResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_ModifyMonitoredItemsResponse, &ti, "ModifyMonitoredItemsResponse");
- parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
+ parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader");
/* Array length field ignored: NoOfResults */
- parseArrayComplex(subtree, tvb, pOffset, "Results", "MonitoredItemModifyResult", parseMonitoredItemModifyResult, ett_opcua_array_MonitoredItemModifyResult);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "Results", "MonitoredItemModifyResult", parseMonitoredItemModifyResult, ett_opcua_array_MonitoredItemModifyResult);
/* Array length field ignored: NoOfDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseSetMonitoringModeRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseSetMonitoringModeRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_SetMonitoringModeRequest, &ti, "SetMonitoringModeRequest");
- parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
- parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId);
- parseMonitoringMode(subtree, tvb, pOffset);
+ parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader");
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_SubscriptionId);
+ parseMonitoringMode(subtree, tvb, pinfo, pOffset);
/* Array length field ignored: NoOfMonitoredItemIds */
- parseArraySimple(subtree, tvb, pOffset, "MonitoredItemIds", "UInt32", hf_opcua_MonitoredItemIds, parseUInt32, ett_opcua_array_UInt32);
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "MonitoredItemIds", "UInt32", hf_opcua_MonitoredItemIds, parseUInt32, ett_opcua_array_UInt32);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseSetMonitoringModeResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseSetMonitoringModeResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_SetMonitoringModeResponse, &ti, "SetMonitoringModeResponse");
- parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
+ parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader");
/* Array length field ignored: NoOfResults */
- parseArraySimple(subtree, tvb, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode, ett_opcua_array_StatusCode);
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode, ett_opcua_array_StatusCode);
/* Array length field ignored: NoOfDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseSetTriggeringRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseSetTriggeringRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_SetTriggeringRequest, &ti, "SetTriggeringRequest");
- parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
- parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_TriggeringItemId);
+ parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader");
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_SubscriptionId);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_TriggeringItemId);
/* Array length field ignored: NoOfLinksToAdd */
- parseArraySimple(subtree, tvb, pOffset, "LinksToAdd", "UInt32", hf_opcua_LinksToAdd, parseUInt32, ett_opcua_array_UInt32);
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "LinksToAdd", "UInt32", hf_opcua_LinksToAdd, parseUInt32, ett_opcua_array_UInt32);
/* Array length field ignored: NoOfLinksToRemove */
- parseArraySimple(subtree, tvb, pOffset, "LinksToRemove", "UInt32", hf_opcua_LinksToRemove, parseUInt32, ett_opcua_array_UInt32);
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "LinksToRemove", "UInt32", hf_opcua_LinksToRemove, parseUInt32, ett_opcua_array_UInt32);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseSetTriggeringResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseSetTriggeringResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_SetTriggeringResponse, &ti, "SetTriggeringResponse");
- parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
+ parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader");
/* Array length field ignored: NoOfAddResults */
- parseArraySimple(subtree, tvb, pOffset, "AddResults", "StatusCode", hf_opcua_AddResults, parseStatusCode, ett_opcua_array_StatusCode);
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "AddResults", "StatusCode", hf_opcua_AddResults, parseStatusCode, ett_opcua_array_StatusCode);
/* Array length field ignored: NoOfAddDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "AddDiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "AddDiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
/* Array length field ignored: NoOfRemoveResults */
- parseArraySimple(subtree, tvb, pOffset, "RemoveResults", "StatusCode", hf_opcua_RemoveResults, parseStatusCode, ett_opcua_array_StatusCode);
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "RemoveResults", "StatusCode", hf_opcua_RemoveResults, parseStatusCode, ett_opcua_array_StatusCode);
/* Array length field ignored: NoOfRemoveDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "RemoveDiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "RemoveDiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseDeleteMonitoredItemsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseDeleteMonitoredItemsRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_DeleteMonitoredItemsRequest, &ti, "DeleteMonitoredItemsRequest");
- parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
- parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId);
+ parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader");
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_SubscriptionId);
/* Array length field ignored: NoOfMonitoredItemIds */
- parseArraySimple(subtree, tvb, pOffset, "MonitoredItemIds", "UInt32", hf_opcua_MonitoredItemIds, parseUInt32, ett_opcua_array_UInt32);
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "MonitoredItemIds", "UInt32", hf_opcua_MonitoredItemIds, parseUInt32, ett_opcua_array_UInt32);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseDeleteMonitoredItemsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseDeleteMonitoredItemsResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_DeleteMonitoredItemsResponse, &ti, "DeleteMonitoredItemsResponse");
- parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
+ parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader");
/* Array length field ignored: NoOfResults */
- parseArraySimple(subtree, tvb, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode, ett_opcua_array_StatusCode);
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode, ett_opcua_array_StatusCode);
/* Array length field ignored: NoOfDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseCreateSubscriptionRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseCreateSubscriptionRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_CreateSubscriptionRequest, &ti, "CreateSubscriptionRequest");
- parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
- parseDouble(subtree, tvb, pOffset, hf_opcua_RequestedPublishingInterval);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_RequestedLifetimeCount);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_RequestedMaxKeepAliveCount);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_MaxNotificationsPerPublish);
- parseBoolean(subtree, tvb, pOffset, hf_opcua_PublishingEnabled);
- parseByte(subtree, tvb, pOffset, hf_opcua_Priority);
+ parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader");
+ parseDouble(subtree, tvb, pinfo, pOffset, hf_opcua_RequestedPublishingInterval);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_RequestedLifetimeCount);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_RequestedMaxKeepAliveCount);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_MaxNotificationsPerPublish);
+ parseBoolean(subtree, tvb, pinfo, pOffset, hf_opcua_PublishingEnabled);
+ parseByte(subtree, tvb, pinfo, pOffset, hf_opcua_Priority);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseCreateSubscriptionResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseCreateSubscriptionResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_CreateSubscriptionResponse, &ti, "CreateSubscriptionResponse");
- parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
- parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId);
- parseDouble(subtree, tvb, pOffset, hf_opcua_RevisedPublishingInterval);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_RevisedLifetimeCount);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_RevisedMaxKeepAliveCount);
+ parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader");
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_SubscriptionId);
+ parseDouble(subtree, tvb, pinfo, pOffset, hf_opcua_RevisedPublishingInterval);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_RevisedLifetimeCount);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_RevisedMaxKeepAliveCount);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseModifySubscriptionRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseModifySubscriptionRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_ModifySubscriptionRequest, &ti, "ModifySubscriptionRequest");
- parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
- parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId);
- parseDouble(subtree, tvb, pOffset, hf_opcua_RequestedPublishingInterval);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_RequestedLifetimeCount);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_RequestedMaxKeepAliveCount);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_MaxNotificationsPerPublish);
- parseByte(subtree, tvb, pOffset, hf_opcua_Priority);
+ parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader");
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_SubscriptionId);
+ parseDouble(subtree, tvb, pinfo, pOffset, hf_opcua_RequestedPublishingInterval);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_RequestedLifetimeCount);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_RequestedMaxKeepAliveCount);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_MaxNotificationsPerPublish);
+ parseByte(subtree, tvb, pinfo, pOffset, hf_opcua_Priority);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseModifySubscriptionResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseModifySubscriptionResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_ModifySubscriptionResponse, &ti, "ModifySubscriptionResponse");
- parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
- parseDouble(subtree, tvb, pOffset, hf_opcua_RevisedPublishingInterval);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_RevisedLifetimeCount);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_RevisedMaxKeepAliveCount);
+ parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader");
+ parseDouble(subtree, tvb, pinfo, pOffset, hf_opcua_RevisedPublishingInterval);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_RevisedLifetimeCount);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_RevisedMaxKeepAliveCount);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseSetPublishingModeRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseSetPublishingModeRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_SetPublishingModeRequest, &ti, "SetPublishingModeRequest");
- parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
- parseBoolean(subtree, tvb, pOffset, hf_opcua_PublishingEnabled);
+ parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader");
+ parseBoolean(subtree, tvb, pinfo, pOffset, hf_opcua_PublishingEnabled);
/* Array length field ignored: NoOfSubscriptionIds */
- parseArraySimple(subtree, tvb, pOffset, "SubscriptionIds", "UInt32", hf_opcua_SubscriptionIds, parseUInt32, ett_opcua_array_UInt32);
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "SubscriptionIds", "UInt32", hf_opcua_SubscriptionIds, parseUInt32, ett_opcua_array_UInt32);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseSetPublishingModeResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseSetPublishingModeResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_SetPublishingModeResponse, &ti, "SetPublishingModeResponse");
- parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
+ parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader");
/* Array length field ignored: NoOfResults */
- parseArraySimple(subtree, tvb, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode, ett_opcua_array_StatusCode);
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode, ett_opcua_array_StatusCode);
/* Array length field ignored: NoOfDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parsePublishRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parsePublishRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_PublishRequest, &ti, "PublishRequest");
- parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
+ parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader");
/* Array length field ignored: NoOfSubscriptionAcknowledgements */
- parseArrayComplex(subtree, tvb, pOffset, "SubscriptionAcknowledgements", "SubscriptionAcknowledgement", parseSubscriptionAcknowledgement, ett_opcua_array_SubscriptionAcknowledgement);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "SubscriptionAcknowledgements", "SubscriptionAcknowledgement", parseSubscriptionAcknowledgement, ett_opcua_array_SubscriptionAcknowledgement);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parsePublishResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parsePublishResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_PublishResponse, &ti, "PublishResponse");
- parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
- parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId);
+ parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader");
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_SubscriptionId);
/* Array length field ignored: NoOfAvailableSequenceNumbers */
- parseArraySimple(subtree, tvb, pOffset, "AvailableSequenceNumbers", "UInt32", hf_opcua_AvailableSequenceNumbers, parseUInt32, ett_opcua_array_UInt32);
- parseBoolean(subtree, tvb, pOffset, hf_opcua_MoreNotifications);
- parseNotificationMessage(subtree, tvb, pOffset, "NotificationMessage");
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "AvailableSequenceNumbers", "UInt32", hf_opcua_AvailableSequenceNumbers, parseUInt32, ett_opcua_array_UInt32);
+ parseBoolean(subtree, tvb, pinfo, pOffset, hf_opcua_MoreNotifications);
+ parseNotificationMessage(subtree, tvb, pinfo, pOffset, "NotificationMessage");
/* Array length field ignored: NoOfResults */
- parseArraySimple(subtree, tvb, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode, ett_opcua_array_StatusCode);
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode, ett_opcua_array_StatusCode);
/* Array length field ignored: NoOfDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseRepublishRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseRepublishRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_RepublishRequest, &ti, "RepublishRequest");
- parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
- parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId);
- parseUInt32(subtree, tvb, pOffset, hf_opcua_RetransmitSequenceNumber);
+ parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader");
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_SubscriptionId);
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_RetransmitSequenceNumber);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseRepublishResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseRepublishResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_RepublishResponse, &ti, "RepublishResponse");
- parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
- parseNotificationMessage(subtree, tvb, pOffset, "NotificationMessage");
+ parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader");
+ parseNotificationMessage(subtree, tvb, pinfo, pOffset, "NotificationMessage");
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseTransferSubscriptionsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseTransferSubscriptionsRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_TransferSubscriptionsRequest, &ti, "TransferSubscriptionsRequest");
- parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
+ parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader");
/* Array length field ignored: NoOfSubscriptionIds */
- parseArraySimple(subtree, tvb, pOffset, "SubscriptionIds", "UInt32", hf_opcua_SubscriptionIds, parseUInt32, ett_opcua_array_UInt32);
- parseBoolean(subtree, tvb, pOffset, hf_opcua_SendInitialValues);
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "SubscriptionIds", "UInt32", hf_opcua_SubscriptionIds, parseUInt32, ett_opcua_array_UInt32);
+ parseBoolean(subtree, tvb, pinfo, pOffset, hf_opcua_SendInitialValues);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseTransferSubscriptionsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseTransferSubscriptionsResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_TransferSubscriptionsResponse, &ti, "TransferSubscriptionsResponse");
- parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
+ parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader");
/* Array length field ignored: NoOfResults */
- parseArrayComplex(subtree, tvb, pOffset, "Results", "TransferResult", parseTransferResult, ett_opcua_array_TransferResult);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "Results", "TransferResult", parseTransferResult, ett_opcua_array_TransferResult);
/* Array length field ignored: NoOfDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseDeleteSubscriptionsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseDeleteSubscriptionsRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_DeleteSubscriptionsRequest, &ti, "DeleteSubscriptionsRequest");
- parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
+ parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader");
/* Array length field ignored: NoOfSubscriptionIds */
- parseArraySimple(subtree, tvb, pOffset, "SubscriptionIds", "UInt32", hf_opcua_SubscriptionIds, parseUInt32, ett_opcua_array_UInt32);
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "SubscriptionIds", "UInt32", hf_opcua_SubscriptionIds, parseUInt32, ett_opcua_array_UInt32);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseDeleteSubscriptionsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseDeleteSubscriptionsResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_DeleteSubscriptionsResponse, &ti, "DeleteSubscriptionsResponse");
- parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
+ parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader");
/* Array length field ignored: NoOfResults */
- parseArraySimple(subtree, tvb, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode, ett_opcua_array_StatusCode);
+ parseArraySimple(subtree, tvb, pinfo, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode, ett_opcua_array_StatusCode);
/* Array length field ignored: NoOfDiagnosticInfos */
- parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
+ parseArrayComplex(subtree, tvb, pinfo, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseTestStackRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseTestStackRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_TestStackRequest, &ti, "TestStackRequest");
- parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
- parseUInt32(subtree, tvb, pOffset, hf_opcua_TestId);
- parseInt32(subtree, tvb, pOffset, hf_opcua_Iteration);
- parseVariant(subtree, tvb, pOffset, "Input");
+ parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader");
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_TestId);
+ parseInt32(subtree, tvb, pinfo, pOffset, hf_opcua_Iteration);
+ parseVariant(subtree, tvb, pinfo, pOffset, "Input");
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseTestStackResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseTestStackResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_TestStackResponse, &ti, "TestStackResponse");
- parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
- parseVariant(subtree, tvb, pOffset, "Output");
+ parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader");
+ parseVariant(subtree, tvb, pinfo, pOffset, "Output");
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseTestStackExRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseTestStackExRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_TestStackExRequest, &ti, "TestStackExRequest");
- parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
- parseUInt32(subtree, tvb, pOffset, hf_opcua_TestId);
- parseInt32(subtree, tvb, pOffset, hf_opcua_Iteration);
- parseCompositeTestType(subtree, tvb, pOffset, "Input");
+ parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader");
+ parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_TestId);
+ parseInt32(subtree, tvb, pinfo, pOffset, hf_opcua_Iteration);
+ parseCompositeTestType(subtree, tvb, pinfo, pOffset, "Input");
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseTestStackExResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+void parseTestStackExResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_TestStackExResponse, &ti, "TestStackExResponse");
- parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
- parseCompositeTestType(subtree, tvb, pOffset, "Output");
+ parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader");
+ parseCompositeTestType(subtree, tvb, pinfo, pOffset, "Output");
proto_item_set_end(ti, tvb, *pOffset);
}
diff --git a/plugins/opcua/opcua_serviceparser.h b/plugins/opcua/opcua_serviceparser.h
index df6ab4c2cb..c380613093 100644
--- a/plugins/opcua/opcua_serviceparser.h
+++ b/plugins/opcua/opcua_serviceparser.h
@@ -14,7 +14,7 @@
**
** Description: OpcUa Service Type Parser
**
-** This file was autogenerated on 13.10.2014.
+** This file was autogenerated on 16.10.2014.
** DON'T MODIFY THIS FILE!
** XXX - well, except that you may have to. See the README.
**
@@ -182,83 +182,83 @@ extern gint ett_opcua_array_TestStackExRequest;
extern gint ett_opcua_TestStackExResponse;
extern gint ett_opcua_array_TestStackExResponse;
-void parseServiceFault(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseFindServersRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseFindServersResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseGetEndpointsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseGetEndpointsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseRegisterServerRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseRegisterServerResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseOpenSecureChannelRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseOpenSecureChannelResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseCloseSecureChannelRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseCloseSecureChannelResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseCreateSessionRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseCreateSessionResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseActivateSessionRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseActivateSessionResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseCloseSessionRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseCloseSessionResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseCancelRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseCancelResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseAddNodesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseAddNodesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseAddReferencesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseAddReferencesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseDeleteNodesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseDeleteNodesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseDeleteReferencesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseDeleteReferencesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseBrowseRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseBrowseResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseBrowseNextRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseBrowseNextResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseTranslateBrowsePathsToNodeIdsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseTranslateBrowsePathsToNodeIdsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseRegisterNodesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseRegisterNodesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseUnregisterNodesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseUnregisterNodesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseQueryFirstRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseQueryFirstResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseQueryNextRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseQueryNextResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseReadRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseReadResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseHistoryReadRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseHistoryReadResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseWriteRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseWriteResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseHistoryUpdateRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseHistoryUpdateResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseCallRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseCallResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseCreateMonitoredItemsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseCreateMonitoredItemsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseModifyMonitoredItemsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseModifyMonitoredItemsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseSetMonitoringModeRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseSetMonitoringModeResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseSetTriggeringRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseSetTriggeringResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseDeleteMonitoredItemsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseDeleteMonitoredItemsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseCreateSubscriptionRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseCreateSubscriptionResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseModifySubscriptionRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseModifySubscriptionResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseSetPublishingModeRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseSetPublishingModeResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parsePublishRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parsePublishResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseRepublishRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseRepublishResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseTransferSubscriptionsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseTransferSubscriptionsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseDeleteSubscriptionsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseDeleteSubscriptionsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseTestStackRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseTestStackResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseTestStackExRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-void parseTestStackExResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
+void parseServiceFault(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseFindServersRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseFindServersResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseGetEndpointsRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseGetEndpointsResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseRegisterServerRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseRegisterServerResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseOpenSecureChannelRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseOpenSecureChannelResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseCloseSecureChannelRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseCloseSecureChannelResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseCreateSessionRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseCreateSessionResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseActivateSessionRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseActivateSessionResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseCloseSessionRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseCloseSessionResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseCancelRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseCancelResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseAddNodesRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseAddNodesResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseAddReferencesRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseAddReferencesResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseDeleteNodesRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseDeleteNodesResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseDeleteReferencesRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseDeleteReferencesResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseBrowseRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseBrowseResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseBrowseNextRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseBrowseNextResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseTranslateBrowsePathsToNodeIdsRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseTranslateBrowsePathsToNodeIdsResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseRegisterNodesRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseRegisterNodesResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseUnregisterNodesRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseUnregisterNodesResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseQueryFirstRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseQueryFirstResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseQueryNextRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseQueryNextResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseReadRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseReadResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseHistoryReadRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseHistoryReadResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseWriteRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseWriteResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseHistoryUpdateRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseHistoryUpdateResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseCallRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseCallResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseCreateMonitoredItemsRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseCreateMonitoredItemsResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseModifyMonitoredItemsRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseModifyMonitoredItemsResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseSetMonitoringModeRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseSetMonitoringModeResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseSetTriggeringRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseSetTriggeringResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseDeleteMonitoredItemsRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseDeleteMonitoredItemsResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseCreateSubscriptionRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseCreateSubscriptionResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseModifySubscriptionRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseModifySubscriptionResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseSetPublishingModeRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseSetPublishingModeResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parsePublishRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parsePublishResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseRepublishRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseRepublishResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseTransferSubscriptionsRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseTransferSubscriptionsResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseDeleteSubscriptionsRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseDeleteSubscriptionsResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseTestStackRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseTestStackResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseTestStackExRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+void parseTestStackExResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
void registerServiceTypes(void);
diff --git a/plugins/opcua/opcua_servicetable.c b/plugins/opcua/opcua_servicetable.c
index 1f1150747c..a839046dc5 100644
--- a/plugins/opcua/opcua_servicetable.c
+++ b/plugins/opcua/opcua_servicetable.c
@@ -1,5 +1,5 @@
/******************************************************************************
-** Copyright (C) 2006-2009 ascolab GmbH. All Rights Reserved.
+** Copyright (C) 2006-2014 ascolab GmbH. All Rights Reserved.
** Web: http://www.ascolab.com
**
** This program is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
**
** Description: Service table and service dispatcher.
**
-** This file was autogenerated on 12.02.2013.
+** This file was autogenerated on 16.10.2014.
** DON'T MODIFY THIS FILE!
**
******************************************************************************/
@@ -196,7 +196,7 @@ const value_string g_requesttypes[] = {
};
/** Dispatch all services to a special parser function. */
-void dispatchService(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int ServiceId)
+void dispatchService(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, int ServiceId)
{
int indx = 0;
@@ -204,7 +204,7 @@ void dispatchService(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int Service
{
if (g_arParserTable[indx].iRequestId == ServiceId)
{
- (*g_arParserTable[indx].pParser)(tree, tvb, pOffset);
+ (*g_arParserTable[indx].pParser)(tree, tvb, pinfo, pOffset);
break;
}
indx++;
diff --git a/plugins/opcua/opcua_servicetable.h b/plugins/opcua/opcua_servicetable.h
index 3eb86357d7..870cda9898 100644
--- a/plugins/opcua/opcua_servicetable.h
+++ b/plugins/opcua/opcua_servicetable.h
@@ -16,5 +16,5 @@
**
******************************************************************************/
-void dispatchService(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int ServiceId);
+void dispatchService(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, int ServiceId);
diff --git a/plugins/opcua/opcua_simpletypes.c b/plugins/opcua/opcua_simpletypes.c
index f4897ed423..168491d02c 100644
--- a/plugins/opcua/opcua_simpletypes.c
+++ b/plugins/opcua/opcua_simpletypes.c
@@ -423,70 +423,70 @@ void registerSimpleTypes(int proto)
proto_register_subtree_array(ett, array_length(ett));
}
-proto_item* parseBoolean(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int hfIndex)
+proto_item* parseBoolean(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset, int hfIndex)
{
proto_item *item = proto_tree_add_item(tree, hfIndex, tvb, *pOffset, 1, ENC_LITTLE_ENDIAN);
*pOffset+=1;
return item;
}
-proto_item* parseByte(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int hfIndex)
+proto_item* parseByte(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset, int hfIndex)
{
proto_item *item = proto_tree_add_item(tree, hfIndex, tvb, *pOffset, 1, ENC_LITTLE_ENDIAN);
*pOffset+=1;
return item;
}
-proto_item* parseSByte(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int hfIndex)
+proto_item* parseSByte(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset, int hfIndex)
{
proto_item *item = proto_tree_add_item(tree, hfIndex, tvb, *pOffset, 1, ENC_LITTLE_ENDIAN);
*pOffset+=1;
return item;
}
-proto_item* parseUInt16(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int hfIndex)
+proto_item* parseUInt16(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset, int hfIndex)
{
proto_item *item = proto_tree_add_item(tree, hfIndex, tvb, *pOffset, 2, ENC_LITTLE_ENDIAN);
*pOffset+=2;
return item;
}
-proto_item* parseInt16(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int hfIndex)
+proto_item* parseInt16(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset, int hfIndex)
{
proto_item *item = proto_tree_add_item(tree, hfIndex, tvb, *pOffset, 2, ENC_LITTLE_ENDIAN);
*pOffset+=2;
return item;
}
-proto_item* parseUInt32(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int hfIndex)
+proto_item* parseUInt32(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset, int hfIndex)
{
proto_item *item = proto_tree_add_item(tree, hfIndex, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN);
*pOffset+=4;
return item;
}
-proto_item* parseInt32(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int hfIndex)
+proto_item* parseInt32(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset, int hfIndex)
{
proto_item *item = proto_tree_add_item(tree, hfIndex, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN);
*pOffset+=4;
return item;
}
-proto_item* parseUInt64(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int hfIndex)
+proto_item* parseUInt64(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset, int hfIndex)
{
proto_item *item = proto_tree_add_item(tree, hfIndex, tvb, *pOffset, 8, ENC_LITTLE_ENDIAN);
*pOffset+=8;
return item;
}
-proto_item* parseInt64(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int hfIndex)
+proto_item* parseInt64(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset, int hfIndex)
{
proto_item *item = proto_tree_add_item(tree, hfIndex, tvb, *pOffset, 8, ENC_LITTLE_ENDIAN);
*pOffset+=8;
return item;
}
-proto_item* parseString(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int hfIndex)
+proto_item* parseString(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset, int hfIndex)
{
proto_item *item = NULL;
char *szValue;
@@ -523,7 +523,7 @@ proto_item* parseString(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int hfIn
return item;
}
-proto_item* parseStatusCode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int hfIndex)
+proto_item* parseStatusCode(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset, int hfIndex)
{
proto_item *item = NULL;
guint32 uStatusCode = 0;
@@ -573,7 +573,7 @@ proto_item* parseStatusCode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int
return item;
}
-void parseLocalizedText(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseLocalizedText(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
static const int *loctext_mask[] = {&hf_opcua_loctext_mask_localeflag,
&hf_opcua_loctext_mask_textflag,
@@ -593,26 +593,26 @@ void parseLocalizedText(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const ch
if (EncodingMask & LOCALIZEDTEXT_ENCODINGBYTE_LOCALE)
{
- parseString(subtree, tvb, &iOffset, hf_opcua_localizedtext_locale);
+ parseString(subtree, tvb, pinfo, &iOffset, hf_opcua_localizedtext_locale);
}
if (EncodingMask & LOCALIZEDTEXT_ENCODINGBYTE_TEXT)
{
- parseString(subtree, tvb, &iOffset, hf_opcua_localizedtext_text);
+ parseString(subtree, tvb, pinfo, &iOffset, hf_opcua_localizedtext_text);
}
proto_item_set_end(ti, tvb, iOffset);
*pOffset = iOffset;
}
-proto_item* parseGuid(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int hfIndex)
+proto_item* parseGuid(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset, int hfIndex)
{
proto_item *item = proto_tree_add_item(tree, hfIndex, tvb, *pOffset, GUID_LEN, ENC_NA);
*pOffset+=GUID_LEN;
return item;
}
-proto_item* parseByteString(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int hfIndex)
+proto_item* parseByteString(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset, int hfIndex)
{
proto_item *item = NULL;
char *szValue;
@@ -649,33 +649,33 @@ proto_item* parseByteString(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int
return item;
}
-proto_item* parseXmlElement(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int hfIndex)
+proto_item* parseXmlElement(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, int hfIndex)
{
- return parseByteString(tree, tvb, pOffset, hfIndex);
+ return parseByteString(tree, tvb, pinfo, pOffset, hfIndex);
}
-proto_item* parseFloat(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int hfIndex)
+proto_item* parseFloat(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset, int hfIndex)
{
proto_item *item = proto_tree_add_item(tree, hfIndex, tvb, *pOffset, (int)sizeof(gfloat), ENC_LITTLE_ENDIAN);
*pOffset += (int)sizeof(gfloat);
return item;
}
-proto_item* parseDouble(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int hfIndex)
+proto_item* parseDouble(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset, int hfIndex)
{
proto_item *item = proto_tree_add_item(tree, hfIndex, tvb, *pOffset, (int)sizeof(gdouble), ENC_LITTLE_ENDIAN);
*pOffset += (int)sizeof(gdouble);
return item;
}
-proto_item* parseDateTime(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int hfIndex)
+proto_item* parseDateTime(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset, int hfIndex)
{
proto_item *item = NULL;
*pOffset = dissect_nt_64bit_time_ex(tvb, tree, *pOffset, hfIndex, &item, FALSE);
return item;
}
-void parseDiagnosticInfo(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseDiagnosticInfo(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
static const int *diag_mask[] = {&hf_opcua_diag_mask_symbolicflag,
&hf_opcua_diag_mask_namespaceflag,
@@ -700,50 +700,50 @@ void parseDiagnosticInfo(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const c
if (EncodingMask & DIAGNOSTICINFO_ENCODINGMASK_SYMBOLICID_FLAG)
{
- parseInt32(subtree, tvb, &iOffset, hf_opcua_diag_symbolicid);
+ parseInt32(subtree, tvb, pinfo, &iOffset, hf_opcua_diag_symbolicid);
}
if (EncodingMask & DIAGNOSTICINFO_ENCODINGMASK_NAMESPACE_FLAG)
{
- parseInt32(subtree, tvb, &iOffset, hf_opcua_diag_namespace);
+ parseInt32(subtree, tvb, pinfo, &iOffset, hf_opcua_diag_namespace);
}
if (EncodingMask & DIAGNOSTICINFO_ENCODINGMASK_LOCALIZEDTEXT_FLAG)
{
- parseInt32(subtree, tvb, &iOffset, hf_opcua_diag_localizedtext);
+ parseInt32(subtree, tvb, pinfo, &iOffset, hf_opcua_diag_localizedtext);
}
if (EncodingMask & DIAGNOSTICINFO_ENCODINGMASK_LOCALE_FLAG)
{
- parseInt32(subtree, tvb, &iOffset, hf_opcua_diag_locale);
+ parseInt32(subtree, tvb, pinfo, &iOffset, hf_opcua_diag_locale);
}
if (EncodingMask & DIAGNOSTICINFO_ENCODINGMASK_ADDITIONALINFO_FLAG)
{
- parseString(subtree, tvb, &iOffset, hf_opcua_diag_additionalinfo);
+ parseString(subtree, tvb, pinfo, &iOffset, hf_opcua_diag_additionalinfo);
}
if (EncodingMask & DIAGNOSTICINFO_ENCODINGMASK_INNERSTATUSCODE_FLAG)
{
- parseStatusCode(subtree, tvb, &iOffset, hf_opcua_diag_innerstatuscode);
+ parseStatusCode(subtree, tvb, pinfo, &iOffset, hf_opcua_diag_innerstatuscode);
}
if (EncodingMask & DIAGNOSTICINFO_ENCODINGMASK_INNERDIAGNOSTICINFO_FLAG)
{
- parseDiagnosticInfo(subtree, tvb, &iOffset, "Inner DiagnosticInfo");
+ parseDiagnosticInfo(subtree, tvb, pinfo, &iOffset, "Inner DiagnosticInfo");
}
proto_item_set_end(ti, tvb, iOffset);
*pOffset = iOffset;
}
-void parseQualifiedName(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseQualifiedName(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1,
ett_opcua_qualifiedname, &ti, "%s: QualifiedName", szFieldName);
- parseUInt16(subtree, tvb, pOffset, hf_opcua_qualifiedname_id);
- parseString(subtree, tvb, pOffset, hf_opcua_qualifiedname_name);
+ parseUInt16(subtree, tvb, pinfo, pOffset, hf_opcua_qualifiedname_id);
+ parseString(subtree, tvb, pinfo, pOffset, hf_opcua_qualifiedname_name);
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseDataValue(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseDataValue(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
static const int *datavalue_mask[] = {&hf_opcua_datavalue_mask_valueflag,
&hf_opcua_datavalue_mask_statuscodeflag,
@@ -765,34 +765,34 @@ void parseDataValue(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *
if (EncodingMask & DATAVALUE_ENCODINGBYTE_VALUE)
{
- parseVariant(subtree, tvb, &iOffset, "Value");
+ parseVariant(subtree, tvb, pinfo, &iOffset, "Value");
}
if (EncodingMask & DATAVALUE_ENCODINGBYTE_STATUSCODE)
{
- parseStatusCode(subtree, tvb, &iOffset, hf_opcua_StatusCode);
+ parseStatusCode(subtree, tvb, pinfo, &iOffset, hf_opcua_StatusCode);
}
if (EncodingMask & DATAVALUE_ENCODINGBYTE_SOURCETIMESTAMP)
{
- parseDateTime(subtree, tvb, &iOffset, hf_opcua_SourceTimestamp);
+ parseDateTime(subtree, tvb, pinfo, &iOffset, hf_opcua_SourceTimestamp);
}
if (EncodingMask & DATAVALUE_ENCODINGBYTE_SOURCEPICOSECONDS)
{
- parseUInt16(subtree, tvb, &iOffset, hf_opcua_SourcePicoseconds);
+ parseUInt16(subtree, tvb, pinfo, &iOffset, hf_opcua_SourcePicoseconds);
}
if (EncodingMask & DATAVALUE_ENCODINGBYTE_SERVERTIMESTAMP)
{
- parseDateTime(subtree, tvb, &iOffset, hf_opcua_ServerTimestamp);
+ parseDateTime(subtree, tvb, pinfo, &iOffset, hf_opcua_ServerTimestamp);
}
if (EncodingMask & DATAVALUE_ENCODINGBYTE_SERVERPICOSECONDS)
{
- parseUInt16(subtree, tvb, &iOffset, hf_opcua_ServerPicoseconds);
+ parseUInt16(subtree, tvb, pinfo, &iOffset, hf_opcua_ServerPicoseconds);
}
proto_item_set_end(ti, tvb, iOffset);
*pOffset = iOffset;
}
-void parseVariant(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseVariant(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1,
@@ -811,31 +811,31 @@ void parseVariant(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *sz
switch(EncodingMask & 0x3f)
{
case OpcUaType_Null: break;
- case OpcUaType_Boolean: parseArraySimple(subtree, tvb, &iOffset, "Boolean", "Boolean", hf_opcua_Boolean, parseBoolean, ett_opcua_array_Boolean); break;
- case OpcUaType_SByte: parseArraySimple(subtree, tvb, &iOffset, "SByte", "SByte", hf_opcua_SByte, parseSByte, ett_opcua_array_SByte); break;
- case OpcUaType_Byte: parseArraySimple(subtree, tvb, &iOffset, "Byte", "Byte", hf_opcua_Byte, parseByte, ett_opcua_array_Byte); break;
- case OpcUaType_Int16: parseArraySimple(subtree, tvb, &iOffset, "Int16", "Int16", hf_opcua_Int16, parseInt16, ett_opcua_array_Int16); break;
- case OpcUaType_UInt16: parseArraySimple(subtree, tvb, &iOffset, "UInt16", "UInt16", hf_opcua_UInt16, parseUInt16, ett_opcua_array_UInt16); break;
- case OpcUaType_Int32: parseArraySimple(subtree, tvb, &iOffset, "Int32", "Int32", hf_opcua_Int32, parseInt32, ett_opcua_array_Int32); break;
- case OpcUaType_UInt32: parseArraySimple(subtree, tvb, &iOffset, "UInt32", "UInt32", hf_opcua_UInt32, parseUInt32, ett_opcua_array_UInt32); break;
- case OpcUaType_Int64: parseArraySimple(subtree, tvb, &iOffset, "Int64", "Int64", hf_opcua_Int64, parseInt64, ett_opcua_array_Int64); break;
- case OpcUaType_UInt64: parseArraySimple(subtree, tvb, &iOffset, "UInt64", "UInt64", hf_opcua_UInt64, parseUInt64, ett_opcua_array_UInt64); break;
- case OpcUaType_Float: parseArraySimple(subtree, tvb, &iOffset, "Float", "Float", hf_opcua_Float, parseFloat, ett_opcua_array_Float); break;
- case OpcUaType_Double: parseArraySimple(subtree, tvb, &iOffset, "Double", "Double", hf_opcua_Double, parseDouble, ett_opcua_array_Double); break;
- case OpcUaType_String: parseArraySimple(subtree, tvb, &iOffset, "String", "String", hf_opcua_String, parseString, ett_opcua_array_String); break;
- case OpcUaType_DateTime: parseArraySimple(subtree, tvb, &iOffset, "DateTime", "DateTime", hf_opcua_DateTime, parseDateTime, ett_opcua_array_DateTime); break;
- case OpcUaType_Guid: parseArraySimple(subtree, tvb, &iOffset, "Guid", "Guid", hf_opcua_Guid, parseGuid, ett_opcua_array_Guid); break;
- case OpcUaType_ByteString: parseArraySimple(subtree, tvb, &iOffset, "ByteString", "ByteString", hf_opcua_ByteString, parseByteString, ett_opcua_array_ByteString); break;
- case OpcUaType_XmlElement: parseArraySimple(subtree, tvb, &iOffset, "XmlElement", "XmlElement", hf_opcua_XmlElement, parseXmlElement, ett_opcua_array_XmlElement); break;
- case OpcUaType_NodeId: parseArrayComplex(subtree, tvb, &iOffset, "NodeId", "NodeId", parseNodeId, ett_opcua_array_NodeId); break;
- case OpcUaType_ExpandedNodeId: parseArrayComplex(subtree, tvb, &iOffset, "ExpandedNodeId", "ExpandedNodeId", parseExpandedNodeId, ett_opcua_array_ExpandedNodeId); break;
- case OpcUaType_StatusCode: parseArraySimple(subtree, tvb, &iOffset, "StatusCode", "StatusCode", hf_opcua_StatusCode, parseStatusCode, ett_opcua_array_StatusCode); break;
- case OpcUaType_DiagnosticInfo: parseArrayComplex(subtree, tvb, &iOffset, "DiagnosticInfo", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); break;
- case OpcUaType_QualifiedName: parseArrayComplex(subtree, tvb, &iOffset, "QualifiedName", "QualifiedName", parseQualifiedName, ett_opcua_array_QualifiedName); break;
- case OpcUaType_LocalizedText: parseArrayComplex(subtree, tvb, &iOffset, "LocalizedText", "LocalizedText", parseLocalizedText, ett_opcua_array_LocalizedText); break;
- case OpcUaType_ExtensionObject: parseArrayComplex(subtree, tvb, &iOffset, "ExtensionObject", "ExtensionObject", parseExtensionObject, ett_opcua_array_ExtensionObject); break;
- case OpcUaType_DataValue: parseArrayComplex(subtree, tvb, &iOffset, "DataValue", "DataValue", parseDataValue, ett_opcua_array_DataValue); break;
- case OpcUaType_Variant: parseArrayComplex(subtree, tvb, &iOffset, "Variant", "Variant", parseVariant, ett_opcua_array_Variant); break;
+ case OpcUaType_Boolean: parseArraySimple(subtree, tvb, pinfo, &iOffset, "Boolean", "Boolean", hf_opcua_Boolean, parseBoolean, ett_opcua_array_Boolean); break;
+ case OpcUaType_SByte: parseArraySimple(subtree, tvb, pinfo, &iOffset, "SByte", "SByte", hf_opcua_SByte, parseSByte, ett_opcua_array_SByte); break;
+ case OpcUaType_Byte: parseArraySimple(subtree, tvb, pinfo, &iOffset, "Byte", "Byte", hf_opcua_Byte, parseByte, ett_opcua_array_Byte); break;
+ case OpcUaType_Int16: parseArraySimple(subtree, tvb, pinfo, &iOffset, "Int16", "Int16", hf_opcua_Int16, parseInt16, ett_opcua_array_Int16); break;
+ case OpcUaType_UInt16: parseArraySimple(subtree, tvb, pinfo, &iOffset, "UInt16", "UInt16", hf_opcua_UInt16, parseUInt16, ett_opcua_array_UInt16); break;
+ case OpcUaType_Int32: parseArraySimple(subtree, tvb, pinfo, &iOffset, "Int32", "Int32", hf_opcua_Int32, parseInt32, ett_opcua_array_Int32); break;
+ case OpcUaType_UInt32: parseArraySimple(subtree, tvb, pinfo, &iOffset, "UInt32", "UInt32", hf_opcua_UInt32, parseUInt32, ett_opcua_array_UInt32); break;
+ case OpcUaType_Int64: parseArraySimple(subtree, tvb, pinfo, &iOffset, "Int64", "Int64", hf_opcua_Int64, parseInt64, ett_opcua_array_Int64); break;
+ case OpcUaType_UInt64: parseArraySimple(subtree, tvb, pinfo, &iOffset, "UInt64", "UInt64", hf_opcua_UInt64, parseUInt64, ett_opcua_array_UInt64); break;
+ case OpcUaType_Float: parseArraySimple(subtree, tvb, pinfo, &iOffset, "Float", "Float", hf_opcua_Float, parseFloat, ett_opcua_array_Float); break;
+ case OpcUaType_Double: parseArraySimple(subtree, tvb, pinfo, &iOffset, "Double", "Double", hf_opcua_Double, parseDouble, ett_opcua_array_Double); break;
+ case OpcUaType_String: parseArraySimple(subtree, tvb, pinfo, &iOffset, "String", "String", hf_opcua_String, parseString, ett_opcua_array_String); break;
+ case OpcUaType_DateTime: parseArraySimple(subtree, tvb, pinfo, &iOffset, "DateTime", "DateTime", hf_opcua_DateTime, parseDateTime, ett_opcua_array_DateTime); break;
+ case OpcUaType_Guid: parseArraySimple(subtree, tvb, pinfo, &iOffset, "Guid", "Guid", hf_opcua_Guid, parseGuid, ett_opcua_array_Guid); break;
+ case OpcUaType_ByteString: parseArraySimple(subtree, tvb, pinfo, &iOffset, "ByteString", "ByteString", hf_opcua_ByteString, parseByteString, ett_opcua_array_ByteString); break;
+ case OpcUaType_XmlElement: parseArraySimple(subtree, tvb, pinfo, &iOffset, "XmlElement", "XmlElement", hf_opcua_XmlElement, parseXmlElement, ett_opcua_array_XmlElement); break;
+ case OpcUaType_NodeId: parseArrayComplex(subtree, tvb, pinfo, &iOffset, "NodeId", "NodeId", parseNodeId, ett_opcua_array_NodeId); break;
+ case OpcUaType_ExpandedNodeId: parseArrayComplex(subtree, tvb, pinfo, &iOffset, "ExpandedNodeId", "ExpandedNodeId", parseExpandedNodeId, ett_opcua_array_ExpandedNodeId); break;
+ case OpcUaType_StatusCode: parseArraySimple(subtree, tvb, pinfo, &iOffset, "StatusCode", "StatusCode", hf_opcua_StatusCode, parseStatusCode, ett_opcua_array_StatusCode); break;
+ case OpcUaType_DiagnosticInfo: parseArrayComplex(subtree, tvb, pinfo, &iOffset, "DiagnosticInfo", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); break;
+ case OpcUaType_QualifiedName: parseArrayComplex(subtree, tvb, pinfo, &iOffset, "QualifiedName", "QualifiedName", parseQualifiedName, ett_opcua_array_QualifiedName); break;
+ case OpcUaType_LocalizedText: parseArrayComplex(subtree, tvb, pinfo, &iOffset, "LocalizedText", "LocalizedText", parseLocalizedText, ett_opcua_array_LocalizedText); break;
+ case OpcUaType_ExtensionObject: parseArrayComplex(subtree, tvb, pinfo, &iOffset, "ExtensionObject", "ExtensionObject", parseExtensionObject, ett_opcua_array_ExtensionObject); break;
+ case OpcUaType_DataValue: parseArrayComplex(subtree, tvb, pinfo, &iOffset, "DataValue", "DataValue", parseDataValue, ett_opcua_array_DataValue); break;
+ case OpcUaType_Variant: parseArrayComplex(subtree, tvb, pinfo, &iOffset, "Variant", "Variant", parseVariant, ett_opcua_array_Variant); break;
}
if (EncodingMask & VARIANT_ARRAYDIMENSIONS)
@@ -860,7 +860,7 @@ void parseVariant(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *sz
iOffset += 4;
for (i=0; i<ArrayDimensions; i++)
{
- parseInt32(subtree_2, tvb, &iOffset, hf_opcua_Int32);
+ parseInt32(subtree_2, tvb, pinfo, &iOffset, hf_opcua_Int32);
}
proto_item_set_end(ti_2, tvb, iOffset);
}
@@ -871,31 +871,31 @@ void parseVariant(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *sz
switch(EncodingMask & 0x3f)
{
case OpcUaType_Null: break;
- case OpcUaType_Boolean: parseBoolean(subtree, tvb, &iOffset, hf_opcua_Boolean); break;
- case OpcUaType_SByte: parseSByte(subtree, tvb, &iOffset, hf_opcua_SByte); break;
- case OpcUaType_Byte: parseByte(subtree, tvb, &iOffset, hf_opcua_Byte); break;
- case OpcUaType_Int16: parseInt16(subtree, tvb, &iOffset, hf_opcua_Int16); break;
- case OpcUaType_UInt16: parseUInt16(subtree, tvb, &iOffset, hf_opcua_UInt16); break;
- case OpcUaType_Int32: parseInt32(subtree, tvb, &iOffset, hf_opcua_Int32); break;
- case OpcUaType_UInt32: parseUInt32(subtree, tvb, &iOffset, hf_opcua_UInt32); break;
- case OpcUaType_Int64: parseInt64(subtree, tvb, &iOffset, hf_opcua_Int64); break;
- case OpcUaType_UInt64: parseUInt64(subtree, tvb, &iOffset, hf_opcua_UInt64); break;
- case OpcUaType_Float: parseFloat(subtree, tvb, &iOffset, hf_opcua_Float); break;
- case OpcUaType_Double: parseDouble(subtree, tvb, &iOffset, hf_opcua_Double); break;
- case OpcUaType_String: parseString(subtree, tvb, &iOffset, hf_opcua_String); break;
- case OpcUaType_DateTime: parseDateTime(subtree, tvb, &iOffset, hf_opcua_DateTime); break;
- case OpcUaType_Guid: parseGuid(subtree, tvb, &iOffset, hf_opcua_Guid); break;
- case OpcUaType_ByteString: parseByteString(subtree, tvb, &iOffset, hf_opcua_ByteString); break;
- case OpcUaType_XmlElement: parseXmlElement(subtree, tvb, &iOffset, hf_opcua_XmlElement); break;
- case OpcUaType_NodeId: parseNodeId(subtree, tvb, &iOffset, "Value"); break;
- case OpcUaType_ExpandedNodeId: parseExpandedNodeId(subtree, tvb, &iOffset, "Value"); break;
- case OpcUaType_StatusCode: parseStatusCode(subtree, tvb, &iOffset, hf_opcua_StatusCode); break;
- case OpcUaType_DiagnosticInfo: parseDiagnosticInfo(subtree, tvb, &iOffset, "Value"); break;
- case OpcUaType_QualifiedName: parseQualifiedName(subtree, tvb, &iOffset, "Value"); break;
- case OpcUaType_LocalizedText: parseLocalizedText(subtree, tvb, &iOffset, "Value"); break;
- case OpcUaType_ExtensionObject: parseExtensionObject(subtree, tvb, &iOffset, "Value"); break;
- case OpcUaType_DataValue: parseDataValue(subtree, tvb, &iOffset, "Value"); break;
- case OpcUaType_Variant: parseVariant(subtree, tvb, &iOffset, "Value"); break;
+ case OpcUaType_Boolean: parseBoolean(subtree, tvb, pinfo, &iOffset, hf_opcua_Boolean); break;
+ case OpcUaType_SByte: parseSByte(subtree, tvb, pinfo, &iOffset, hf_opcua_SByte); break;
+ case OpcUaType_Byte: parseByte(subtree, tvb, pinfo, &iOffset, hf_opcua_Byte); break;
+ case OpcUaType_Int16: parseInt16(subtree, tvb, pinfo, &iOffset, hf_opcua_Int16); break;
+ case OpcUaType_UInt16: parseUInt16(subtree, tvb, pinfo, &iOffset, hf_opcua_UInt16); break;
+ case OpcUaType_Int32: parseInt32(subtree, tvb, pinfo, &iOffset, hf_opcua_Int32); break;
+ case OpcUaType_UInt32: parseUInt32(subtree, tvb, pinfo, &iOffset, hf_opcua_UInt32); break;
+ case OpcUaType_Int64: parseInt64(subtree, tvb, pinfo, &iOffset, hf_opcua_Int64); break;
+ case OpcUaType_UInt64: parseUInt64(subtree, tvb, pinfo, &iOffset, hf_opcua_UInt64); break;
+ case OpcUaType_Float: parseFloat(subtree, tvb, pinfo, &iOffset, hf_opcua_Float); break;
+ case OpcUaType_Double: parseDouble(subtree, tvb, pinfo, &iOffset, hf_opcua_Double); break;
+ case OpcUaType_String: parseString(subtree, tvb, pinfo, &iOffset, hf_opcua_String); break;
+ case OpcUaType_DateTime: parseDateTime(subtree, tvb, pinfo, &iOffset, hf_opcua_DateTime); break;
+ case OpcUaType_Guid: parseGuid(subtree, tvb, pinfo, &iOffset, hf_opcua_Guid); break;
+ case OpcUaType_ByteString: parseByteString(subtree, tvb, pinfo, &iOffset, hf_opcua_ByteString); break;
+ case OpcUaType_XmlElement: parseXmlElement(subtree, tvb, pinfo, &iOffset, hf_opcua_XmlElement); break;
+ case OpcUaType_NodeId: parseNodeId(subtree, tvb, pinfo, &iOffset, "Value"); break;
+ case OpcUaType_ExpandedNodeId: parseExpandedNodeId(subtree, tvb, pinfo, &iOffset, "Value"); break;
+ case OpcUaType_StatusCode: parseStatusCode(subtree, tvb, pinfo, &iOffset, hf_opcua_StatusCode); break;
+ case OpcUaType_DiagnosticInfo: parseDiagnosticInfo(subtree, tvb, pinfo, &iOffset, "Value"); break;
+ case OpcUaType_QualifiedName: parseQualifiedName(subtree, tvb, pinfo, &iOffset, "Value"); break;
+ case OpcUaType_LocalizedText: parseLocalizedText(subtree, tvb, pinfo, &iOffset, "Value"); break;
+ case OpcUaType_ExtensionObject: parseExtensionObject(subtree, tvb, pinfo, &iOffset, "Value"); break;
+ case OpcUaType_DataValue: parseDataValue(subtree, tvb, pinfo, &iOffset, "Value"); break;
+ case OpcUaType_Variant: parseVariant(subtree, tvb, pinfo, &iOffset, "Value"); break;
}
}
@@ -907,7 +907,7 @@ void parseVariant(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *sz
* All arrays have one 4 byte signed integer length information,
* followed by n data elements.
*/
-void parseArraySimple(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName, const char *szTypeName, int hfIndex, fctSimpleTypeParser pParserFunction, const gint idx)
+void parseArraySimple(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName, const char *szTypeName, int hfIndex, fctSimpleTypeParser pParserFunction, const gint idx)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, idx, &ti, "%s: Array of %s", szFieldName, szTypeName);
@@ -929,7 +929,7 @@ void parseArraySimple(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char
*pOffset += 4;
for (i=0; i<iLen; i++)
{
- proto_item *arrayItem = (*pParserFunction)(subtree, tvb, pOffset, hfIndex);
+ proto_item *arrayItem = (*pParserFunction)(subtree, tvb, pinfo, pOffset, hfIndex);
if (arrayItem != NULL)
{
proto_item_prepend_text(arrayItem, "[%i]: ", i);
@@ -942,7 +942,7 @@ void parseArraySimple(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char
* All arrays have one 4 byte signed integer length information,
* followed by n data elements.
*/
-void parseArrayEnum(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName, const char *szTypeName, fctEnumParser pParserFunction, const gint idx)
+void parseArrayEnum(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName, const char *szTypeName, fctEnumParser pParserFunction, const gint idx)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, idx, &ti, "%s: Array of %s", szFieldName, szTypeName);
@@ -964,7 +964,7 @@ void parseArrayEnum(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *
*pOffset += 4;
for (i=0; i<iLen; i++)
{
- (*pParserFunction)(subtree, tvb, pOffset);
+ (*pParserFunction)(subtree, tvb, pinfo, pOffset);
}
proto_item_set_end(ti, tvb, *pOffset);
}
@@ -973,7 +973,7 @@ void parseArrayEnum(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *
* All arrays have one 4 byte signed integer length information,
* followed by n data elements.
*/
-void parseArrayComplex(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName, const char *szTypeName, fctComplexTypeParser pParserFunction, const gint idx)
+void parseArrayComplex(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName, const char *szTypeName, fctComplexTypeParser pParserFunction, const gint idx)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, idx, &ti, "%s: Array of %s", szFieldName, szTypeName);
@@ -997,12 +997,12 @@ void parseArrayComplex(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const cha
{
char szNum[20];
g_snprintf(szNum, 20, "[%i]", i);
- (*pParserFunction)(subtree, tvb, pOffset, szNum);
+ (*pParserFunction)(subtree, tvb, pinfo, pOffset, szNum);
}
proto_item_set_end(ti, tvb, *pOffset);
}
-void parseNodeId(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseNodeId(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1, ett_opcua_nodeid, &ti, "%s: NodeId", szFieldName);
@@ -1034,17 +1034,17 @@ void parseNodeId(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szF
case 0x03: /* string */
proto_tree_add_item(subtree, hf_opcua_nodeid_nsindex, tvb, iOffset, 2, ENC_LITTLE_ENDIAN);
iOffset+=2;
- parseString(subtree, tvb, &iOffset, hf_opcua_nodeid_string);
+ parseString(subtree, tvb, pinfo, &iOffset, hf_opcua_nodeid_string);
break;
case 0x04: /* guid */
proto_tree_add_item(subtree, hf_opcua_nodeid_nsindex, tvb, iOffset, 2, ENC_LITTLE_ENDIAN);
iOffset+=2;
- parseGuid(subtree, tvb, &iOffset, hf_opcua_nodeid_guid);
+ parseGuid(subtree, tvb, pinfo, &iOffset, hf_opcua_nodeid_guid);
break;
case 0x05: /* byte string */
proto_tree_add_item(subtree, hf_opcua_nodeid_nsindex, tvb, iOffset, 2, ENC_LITTLE_ENDIAN);
iOffset+=2;
- parseByteString(subtree, tvb, &iOffset, hf_opcua_nodeid_bytestring);
+ parseByteString(subtree, tvb, pinfo, &iOffset, hf_opcua_nodeid_bytestring);
break;
};
@@ -1052,7 +1052,7 @@ void parseNodeId(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szF
*pOffset = iOffset;
}
-void parseExtensionObject(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseExtensionObject(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
static const int *extobj_mask[] = {&hf_opcua_extobj_mask_binbodyflag,
&hf_opcua_extobj_mask_xmlbodyflag,
@@ -1069,7 +1069,7 @@ void parseExtensionObject(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const
/* add nodeid subtree */
TypeId = getExtensionObjectType(tvb, &iOffset);
- parseExpandedNodeId(extobj_tree, tvb, &iOffset, "TypeId");
+ parseExpandedNodeId(extobj_tree, tvb, pinfo, &iOffset, "TypeId");
/* parse encoding mask */
EncodingMask = tvb_get_guint8(tvb, iOffset);
@@ -1078,14 +1078,14 @@ void parseExtensionObject(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const
if (EncodingMask & EXTOBJ_ENCODINGMASK_BINBODY_FLAG) /* has binary body ? */
{
- dispatchExtensionObjectType(extobj_tree, tvb, &iOffset, TypeId);
+ dispatchExtensionObjectType(extobj_tree, tvb, pinfo, &iOffset, TypeId);
}
proto_item_set_end(ti, tvb, iOffset);
*pOffset = iOffset;
}
-void parseExpandedNodeId(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName)
+void parseExpandedNodeId(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, *pOffset, -1,
@@ -1120,27 +1120,27 @@ void parseExpandedNodeId(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const c
case 0x03: /* string */
proto_tree_add_item(subtree, hf_opcua_nodeid_nsindex, tvb, iOffset, 2, ENC_LITTLE_ENDIAN);
iOffset+=2;
- parseString(subtree, tvb, &iOffset, hf_opcua_nodeid_string);
+ parseString(subtree, tvb, pinfo, &iOffset, hf_opcua_nodeid_string);
break;
case 0x04: /* guid */
proto_tree_add_item(subtree, hf_opcua_nodeid_nsindex, tvb, iOffset, 2, ENC_LITTLE_ENDIAN);
iOffset+=2;
- parseGuid(subtree, tvb, &iOffset, hf_opcua_nodeid_guid);
+ parseGuid(subtree, tvb, pinfo, &iOffset, hf_opcua_nodeid_guid);
break;
case 0x05: /* byte string */
proto_tree_add_item(subtree, hf_opcua_nodeid_nsindex, tvb, iOffset, 2, ENC_LITTLE_ENDIAN);
iOffset+=2;
- parseByteString(subtree, tvb, &iOffset, hf_opcua_nodeid_bytestring);
+ parseByteString(subtree, tvb, pinfo, &iOffset, hf_opcua_nodeid_bytestring);
break;
};
if (EncodingMask & NODEID_NAMESPACEURIFLAG)
{
- parseString(subtree, tvb, &iOffset, hf_opcua_NamespaceUri);
+ parseString(subtree, tvb, pinfo, &iOffset, hf_opcua_NamespaceUri);
}
if (EncodingMask & NODEID_SERVERINDEXFLAG)
{
- parseUInt32(subtree, tvb, &iOffset, hf_opcua_ServerIndex);
+ parseUInt32(subtree, tvb, pinfo, &iOffset, hf_opcua_ServerIndex);
}
proto_item_set_end(ti, tvb, iOffset);
diff --git a/plugins/opcua/opcua_simpletypes.h b/plugins/opcua/opcua_simpletypes.h
index 2ff583a78f..486f5a9c92 100644
--- a/plugins/opcua/opcua_simpletypes.h
+++ b/plugins/opcua/opcua_simpletypes.h
@@ -49,37 +49,37 @@ extern gint ett_opcua_array_DataValue;
extern gint ett_opcua_array_Variant;
/* simple types */
-proto_item* parseBoolean(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int hfIndex);
-proto_item* parseByte(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int hfIndex);
-proto_item* parseSByte(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int hfIndex);
-proto_item* parseUInt16(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int hfIndex);
-proto_item* parseInt16(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int hfIndex);
-proto_item* parseUInt32(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int hfIndex);
-proto_item* parseInt32(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int hfIndex);
-proto_item* parseUInt64(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int hfIndex);
-proto_item* parseInt64(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int hfIndex);
-proto_item* parseString(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int hfIndex);
-proto_item* parseGuid(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int hfIndex);
-proto_item* parseByteString(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int hfIndex);
-proto_item* parseXmlElement(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int hfIndex);
-proto_item* parseFloat(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int hfIndex);
-proto_item* parseDouble(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int hfIndex);
-proto_item* parseDateTime(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int hfIndex);
-proto_item* parseStatusCode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int hfIndex);
+proto_item* parseBoolean(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, int hfIndex);
+proto_item* parseByte(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, int hfIndex);
+proto_item* parseSByte(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, int hfIndex);
+proto_item* parseUInt16(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, int hfIndex);
+proto_item* parseInt16(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, int hfIndex);
+proto_item* parseUInt32(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, int hfIndex);
+proto_item* parseInt32(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, int hfIndex);
+proto_item* parseUInt64(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, int hfIndex);
+proto_item* parseInt64(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, int hfIndex);
+proto_item* parseString(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, int hfIndex);
+proto_item* parseGuid(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, int hfIndex);
+proto_item* parseByteString(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, int hfIndex);
+proto_item* parseXmlElement(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, int hfIndex);
+proto_item* parseFloat(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, int hfIndex);
+proto_item* parseDouble(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, int hfIndex);
+proto_item* parseDateTime(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, int hfIndex);
+proto_item* parseStatusCode(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, int hfIndex);
/* complex types */
-void parseLocalizedText(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseNodeId(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseDiagnosticInfo(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseExtensionObject(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseQualifiedName(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseDataValue(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseVariant(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseExpandedNodeId(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName);
-void parseArraySimple(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName, const char *szTypeName, int hfIndex, fctSimpleTypeParser pParserFunction, const gint idx);
-void parseArrayEnum(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName, const char *szTypeName, fctEnumParser pParserFunction, const gint idx);
-void parseArrayComplex(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName, const char *szTypeName, fctComplexTypeParser pParserFunction, const gint idx);
+void parseLocalizedText(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseNodeId(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseDiagnosticInfo(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseExtensionObject(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseQualifiedName(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseDataValue(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseVariant(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseExpandedNodeId(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName);
+void parseArraySimple(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName, const char *szTypeName, int hfIndex, fctSimpleTypeParser pParserFunction, const gint idx);
+void parseArrayEnum(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName, const char *szTypeName, fctEnumParser pParserFunction, const gint idx);
+void parseArrayComplex(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName, const char *szTypeName, fctComplexTypeParser pParserFunction, const gint idx);
void registerSimpleTypes(int proto);
guint32 getExtensionObjectType(tvbuff_t *tvb, gint *pOffset);
-void dispatchExtensionObjectType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int TypeId);
+void dispatchExtensionObjectType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, int TypeId);
diff --git a/plugins/opcua/opcua_transport_layer.c b/plugins/opcua/opcua_transport_layer.c
index a9ae9905fd..f7604de046 100644
--- a/plugins/opcua/opcua_transport_layer.c
+++ b/plugins/opcua/opcua_transport_layer.c
@@ -80,7 +80,7 @@ void registerTransportLayerTypes(int proto)
}
/* Transport Layer: message parsers */
-int parseHello(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+int parseHello(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_tree_add_item(tree, hf_opcua_transport_type, tvb, *pOffset, 3, ENC_ASCII|ENC_NA); *pOffset+=3;
proto_tree_add_item(tree, hf_opcua_transport_chunk, tvb, *pOffset, 1, ENC_ASCII|ENC_NA); *pOffset+=1;
@@ -90,11 +90,11 @@ int parseHello(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
proto_tree_add_item(tree, hf_opcua_transport_sbs, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
proto_tree_add_item(tree, hf_opcua_transport_mms, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
proto_tree_add_item(tree, hf_opcua_transport_mcc, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
- parseString(tree, tvb, pOffset, hf_opcua_transport_endpoint);
+ parseString(tree, tvb, pinfo, pOffset, hf_opcua_transport_endpoint);
return -1;
}
-int parseAcknowledge(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+int parseAcknowledge(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset)
{
proto_tree_add_item(tree, hf_opcua_transport_type, tvb, *pOffset, 3, ENC_ASCII|ENC_NA); *pOffset+=3;
proto_tree_add_item(tree, hf_opcua_transport_chunk, tvb, *pOffset, 1, ENC_ASCII|ENC_NA); *pOffset+=1;
@@ -107,17 +107,17 @@ int parseAcknowledge(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
return -1;
}
-int parseError(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+int parseError(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_tree_add_item(tree, hf_opcua_transport_type, tvb, *pOffset, 3, ENC_ASCII|ENC_NA); *pOffset+=3;
proto_tree_add_item(tree, hf_opcua_transport_chunk, tvb, *pOffset, 1, ENC_ASCII|ENC_NA); *pOffset+=1;
proto_tree_add_item(tree, hf_opcua_transport_size, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
proto_tree_add_item(tree, hf_opcua_transport_error, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
- parseString(tree, tvb, pOffset, hf_opcua_transport_reason);
+ parseString(tree, tvb, pinfo, pOffset, hf_opcua_transport_reason);
return -1;
}
-int parseMessage(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+int parseMessage(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset)
{
proto_tree_add_item(tree, hf_opcua_transport_type, tvb, *pOffset, 3, ENC_ASCII|ENC_NA); *pOffset+=3;
proto_tree_add_item(tree, hf_opcua_transport_chunk, tvb, *pOffset, 1, ENC_ASCII|ENC_NA); *pOffset+=1;
@@ -130,7 +130,7 @@ int parseMessage(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
return -1;
}
-int parseService(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+int parseService(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_item *ti_inner;
@@ -150,13 +150,13 @@ int parseService(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
ServiceId = parseServiceNodeId(nodeid_tree, tvb, pOffset);
proto_item_set_end(ti_inner, tvb, *pOffset);
- dispatchService(encobj_tree, tvb, pOffset, ServiceId);
+ dispatchService(encobj_tree, tvb, pinfo, pOffset, ServiceId);
proto_item_set_end(ti, tvb, *pOffset);
return ServiceId;
}
-int parseOpenSecureChannel(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+int parseOpenSecureChannel(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_item *ti_inner;
@@ -168,9 +168,9 @@ int parseOpenSecureChannel(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
proto_tree_add_item(tree, hf_opcua_transport_chunk, tvb, *pOffset, 1, ENC_ASCII|ENC_NA); *pOffset+=1;
proto_tree_add_item(tree, hf_opcua_transport_size, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
proto_tree_add_item(tree, hf_opcua_transport_scid, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
- parseString(tree, tvb, pOffset, hf_opcua_transport_spu);
- parseByteString(tree, tvb, pOffset, hf_opcua_transport_scert);
- parseByteString(tree, tvb, pOffset, hf_opcua_transport_rcthumb);
+ parseString(tree, tvb, pinfo, pOffset, hf_opcua_transport_spu);
+ parseByteString(tree, tvb, pinfo, pOffset, hf_opcua_transport_scert);
+ parseByteString(tree, tvb, pinfo, pOffset, hf_opcua_transport_rcthumb);
proto_tree_add_item(tree, hf_opcua_transport_seq, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
proto_tree_add_item(tree, hf_opcua_transport_rqid, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
@@ -182,13 +182,13 @@ int parseOpenSecureChannel(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
ServiceId = parseServiceNodeId(nodeid_tree, tvb, pOffset);
proto_item_set_end(ti_inner, tvb, *pOffset);
- dispatchService(encobj_tree, tvb, pOffset, ServiceId);
+ dispatchService(encobj_tree, tvb, pinfo, pOffset, ServiceId);
proto_item_set_end(ti, tvb, *pOffset);
return ServiceId;
}
-int parseCloseSecureChannel(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+int parseCloseSecureChannel(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset)
{
proto_item *ti;
proto_item *ti_inner;
@@ -211,7 +211,7 @@ int parseCloseSecureChannel(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
ServiceId = parseServiceNodeId(nodeid_tree, tvb, pOffset);
proto_item_set_end(ti_inner, tvb, *pOffset);
- dispatchService(encobj_tree, tvb, pOffset, ServiceId);
+ dispatchService(encobj_tree, tvb, pinfo, pOffset, ServiceId);
proto_item_set_end(ti, tvb, *pOffset);
return ServiceId;
diff --git a/plugins/opcua/opcua_transport_layer.h b/plugins/opcua/opcua_transport_layer.h
index 960ed10add..9b7aa715b6 100644
--- a/plugins/opcua/opcua_transport_layer.h
+++ b/plugins/opcua/opcua_transport_layer.h
@@ -20,11 +20,11 @@
******************************************************************************/
/* Transport Layer: message parsers */
-int parseHello(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-int parseAcknowledge(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-int parseError(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-int parseMessage(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-int parseService(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-int parseOpenSecureChannel(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
-int parseCloseSecureChannel(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
+int parseHello(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+int parseAcknowledge(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+int parseError(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+int parseMessage(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+int parseService(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+int parseOpenSecureChannel(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
+int parseCloseSecureChannel(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset);
void registerTransportLayerTypes(int proto);