diff options
author | Hannes Mezger <hannes.mezger@ascolab.com> | 2014-10-16 14:35:10 +0200 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2014-10-16 14:47:58 +0000 |
commit | a34b2526c67cd5c2fdf78b17defc0ce706f9eb10 (patch) | |
tree | 66ec7ce5cac9e2c7bdbf7eb0b6a52b4b66a4406c /plugins/opcua/opcua_complextypeparser.c | |
parent | d347b7284f09a5145f07e1620984ae8b06ab3357 (diff) |
Replace proto_tree_add_text with proto_tree_add_subtree(_format) in generated files
As requested by Michael Mann, all occurences of proto_tree_add_text/proto_item_add_subtree are replaced with proto_tree_add_subtree(_format) in the generated files. Our generator templates have also been updated accordingly.
Change-Id: I49ddd664dffef4b3ceda77edd1b2d7e01da363f3
Reviewed-on: https://code.wireshark.org/review/4725
Petri-Dish: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'plugins/opcua/opcua_complextypeparser.c')
-rw-r--r-- | plugins/opcua/opcua_complextypeparser.c | 545 |
1 files changed, 272 insertions, 273 deletions
diff --git a/plugins/opcua/opcua_complextypeparser.c b/plugins/opcua/opcua_complextypeparser.c index c0985072ec..adb0f52152 100644 --- a/plugins/opcua/opcua_complextypeparser.c +++ b/plugins/opcua/opcua_complextypeparser.c @@ -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! ** ******************************************************************************/ @@ -301,8 +301,8 @@ gint ett_opcua_array_Annotation = -1; void parseNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: Node", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_Node); + 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"); @@ -316,8 +316,8 @@ void parseNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFie } void parseInstanceNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: InstanceNode", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_InstanceNode); + 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"); @@ -331,8 +331,8 @@ void parseInstanceNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const cha } void parseTypeNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: TypeNode", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_TypeNode); + 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"); @@ -346,8 +346,8 @@ void parseTypeNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *s } void parseObjectNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ObjectNode", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ObjectNode); + 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"); @@ -362,8 +362,8 @@ void parseObjectNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char } void parseObjectTypeNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ObjectTypeNode", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ObjectTypeNode); + 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"); @@ -378,8 +378,8 @@ void parseObjectTypeNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const c } void parseVariableNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: VariableNode", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_VariableNode); + 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"); @@ -402,8 +402,8 @@ void parseVariableNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const cha } void parseVariableTypeNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: VariableTypeNode", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_VariableTypeNode); + 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"); @@ -423,8 +423,8 @@ void parseVariableTypeNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const } void parseReferenceTypeNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ReferenceTypeNode", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ReferenceTypeNode); + 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"); @@ -441,8 +441,8 @@ void parseReferenceTypeNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, cons } void parseMethodNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: MethodNode", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_MethodNode); + 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"); @@ -458,8 +458,8 @@ void parseMethodNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char } void parseViewNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ViewNode", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ViewNode); + 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"); @@ -475,8 +475,8 @@ void parseViewNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *s } void parseDataTypeNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: DataTypeNode", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DataTypeNode); + 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"); @@ -491,8 +491,8 @@ void parseDataTypeNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const cha } void parseReferenceNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ReferenceNode", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ReferenceNode); + 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"); @@ -500,8 +500,8 @@ void parseReferenceNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const ch } void parseArgument(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: Argument", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_Argument); + 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); @@ -512,8 +512,8 @@ void parseArgument(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *s } void parseEnumValueType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: EnumValueType", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_EnumValueType); + 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"); @@ -521,16 +521,16 @@ void parseEnumValueType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const ch } void parseTimeZoneDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: TimeZoneDataType", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_TimeZoneDataType); + 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); proto_item_set_end(ti, tvb, *pOffset); } void parseApplicationDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ApplicationDescription", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ApplicationDescription); + 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"); @@ -543,8 +543,8 @@ void parseApplicationDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, } void parseRequestHeader(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: RequestHeader", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_RequestHeader); + 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); @@ -556,8 +556,8 @@ void parseRequestHeader(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const ch } void parseResponseHeader(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ResponseHeader", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ResponseHeader); + 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); @@ -569,8 +569,8 @@ void parseResponseHeader(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const c } void parseUserTokenPolicy(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: UserTokenPolicy", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_UserTokenPolicy); + 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); @@ -580,8 +580,8 @@ void parseUserTokenPolicy(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const } void parseEndpointDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: EndpointDescription", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_EndpointDescription); + 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); @@ -595,8 +595,8 @@ void parseEndpointDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, co } void parseRegisteredServer(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: RegisteredServer", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_RegisteredServer); + 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); /* Array length field ignored: NoOfServerNames */ @@ -611,8 +611,8 @@ void parseRegisteredServer(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const } void parseChannelSecurityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ChannelSecurityToken", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ChannelSecurityToken); + 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); @@ -621,38 +621,38 @@ void parseChannelSecurityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, c } void parseSignedSoftwareCertificate(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: SignedSoftwareCertificate", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SignedSoftwareCertificate); + 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); proto_item_set_end(ti, tvb, *pOffset); } void parseSignatureData(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: SignatureData", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SignatureData); + 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); proto_item_set_end(ti, tvb, *pOffset); } void parseUserIdentityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: UserIdentityToken", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_UserIdentityToken); + 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); proto_item_set_end(ti, tvb, *pOffset); } void parseAnonymousIdentityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: AnonymousIdentityToken", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_AnonymousIdentityToken); + 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); proto_item_set_end(ti, tvb, *pOffset); } void parseUserNameIdentityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: UserNameIdentityToken", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_UserNameIdentityToken); + 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); @@ -661,16 +661,16 @@ void parseUserNameIdentityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, } void parseX509IdentityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: X509IdentityToken", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_X509IdentityToken); + 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); proto_item_set_end(ti, tvb, *pOffset); } void parseIssuedIdentityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: IssuedIdentityToken", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_IssuedIdentityToken); + 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); @@ -678,8 +678,8 @@ void parseIssuedIdentityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, co } void parseNodeAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: NodeAttributes", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_NodeAttributes); + 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"); @@ -689,8 +689,8 @@ void parseNodeAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const c } void parseObjectAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ObjectAttributes", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ObjectAttributes); + 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"); @@ -701,8 +701,8 @@ void parseObjectAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const } void parseVariableAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: VariableAttributes", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_VariableAttributes); + 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"); @@ -721,8 +721,8 @@ void parseVariableAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, con } void parseMethodAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: MethodAttributes", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_MethodAttributes); + 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"); @@ -734,8 +734,8 @@ void parseMethodAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const } void parseObjectTypeAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ObjectTypeAttributes", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ObjectTypeAttributes); + 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"); @@ -746,8 +746,8 @@ void parseObjectTypeAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, c } void parseVariableTypeAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: VariableTypeAttributes", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_VariableTypeAttributes); + 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"); @@ -763,8 +763,8 @@ void parseVariableTypeAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, } void parseReferenceTypeAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ReferenceTypeAttributes", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ReferenceTypeAttributes); + 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"); @@ -777,8 +777,8 @@ void parseReferenceTypeAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset } void parseDataTypeAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: DataTypeAttributes", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DataTypeAttributes); + 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"); @@ -789,8 +789,8 @@ void parseDataTypeAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, con } void parseViewAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ViewAttributes", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ViewAttributes); + 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"); @@ -802,8 +802,8 @@ void parseViewAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const c } void parseAddNodesItem(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: AddNodesItem", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_AddNodesItem); + 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"); @@ -815,16 +815,16 @@ void parseAddNodesItem(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const cha } void parseAddNodesResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: AddNodesResult", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_AddNodesResult); + 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"); proto_item_set_end(ti, tvb, *pOffset); } void parseAddReferencesItem(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: AddReferencesItem", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_AddReferencesItem); + 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); @@ -835,16 +835,16 @@ void parseAddReferencesItem(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, cons } void parseDeleteNodesItem(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: DeleteNodesItem", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DeleteNodesItem); + 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); proto_item_set_end(ti, tvb, *pOffset); } void parseDeleteReferencesItem(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: DeleteReferencesItem", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DeleteReferencesItem); + 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); @@ -854,8 +854,8 @@ void parseDeleteReferencesItem(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, c } void parseViewDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ViewDescription", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ViewDescription); + 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); @@ -863,8 +863,8 @@ void parseViewDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const } void parseBrowseDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: BrowseDescription", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_BrowseDescription); + 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"); @@ -875,8 +875,8 @@ void parseBrowseDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, cons } void parseReferenceDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ReferenceDescription", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ReferenceDescription); + 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"); @@ -888,8 +888,8 @@ void parseReferenceDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, c } void parseBrowseResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: BrowseResult", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_BrowseResult); + 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); /* Array length field ignored: NoOfReferences */ @@ -898,8 +898,8 @@ void parseBrowseResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const cha } void parseRelativePathElement(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: RelativePathElement", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_RelativePathElement); + 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); @@ -908,32 +908,32 @@ void parseRelativePathElement(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, co } void parseRelativePath(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: RelativePath", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_RelativePath); + 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); proto_item_set_end(ti, tvb, *pOffset); } void parseBrowsePath(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: BrowsePath", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_BrowsePath); + 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"); proto_item_set_end(ti, tvb, *pOffset); } void parseBrowsePathTarget(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: BrowsePathTarget", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_BrowsePathTarget); + 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); proto_item_set_end(ti, tvb, *pOffset); } void parseBrowsePathResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: BrowsePathResult", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_BrowsePathResult); + 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); /* Array length field ignored: NoOfTargets */ parseArrayComplex(subtree, tvb, pOffset, "Targets", "BrowsePathTarget", parseBrowsePathTarget, ett_opcua_array_BrowsePathTarget); @@ -941,8 +941,8 @@ void parseBrowsePathResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const } void parseEndpointConfiguration(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: EndpointConfiguration", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_EndpointConfiguration); + 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); @@ -956,8 +956,8 @@ void parseEndpointConfiguration(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, } void parseSupportedProfile(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: SupportedProfile", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SupportedProfile); + 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); @@ -969,8 +969,8 @@ void parseSupportedProfile(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const } void parseSoftwareCertificate(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: SoftwareCertificate", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SoftwareCertificate); + 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); @@ -986,8 +986,8 @@ void parseSoftwareCertificate(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, co } void parseQueryDataDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: QueryDataDescription", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_QueryDataDescription); + 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); @@ -995,8 +995,8 @@ void parseQueryDataDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, c } void parseNodeTypeDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: NodeTypeDescription", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_NodeTypeDescription); + 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); /* Array length field ignored: NoOfDataToReturn */ @@ -1005,8 +1005,8 @@ void parseNodeTypeDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, co } void parseQueryDataSet(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: QueryDataSet", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_QueryDataSet); + 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"); /* Array length field ignored: NoOfValues */ @@ -1015,8 +1015,8 @@ void parseQueryDataSet(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const cha } void parseNodeReference(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: NodeReference", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_NodeReference); + 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); @@ -1026,8 +1026,8 @@ void parseNodeReference(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const ch } void parseContentFilterElement(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ContentFilterElement", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ContentFilterElement); + 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); /* Array length field ignored: NoOfFilterOperands */ parseArrayComplex(subtree, tvb, pOffset, "FilterOperands", "ExtensionObject", parseExtensionObject, ett_opcua_array_ExtensionObject); @@ -1035,30 +1035,30 @@ void parseContentFilterElement(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, c } void parseContentFilter(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ContentFilter", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ContentFilter); + 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); proto_item_set_end(ti, tvb, *pOffset); } void parseElementOperand(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ElementOperand", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ElementOperand); + 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); proto_item_set_end(ti, tvb, *pOffset); } void parseLiteralOperand(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: LiteralOperand", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_LiteralOperand); + 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"); proto_item_set_end(ti, tvb, *pOffset); } void parseAttributeOperand(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: AttributeOperand", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_AttributeOperand); + 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"); @@ -1068,8 +1068,8 @@ void parseAttributeOperand(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const } void parseSimpleAttributeOperand(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: SimpleAttributeOperand", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SimpleAttributeOperand); + 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"); /* Array length field ignored: NoOfBrowsePath */ parseArrayComplex(subtree, tvb, pOffset, "BrowsePath", "QualifiedName", parseQualifiedName, ett_opcua_array_QualifiedName); @@ -1079,8 +1079,8 @@ void parseSimpleAttributeOperand(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, } void parseContentFilterElementResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ContentFilterElementResult", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ContentFilterElementResult); + 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); /* Array length field ignored: NoOfOperandStatusCodes */ parseArraySimple(subtree, tvb, pOffset, "OperandStatusCodes", "StatusCode", hf_opcua_OperandStatusCodes, parseStatusCode, ett_opcua_array_StatusCode); @@ -1090,8 +1090,8 @@ void parseContentFilterElementResult(proto_tree *tree, tvbuff_t *tvb, gint *pOff } void parseContentFilterResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ContentFilterResult", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ContentFilterResult); + 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); /* Array length field ignored: NoOfElementDiagnosticInfos */ @@ -1100,8 +1100,8 @@ void parseContentFilterResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, co } void parseParsingResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ParsingResult", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ParsingResult); + 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); /* Array length field ignored: NoOfDataStatusCodes */ parseArraySimple(subtree, tvb, pOffset, "DataStatusCodes", "StatusCode", hf_opcua_DataStatusCodes, parseStatusCode, ett_opcua_array_StatusCode); @@ -1111,8 +1111,8 @@ void parseParsingResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const ch } void parseReadValueId(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ReadValueId", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ReadValueId); + 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); @@ -1121,8 +1121,8 @@ void parseReadValueId(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char } void parseHistoryReadValueId(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: HistoryReadValueId", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_HistoryReadValueId); + 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"); @@ -1131,8 +1131,8 @@ void parseHistoryReadValueId(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, con } void parseHistoryReadResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: HistoryReadResult", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_HistoryReadResult); + 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"); @@ -1140,8 +1140,8 @@ void parseHistoryReadResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, cons } void parseReadEventDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ReadEventDetails", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ReadEventDetails); + 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); @@ -1150,8 +1150,8 @@ void parseReadEventDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const } void parseReadRawModifiedDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ReadRawModifiedDetails", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ReadRawModifiedDetails); + 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); @@ -1161,8 +1161,8 @@ void parseReadRawModifiedDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, } void parseReadProcessedDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ReadProcessedDetails", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ReadProcessedDetails); + 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); @@ -1173,8 +1173,8 @@ void parseReadProcessedDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, c } void parseReadAtTimeDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ReadAtTimeDetails", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ReadAtTimeDetails); + 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); @@ -1182,16 +1182,16 @@ void parseReadAtTimeDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, cons } void parseHistoryData(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: HistoryData", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_HistoryData); + 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); proto_item_set_end(ti, tvb, *pOffset); } void parseModificationInfo(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ModificationInfo", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ModificationInfo); + 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); @@ -1199,8 +1199,8 @@ void parseModificationInfo(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const } void parseHistoryModifiedData(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: HistoryModifiedData", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_HistoryModifiedData); + 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); /* Array length field ignored: NoOfModificationInfos */ @@ -1209,16 +1209,16 @@ void parseHistoryModifiedData(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, co } void parseHistoryEvent(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: HistoryEvent", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_HistoryEvent); + 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); proto_item_set_end(ti, tvb, *pOffset); } void parseWriteValue(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: WriteValue", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_WriteValue); + 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); @@ -1227,15 +1227,15 @@ void parseWriteValue(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char } void parseHistoryUpdateDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: HistoryUpdateDetails", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_HistoryUpdateDetails); + 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"); proto_item_set_end(ti, tvb, *pOffset); } void parseUpdateDataDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: UpdateDataDetails", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_UpdateDataDetails); + 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); /* Array length field ignored: NoOfUpdateValues */ @@ -1244,8 +1244,8 @@ void parseUpdateDataDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, cons } void parseUpdateStructureDataDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: UpdateStructureDataDetails", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_UpdateStructureDataDetails); + 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); /* Array length field ignored: NoOfUpdateValues */ @@ -1254,19 +1254,18 @@ void parseUpdateStructureDataDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOff } void parseUpdateEventDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: UpdateEventDetails", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_UpdateEventDetails); + 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"); - /* Array length field ignored: NoOfEventData */ - parseArrayComplex(subtree, tvb, pOffset, "EventData", "HistoryEventFieldList", parseHistoryEventFieldList, ett_opcua_array_HistoryEventFieldList); + parseHistoryEventFieldList(subtree, tvb, pOffset, "EventData"); proto_item_set_end(ti, tvb, *pOffset); } void parseDeleteRawModifiedDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: DeleteRawModifiedDetails", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DeleteRawModifiedDetails); + 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); @@ -1275,8 +1274,8 @@ void parseDeleteRawModifiedDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffse } void parseDeleteAtTimeDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: DeleteAtTimeDetails", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DeleteAtTimeDetails); + 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"); /* Array length field ignored: NoOfReqTimes */ parseArraySimple(subtree, tvb, pOffset, "ReqTimes", "DateTime", hf_opcua_ReqTimes, parseDateTime, ett_opcua_array_DateTime); @@ -1284,8 +1283,8 @@ void parseDeleteAtTimeDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, co } void parseDeleteEventDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: DeleteEventDetails", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DeleteEventDetails); + 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"); /* Array length field ignored: NoOfEventIds */ parseArraySimple(subtree, tvb, pOffset, "EventIds", "ByteString", hf_opcua_EventIds, parseByteString, ett_opcua_array_ByteString); @@ -1293,8 +1292,8 @@ void parseDeleteEventDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, con } void parseHistoryUpdateResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: HistoryUpdateResult", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_HistoryUpdateResult); + 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); /* Array length field ignored: NoOfOperationResults */ parseArraySimple(subtree, tvb, pOffset, "OperationResults", "StatusCode", hf_opcua_OperationResults, parseStatusCode, ett_opcua_array_StatusCode); @@ -1304,8 +1303,8 @@ void parseHistoryUpdateResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, co } void parseCallMethodRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: CallMethodRequest", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CallMethodRequest); + 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"); /* Array length field ignored: NoOfInputArguments */ @@ -1314,8 +1313,8 @@ void parseCallMethodRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, cons } void parseCallMethodResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: CallMethodResult", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CallMethodResult); + 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); /* Array length field ignored: NoOfInputArgumentResults */ parseArraySimple(subtree, tvb, pOffset, "InputArgumentResults", "StatusCode", hf_opcua_InputArgumentResults, parseStatusCode, ett_opcua_array_StatusCode); @@ -1327,8 +1326,8 @@ void parseCallMethodResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const } void parseDataChangeFilter(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: DataChangeFilter", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DataChangeFilter); + 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); @@ -1336,8 +1335,8 @@ void parseDataChangeFilter(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const } void parseEventFilter(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: EventFilter", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_EventFilter); + 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"); @@ -1345,8 +1344,8 @@ void parseEventFilter(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char } void parseAggregateConfiguration(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: AggregateConfiguration", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_AggregateConfiguration); + 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); @@ -1356,8 +1355,8 @@ void parseAggregateConfiguration(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, } void parseAggregateFilter(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: AggregateFilter", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_AggregateFilter); + 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); @@ -1366,8 +1365,8 @@ void parseAggregateFilter(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const } void parseEventFilterResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: EventFilterResult", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_EventFilterResult); + 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); /* Array length field ignored: NoOfSelectClauseDiagnosticInfos */ @@ -1377,8 +1376,8 @@ void parseEventFilterResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, cons } void parseAggregateFilterResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: AggregateFilterResult", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_AggregateFilterResult); + 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"); @@ -1386,8 +1385,8 @@ void parseAggregateFilterResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, } void parseMonitoringParameters(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: MonitoringParameters", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_MonitoringParameters); + 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"); @@ -1397,8 +1396,8 @@ void parseMonitoringParameters(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, c } void parseMonitoredItemCreateRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: MonitoredItemCreateRequest", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_MonitoredItemCreateRequest); + 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"); @@ -1406,8 +1405,8 @@ void parseMonitoredItemCreateRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOff } void parseMonitoredItemCreateResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: MonitoredItemCreateResult", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_MonitoredItemCreateResult); + 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); @@ -1417,16 +1416,16 @@ void parseMonitoredItemCreateResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffs } void parseMonitoredItemModifyRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: MonitoredItemModifyRequest", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_MonitoredItemModifyRequest); + 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"); proto_item_set_end(ti, tvb, *pOffset); } void parseMonitoredItemModifyResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: MonitoredItemModifyResult", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_MonitoredItemModifyResult); + 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); @@ -1435,8 +1434,8 @@ void parseMonitoredItemModifyResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffs } void parseNotificationMessage(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: NotificationMessage", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_NotificationMessage); + 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); /* Array length field ignored: NoOfNotificationData */ @@ -1445,8 +1444,8 @@ void parseNotificationMessage(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, co } void parseDataChangeNotification(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: DataChangeNotification", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DataChangeNotification); + 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); /* Array length field ignored: NoOfDiagnosticInfos */ @@ -1455,24 +1454,24 @@ void parseDataChangeNotification(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, } void parseMonitoredItemNotification(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: MonitoredItemNotification", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_MonitoredItemNotification); + 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"); proto_item_set_end(ti, tvb, *pOffset); } void parseEventNotificationList(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: EventNotificationList", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_EventNotificationList); + 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); proto_item_set_end(ti, tvb, *pOffset); } void parseEventFieldList(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: EventFieldList", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_EventFieldList); + 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); /* Array length field ignored: NoOfEventFields */ parseArrayComplex(subtree, tvb, pOffset, "EventFields", "Variant", parseVariant, ett_opcua_array_Variant); @@ -1480,32 +1479,32 @@ void parseEventFieldList(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const c } void parseHistoryEventFieldList(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: HistoryEventFieldList", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_HistoryEventFieldList); + 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); proto_item_set_end(ti, tvb, *pOffset); } void parseStatusChangeNotification(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: StatusChangeNotification", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_StatusChangeNotification); + 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"); proto_item_set_end(ti, tvb, *pOffset); } void parseSubscriptionAcknowledgement(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: SubscriptionAcknowledgement", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SubscriptionAcknowledgement); + 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); proto_item_set_end(ti, tvb, *pOffset); } void parseTransferResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: TransferResult", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_TransferResult); + 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); /* Array length field ignored: NoOfAvailableSequenceNumbers */ parseArraySimple(subtree, tvb, pOffset, "AvailableSequenceNumbers", "UInt32", hf_opcua_AvailableSequenceNumbers, parseUInt32, ett_opcua_array_UInt32); @@ -1513,8 +1512,8 @@ void parseTransferResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const c } void parseScalarTestType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ScalarTestType", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ScalarTestType); + 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); @@ -1544,8 +1543,8 @@ void parseScalarTestType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const c } void parseArrayTestType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ArrayTestType", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ArrayTestType); + 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); /* Array length field ignored: NoOfSBytes */ @@ -1600,16 +1599,16 @@ void parseArrayTestType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const ch } void parseCompositeTestType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: CompositeTestType", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CompositeTestType); + 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"); proto_item_set_end(ti, tvb, *pOffset); } void parseBuildInfo(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: BuildInfo", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_BuildInfo); + 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); @@ -1620,8 +1619,8 @@ void parseBuildInfo(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char * } void parseRedundantServerDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: RedundantServerDataType", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_RedundantServerDataType); + 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); @@ -1629,16 +1628,16 @@ void parseRedundantServerDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset } void parseEndpointUrlListDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: EndpointUrlListDataType", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_EndpointUrlListDataType); + 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); proto_item_set_end(ti, tvb, *pOffset); } void parseNetworkGroupDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: NetworkGroupDataType", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_NetworkGroupDataType); + 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); /* Array length field ignored: NoOfNetworkPaths */ parseArrayComplex(subtree, tvb, pOffset, "NetworkPaths", "EndpointUrlListDataType", parseEndpointUrlListDataType, ett_opcua_array_EndpointUrlListDataType); @@ -1646,8 +1645,8 @@ void parseNetworkGroupDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, c } void parseSamplingIntervalDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: SamplingIntervalDiagnosticsDataType", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SamplingIntervalDiagnosticsDataType); + 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); @@ -1656,8 +1655,8 @@ void parseSamplingIntervalDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, g } void parseServerDiagnosticsSummaryDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ServerDiagnosticsSummaryDataType", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ServerDiagnosticsSummaryDataType); + 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); @@ -1674,8 +1673,8 @@ void parseServerDiagnosticsSummaryDataType(proto_tree *tree, tvbuff_t *tvb, gint } void parseServerStatusDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ServerStatusDataType", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ServerStatusDataType); + 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); @@ -1686,8 +1685,8 @@ void parseServerStatusDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, c } void parseSessionDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: SessionDiagnosticsDataType", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SessionDiagnosticsDataType); + 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"); @@ -1736,8 +1735,8 @@ void parseSessionDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOff } void parseSessionSecurityDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: SessionSecurityDiagnosticsDataType", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SessionSecurityDiagnosticsDataType); + 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); /* Array length field ignored: NoOfClientUserIdHistory */ @@ -1752,24 +1751,24 @@ void parseSessionSecurityDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, gi } void parseServiceCounterDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ServiceCounterDataType", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ServiceCounterDataType); + 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); proto_item_set_end(ti, tvb, *pOffset); } void parseStatusResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: StatusResult", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_StatusResult); + 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"); proto_item_set_end(ti, tvb, *pOffset); } void parseSubscriptionDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: SubscriptionDiagnosticsDataType", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SubscriptionDiagnosticsDataType); + 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); @@ -1805,8 +1804,8 @@ void parseSubscriptionDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, gint } void parseModelChangeStructureDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ModelChangeStructureDataType", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ModelChangeStructureDataType); + 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); @@ -1814,24 +1813,24 @@ void parseModelChangeStructureDataType(proto_tree *tree, tvbuff_t *tvb, gint *pO } void parseSemanticChangeStructureDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: SemanticChangeStructureDataType", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SemanticChangeStructureDataType); + 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"); proto_item_set_end(ti, tvb, *pOffset); } void parseRange(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: Range", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_Range); + 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); proto_item_set_end(ti, tvb, *pOffset); } void parseEUInformation(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: EUInformation", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_EUInformation); + 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"); @@ -1840,24 +1839,24 @@ void parseEUInformation(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const ch } void parseComplexNumberType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ComplexNumberType", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ComplexNumberType); + 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); proto_item_set_end(ti, tvb, *pOffset); } void parseDoubleComplexNumberType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: DoubleComplexNumberType", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DoubleComplexNumberType); + 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); proto_item_set_end(ti, tvb, *pOffset); } void parseAxisInformation(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: AxisInformation", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_AxisInformation); + 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"); @@ -1868,16 +1867,16 @@ void parseAxisInformation(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const } void parseXVType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: XVType", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_XVType); + 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); proto_item_set_end(ti, tvb, *pOffset); } void parseProgramDiagnosticDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ProgramDiagnosticDataType", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ProgramDiagnosticDataType); + 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); @@ -1894,8 +1893,8 @@ void parseProgramDiagnosticDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffs } void parseAnnotation(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: Annotation", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_Annotation); + 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); |