diff options
author | Hannes Mezger <hannes.mezger@ascolab.com> | 2014-10-16 19:06:31 +0200 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2014-10-17 14:51:40 +0000 |
commit | e5bbfa0f1516c74b4fc81651be94405bcb4be0b9 (patch) | |
tree | e91369d5f861d65cce4bc8de965135225497559d /plugins/opcua/opcua_serviceparser.c | |
parent | 0ceeddee17571fa99a4cb35625a8e3c2bdca97d2 (diff) |
Add argument 'packet_info *pinfo' to all dissecting functions
Change-Id: Ie02326e365ee3f620fcbe3f2e8e45dc5300d3418
Reviewed-on: https://code.wireshark.org/review/4728
Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'plugins/opcua/opcua_serviceparser.c')
-rw-r--r-- | plugins/opcua/opcua_serviceparser.c | 678 |
1 files changed, 339 insertions, 339 deletions
diff --git a/plugins/opcua/opcua_serviceparser.c b/plugins/opcua/opcua_serviceparser.c index 5718228f5a..e7799376aa 100644 --- a/plugins/opcua/opcua_serviceparser.c +++ b/plugins/opcua/opcua_serviceparser.c @@ -188,904 +188,904 @@ gint ett_opcua_array_TestStackExRequest = -1; gint ett_opcua_TestStackExResponse = -1; gint ett_opcua_array_TestStackExResponse = -1; -void parseServiceFault(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseServiceFault(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_ServiceFault, &ti, "ServiceFault"); - parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); + parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader"); proto_item_set_end(ti, tvb, *pOffset); } -void parseFindServersRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseFindServersRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_FindServersRequest, &ti, "FindServersRequest"); - parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); - parseString(subtree, tvb, pOffset, hf_opcua_EndpointUrl); + parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader"); + parseString(subtree, tvb, pinfo, pOffset, hf_opcua_EndpointUrl); /* Array length field ignored: NoOfLocaleIds */ - parseArraySimple(subtree, tvb, pOffset, "LocaleIds", "String", hf_opcua_LocaleIds, parseString, ett_opcua_array_String); + parseArraySimple(subtree, tvb, pinfo, pOffset, "LocaleIds", "String", hf_opcua_LocaleIds, parseString, ett_opcua_array_String); /* Array length field ignored: NoOfServerUris */ - parseArraySimple(subtree, tvb, pOffset, "ServerUris", "String", hf_opcua_ServerUris, parseString, ett_opcua_array_String); + parseArraySimple(subtree, tvb, pinfo, pOffset, "ServerUris", "String", hf_opcua_ServerUris, parseString, ett_opcua_array_String); proto_item_set_end(ti, tvb, *pOffset); } -void parseFindServersResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseFindServersResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_FindServersResponse, &ti, "FindServersResponse"); - parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); + parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader"); /* Array length field ignored: NoOfServers */ - parseArrayComplex(subtree, tvb, pOffset, "Servers", "ApplicationDescription", parseApplicationDescription, ett_opcua_array_ApplicationDescription); + parseArrayComplex(subtree, tvb, pinfo, pOffset, "Servers", "ApplicationDescription", parseApplicationDescription, ett_opcua_array_ApplicationDescription); proto_item_set_end(ti, tvb, *pOffset); } -void parseGetEndpointsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseGetEndpointsRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_GetEndpointsRequest, &ti, "GetEndpointsRequest"); - parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); - parseString(subtree, tvb, pOffset, hf_opcua_EndpointUrl); + parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader"); + parseString(subtree, tvb, pinfo, pOffset, hf_opcua_EndpointUrl); /* Array length field ignored: NoOfLocaleIds */ - parseArraySimple(subtree, tvb, pOffset, "LocaleIds", "String", hf_opcua_LocaleIds, parseString, ett_opcua_array_String); + parseArraySimple(subtree, tvb, pinfo, pOffset, "LocaleIds", "String", hf_opcua_LocaleIds, parseString, ett_opcua_array_String); /* Array length field ignored: NoOfProfileUris */ - parseArraySimple(subtree, tvb, pOffset, "ProfileUris", "String", hf_opcua_ProfileUris, parseString, ett_opcua_array_String); + parseArraySimple(subtree, tvb, pinfo, pOffset, "ProfileUris", "String", hf_opcua_ProfileUris, parseString, ett_opcua_array_String); proto_item_set_end(ti, tvb, *pOffset); } -void parseGetEndpointsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseGetEndpointsResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_GetEndpointsResponse, &ti, "GetEndpointsResponse"); - parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); + parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader"); /* Array length field ignored: NoOfEndpoints */ - parseArrayComplex(subtree, tvb, pOffset, "Endpoints", "EndpointDescription", parseEndpointDescription, ett_opcua_array_EndpointDescription); + parseArrayComplex(subtree, tvb, pinfo, pOffset, "Endpoints", "EndpointDescription", parseEndpointDescription, ett_opcua_array_EndpointDescription); proto_item_set_end(ti, tvb, *pOffset); } -void parseRegisterServerRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseRegisterServerRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_RegisterServerRequest, &ti, "RegisterServerRequest"); - parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); - parseRegisteredServer(subtree, tvb, pOffset, "Server"); + parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader"); + parseRegisteredServer(subtree, tvb, pinfo, pOffset, "Server"); proto_item_set_end(ti, tvb, *pOffset); } -void parseRegisterServerResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseRegisterServerResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_RegisterServerResponse, &ti, "RegisterServerResponse"); - parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); + parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader"); proto_item_set_end(ti, tvb, *pOffset); } -void parseOpenSecureChannelRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseOpenSecureChannelRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_OpenSecureChannelRequest, &ti, "OpenSecureChannelRequest"); - parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); - parseUInt32(subtree, tvb, pOffset, hf_opcua_ClientProtocolVersion); - parseSecurityTokenRequestType(subtree, tvb, pOffset); - parseMessageSecurityMode(subtree, tvb, pOffset); - parseByteString(subtree, tvb, pOffset, hf_opcua_ClientNonce); - parseUInt32(subtree, tvb, pOffset, hf_opcua_RequestedLifetime); + parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader"); + parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_ClientProtocolVersion); + parseSecurityTokenRequestType(subtree, tvb, pinfo, pOffset); + parseMessageSecurityMode(subtree, tvb, pinfo, pOffset); + parseByteString(subtree, tvb, pinfo, pOffset, hf_opcua_ClientNonce); + parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_RequestedLifetime); proto_item_set_end(ti, tvb, *pOffset); } -void parseOpenSecureChannelResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseOpenSecureChannelResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_OpenSecureChannelResponse, &ti, "OpenSecureChannelResponse"); - parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); - parseUInt32(subtree, tvb, pOffset, hf_opcua_ServerProtocolVersion); - parseChannelSecurityToken(subtree, tvb, pOffset, "SecurityToken"); - parseByteString(subtree, tvb, pOffset, hf_opcua_ServerNonce); + parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader"); + parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_ServerProtocolVersion); + parseChannelSecurityToken(subtree, tvb, pinfo, pOffset, "SecurityToken"); + parseByteString(subtree, tvb, pinfo, pOffset, hf_opcua_ServerNonce); proto_item_set_end(ti, tvb, *pOffset); } -void parseCloseSecureChannelRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseCloseSecureChannelRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_CloseSecureChannelRequest, &ti, "CloseSecureChannelRequest"); - parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); + parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader"); proto_item_set_end(ti, tvb, *pOffset); } -void parseCloseSecureChannelResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseCloseSecureChannelResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_CloseSecureChannelResponse, &ti, "CloseSecureChannelResponse"); - parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); + parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader"); proto_item_set_end(ti, tvb, *pOffset); } -void parseCreateSessionRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseCreateSessionRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_CreateSessionRequest, &ti, "CreateSessionRequest"); - parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); - parseApplicationDescription(subtree, tvb, pOffset, "ClientDescription"); - parseString(subtree, tvb, pOffset, hf_opcua_ServerUri); - parseString(subtree, tvb, pOffset, hf_opcua_EndpointUrl); - parseString(subtree, tvb, pOffset, hf_opcua_SessionName); - parseByteString(subtree, tvb, pOffset, hf_opcua_ClientNonce); - parseByteString(subtree, tvb, pOffset, hf_opcua_ClientCertificate); - parseDouble(subtree, tvb, pOffset, hf_opcua_RequestedSessionTimeout); - parseUInt32(subtree, tvb, pOffset, hf_opcua_MaxResponseMessageSize); + parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader"); + parseApplicationDescription(subtree, tvb, pinfo, pOffset, "ClientDescription"); + parseString(subtree, tvb, pinfo, pOffset, hf_opcua_ServerUri); + parseString(subtree, tvb, pinfo, pOffset, hf_opcua_EndpointUrl); + parseString(subtree, tvb, pinfo, pOffset, hf_opcua_SessionName); + parseByteString(subtree, tvb, pinfo, pOffset, hf_opcua_ClientNonce); + parseByteString(subtree, tvb, pinfo, pOffset, hf_opcua_ClientCertificate); + parseDouble(subtree, tvb, pinfo, pOffset, hf_opcua_RequestedSessionTimeout); + parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_MaxResponseMessageSize); proto_item_set_end(ti, tvb, *pOffset); } -void parseCreateSessionResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseCreateSessionResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_CreateSessionResponse, &ti, "CreateSessionResponse"); - parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); - parseNodeId(subtree, tvb, pOffset, "SessionId"); - parseNodeId(subtree, tvb, pOffset, "AuthenticationToken"); - parseDouble(subtree, tvb, pOffset, hf_opcua_RevisedSessionTimeout); - parseByteString(subtree, tvb, pOffset, hf_opcua_ServerNonce); - parseByteString(subtree, tvb, pOffset, hf_opcua_ServerCertificate); + parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader"); + parseNodeId(subtree, tvb, pinfo, pOffset, "SessionId"); + parseNodeId(subtree, tvb, pinfo, pOffset, "AuthenticationToken"); + parseDouble(subtree, tvb, pinfo, pOffset, hf_opcua_RevisedSessionTimeout); + parseByteString(subtree, tvb, pinfo, pOffset, hf_opcua_ServerNonce); + parseByteString(subtree, tvb, pinfo, pOffset, hf_opcua_ServerCertificate); /* Array length field ignored: NoOfServerEndpoints */ - parseArrayComplex(subtree, tvb, pOffset, "ServerEndpoints", "EndpointDescription", parseEndpointDescription, ett_opcua_array_EndpointDescription); + parseArrayComplex(subtree, tvb, pinfo, pOffset, "ServerEndpoints", "EndpointDescription", parseEndpointDescription, ett_opcua_array_EndpointDescription); /* Array length field ignored: NoOfServerSoftwareCertificates */ - parseArrayComplex(subtree, tvb, pOffset, "ServerSoftwareCertificates", "SignedSoftwareCertificate", parseSignedSoftwareCertificate, ett_opcua_array_SignedSoftwareCertificate); - parseSignatureData(subtree, tvb, pOffset, "ServerSignature"); - parseUInt32(subtree, tvb, pOffset, hf_opcua_MaxRequestMessageSize); + parseArrayComplex(subtree, tvb, pinfo, pOffset, "ServerSoftwareCertificates", "SignedSoftwareCertificate", parseSignedSoftwareCertificate, ett_opcua_array_SignedSoftwareCertificate); + parseSignatureData(subtree, tvb, pinfo, pOffset, "ServerSignature"); + parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_MaxRequestMessageSize); proto_item_set_end(ti, tvb, *pOffset); } -void parseActivateSessionRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseActivateSessionRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_ActivateSessionRequest, &ti, "ActivateSessionRequest"); - parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); - parseSignatureData(subtree, tvb, pOffset, "ClientSignature"); + parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader"); + parseSignatureData(subtree, tvb, pinfo, pOffset, "ClientSignature"); /* Array length field ignored: NoOfClientSoftwareCertificates */ - parseArrayComplex(subtree, tvb, pOffset, "ClientSoftwareCertificates", "SignedSoftwareCertificate", parseSignedSoftwareCertificate, ett_opcua_array_SignedSoftwareCertificate); + parseArrayComplex(subtree, tvb, pinfo, pOffset, "ClientSoftwareCertificates", "SignedSoftwareCertificate", parseSignedSoftwareCertificate, ett_opcua_array_SignedSoftwareCertificate); /* Array length field ignored: NoOfLocaleIds */ - parseArraySimple(subtree, tvb, pOffset, "LocaleIds", "String", hf_opcua_LocaleIds, parseString, ett_opcua_array_String); - parseExtensionObject(subtree, tvb, pOffset, "UserIdentityToken"); - parseSignatureData(subtree, tvb, pOffset, "UserTokenSignature"); + parseArraySimple(subtree, tvb, pinfo, pOffset, "LocaleIds", "String", hf_opcua_LocaleIds, parseString, ett_opcua_array_String); + parseExtensionObject(subtree, tvb, pinfo, pOffset, "UserIdentityToken"); + parseSignatureData(subtree, tvb, pinfo, pOffset, "UserTokenSignature"); proto_item_set_end(ti, tvb, *pOffset); } -void parseActivateSessionResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseActivateSessionResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_ActivateSessionResponse, &ti, "ActivateSessionResponse"); - parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); - parseByteString(subtree, tvb, pOffset, hf_opcua_ServerNonce); + parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader"); + parseByteString(subtree, tvb, pinfo, pOffset, hf_opcua_ServerNonce); /* Array length field ignored: NoOfResults */ - parseArraySimple(subtree, tvb, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode, ett_opcua_array_StatusCode); + parseArraySimple(subtree, tvb, pinfo, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode, ett_opcua_array_StatusCode); /* Array length field ignored: NoOfDiagnosticInfos */ - parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); + parseArrayComplex(subtree, tvb, pinfo, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); proto_item_set_end(ti, tvb, *pOffset); } -void parseCloseSessionRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseCloseSessionRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_CloseSessionRequest, &ti, "CloseSessionRequest"); - parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); - parseBoolean(subtree, tvb, pOffset, hf_opcua_DeleteSubscriptions); + parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader"); + parseBoolean(subtree, tvb, pinfo, pOffset, hf_opcua_DeleteSubscriptions); proto_item_set_end(ti, tvb, *pOffset); } -void parseCloseSessionResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseCloseSessionResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_CloseSessionResponse, &ti, "CloseSessionResponse"); - parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); + parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader"); proto_item_set_end(ti, tvb, *pOffset); } -void parseCancelRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseCancelRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_CancelRequest, &ti, "CancelRequest"); - parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); - parseUInt32(subtree, tvb, pOffset, hf_opcua_RequestHandle); + parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader"); + parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_RequestHandle); proto_item_set_end(ti, tvb, *pOffset); } -void parseCancelResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseCancelResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_CancelResponse, &ti, "CancelResponse"); - parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); - parseUInt32(subtree, tvb, pOffset, hf_opcua_CancelCount); + parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader"); + parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_CancelCount); proto_item_set_end(ti, tvb, *pOffset); } -void parseAddNodesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseAddNodesRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_AddNodesRequest, &ti, "AddNodesRequest"); - parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); + parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader"); /* Array length field ignored: NoOfNodesToAdd */ - parseArrayComplex(subtree, tvb, pOffset, "NodesToAdd", "AddNodesItem", parseAddNodesItem, ett_opcua_array_AddNodesItem); + parseArrayComplex(subtree, tvb, pinfo, pOffset, "NodesToAdd", "AddNodesItem", parseAddNodesItem, ett_opcua_array_AddNodesItem); proto_item_set_end(ti, tvb, *pOffset); } -void parseAddNodesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseAddNodesResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_AddNodesResponse, &ti, "AddNodesResponse"); - parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); + parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader"); /* Array length field ignored: NoOfResults */ - parseArrayComplex(subtree, tvb, pOffset, "Results", "AddNodesResult", parseAddNodesResult, ett_opcua_array_AddNodesResult); + parseArrayComplex(subtree, tvb, pinfo, pOffset, "Results", "AddNodesResult", parseAddNodesResult, ett_opcua_array_AddNodesResult); /* Array length field ignored: NoOfDiagnosticInfos */ - parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); + parseArrayComplex(subtree, tvb, pinfo, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); proto_item_set_end(ti, tvb, *pOffset); } -void parseAddReferencesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseAddReferencesRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_AddReferencesRequest, &ti, "AddReferencesRequest"); - parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); + parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader"); /* Array length field ignored: NoOfReferencesToAdd */ - parseArrayComplex(subtree, tvb, pOffset, "ReferencesToAdd", "AddReferencesItem", parseAddReferencesItem, ett_opcua_array_AddReferencesItem); + parseArrayComplex(subtree, tvb, pinfo, pOffset, "ReferencesToAdd", "AddReferencesItem", parseAddReferencesItem, ett_opcua_array_AddReferencesItem); proto_item_set_end(ti, tvb, *pOffset); } -void parseAddReferencesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseAddReferencesResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_AddReferencesResponse, &ti, "AddReferencesResponse"); - parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); + parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader"); /* Array length field ignored: NoOfResults */ - parseArraySimple(subtree, tvb, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode, ett_opcua_array_StatusCode); + parseArraySimple(subtree, tvb, pinfo, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode, ett_opcua_array_StatusCode); /* Array length field ignored: NoOfDiagnosticInfos */ - parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); + parseArrayComplex(subtree, tvb, pinfo, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); proto_item_set_end(ti, tvb, *pOffset); } -void parseDeleteNodesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseDeleteNodesRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_DeleteNodesRequest, &ti, "DeleteNodesRequest"); - parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); + parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader"); /* Array length field ignored: NoOfNodesToDelete */ - parseArrayComplex(subtree, tvb, pOffset, "NodesToDelete", "DeleteNodesItem", parseDeleteNodesItem, ett_opcua_array_DeleteNodesItem); + parseArrayComplex(subtree, tvb, pinfo, pOffset, "NodesToDelete", "DeleteNodesItem", parseDeleteNodesItem, ett_opcua_array_DeleteNodesItem); proto_item_set_end(ti, tvb, *pOffset); } -void parseDeleteNodesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseDeleteNodesResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_DeleteNodesResponse, &ti, "DeleteNodesResponse"); - parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); + parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader"); /* Array length field ignored: NoOfResults */ - parseArraySimple(subtree, tvb, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode, ett_opcua_array_StatusCode); + parseArraySimple(subtree, tvb, pinfo, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode, ett_opcua_array_StatusCode); /* Array length field ignored: NoOfDiagnosticInfos */ - parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); + parseArrayComplex(subtree, tvb, pinfo, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); proto_item_set_end(ti, tvb, *pOffset); } -void parseDeleteReferencesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseDeleteReferencesRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_DeleteReferencesRequest, &ti, "DeleteReferencesRequest"); - parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); + parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader"); /* Array length field ignored: NoOfReferencesToDelete */ - parseArrayComplex(subtree, tvb, pOffset, "ReferencesToDelete", "DeleteReferencesItem", parseDeleteReferencesItem, ett_opcua_array_DeleteReferencesItem); + parseArrayComplex(subtree, tvb, pinfo, pOffset, "ReferencesToDelete", "DeleteReferencesItem", parseDeleteReferencesItem, ett_opcua_array_DeleteReferencesItem); proto_item_set_end(ti, tvb, *pOffset); } -void parseDeleteReferencesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseDeleteReferencesResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_DeleteReferencesResponse, &ti, "DeleteReferencesResponse"); - parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); + parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader"); /* Array length field ignored: NoOfResults */ - parseArraySimple(subtree, tvb, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode, ett_opcua_array_StatusCode); + parseArraySimple(subtree, tvb, pinfo, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode, ett_opcua_array_StatusCode); /* Array length field ignored: NoOfDiagnosticInfos */ - parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); + parseArrayComplex(subtree, tvb, pinfo, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); proto_item_set_end(ti, tvb, *pOffset); } -void parseBrowseRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseBrowseRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_BrowseRequest, &ti, "BrowseRequest"); - parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); - parseViewDescription(subtree, tvb, pOffset, "View"); - parseUInt32(subtree, tvb, pOffset, hf_opcua_RequestedMaxReferencesPerNode); + parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader"); + parseViewDescription(subtree, tvb, pinfo, pOffset, "View"); + parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_RequestedMaxReferencesPerNode); /* Array length field ignored: NoOfNodesToBrowse */ - parseArrayComplex(subtree, tvb, pOffset, "NodesToBrowse", "BrowseDescription", parseBrowseDescription, ett_opcua_array_BrowseDescription); + parseArrayComplex(subtree, tvb, pinfo, pOffset, "NodesToBrowse", "BrowseDescription", parseBrowseDescription, ett_opcua_array_BrowseDescription); proto_item_set_end(ti, tvb, *pOffset); } -void parseBrowseResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseBrowseResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_BrowseResponse, &ti, "BrowseResponse"); - parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); + parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader"); /* Array length field ignored: NoOfResults */ - parseArrayComplex(subtree, tvb, pOffset, "Results", "BrowseResult", parseBrowseResult, ett_opcua_array_BrowseResult); + parseArrayComplex(subtree, tvb, pinfo, pOffset, "Results", "BrowseResult", parseBrowseResult, ett_opcua_array_BrowseResult); /* Array length field ignored: NoOfDiagnosticInfos */ - parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); + parseArrayComplex(subtree, tvb, pinfo, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); proto_item_set_end(ti, tvb, *pOffset); } -void parseBrowseNextRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseBrowseNextRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_BrowseNextRequest, &ti, "BrowseNextRequest"); - parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); - parseBoolean(subtree, tvb, pOffset, hf_opcua_ReleaseContinuationPoints); + parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader"); + parseBoolean(subtree, tvb, pinfo, pOffset, hf_opcua_ReleaseContinuationPoints); /* Array length field ignored: NoOfContinuationPoints */ - parseArraySimple(subtree, tvb, pOffset, "ContinuationPoints", "ByteString", hf_opcua_ContinuationPoints, parseByteString, ett_opcua_array_ByteString); + parseArraySimple(subtree, tvb, pinfo, pOffset, "ContinuationPoints", "ByteString", hf_opcua_ContinuationPoints, parseByteString, ett_opcua_array_ByteString); proto_item_set_end(ti, tvb, *pOffset); } -void parseBrowseNextResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseBrowseNextResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_BrowseNextResponse, &ti, "BrowseNextResponse"); - parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); + parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader"); /* Array length field ignored: NoOfResults */ - parseArrayComplex(subtree, tvb, pOffset, "Results", "BrowseResult", parseBrowseResult, ett_opcua_array_BrowseResult); + parseArrayComplex(subtree, tvb, pinfo, pOffset, "Results", "BrowseResult", parseBrowseResult, ett_opcua_array_BrowseResult); /* Array length field ignored: NoOfDiagnosticInfos */ - parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); + parseArrayComplex(subtree, tvb, pinfo, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); proto_item_set_end(ti, tvb, *pOffset); } -void parseTranslateBrowsePathsToNodeIdsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseTranslateBrowsePathsToNodeIdsRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_TranslateBrowsePathsToNodeIdsRequest, &ti, "TranslateBrowsePathsToNodeIdsRequest"); - parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); + parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader"); /* Array length field ignored: NoOfBrowsePaths */ - parseArrayComplex(subtree, tvb, pOffset, "BrowsePaths", "BrowsePath", parseBrowsePath, ett_opcua_array_BrowsePath); + parseArrayComplex(subtree, tvb, pinfo, pOffset, "BrowsePaths", "BrowsePath", parseBrowsePath, ett_opcua_array_BrowsePath); proto_item_set_end(ti, tvb, *pOffset); } -void parseTranslateBrowsePathsToNodeIdsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseTranslateBrowsePathsToNodeIdsResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_TranslateBrowsePathsToNodeIdsResponse, &ti, "TranslateBrowsePathsToNodeIdsResponse"); - parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); + parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader"); /* Array length field ignored: NoOfResults */ - parseArrayComplex(subtree, tvb, pOffset, "Results", "BrowsePathResult", parseBrowsePathResult, ett_opcua_array_BrowsePathResult); + parseArrayComplex(subtree, tvb, pinfo, pOffset, "Results", "BrowsePathResult", parseBrowsePathResult, ett_opcua_array_BrowsePathResult); /* Array length field ignored: NoOfDiagnosticInfos */ - parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); + parseArrayComplex(subtree, tvb, pinfo, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); proto_item_set_end(ti, tvb, *pOffset); } -void parseRegisterNodesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseRegisterNodesRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_RegisterNodesRequest, &ti, "RegisterNodesRequest"); - parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); + parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader"); /* Array length field ignored: NoOfNodesToRegister */ - parseArrayComplex(subtree, tvb, pOffset, "NodesToRegister", "NodeId", parseNodeId, ett_opcua_array_NodeId); + parseArrayComplex(subtree, tvb, pinfo, pOffset, "NodesToRegister", "NodeId", parseNodeId, ett_opcua_array_NodeId); proto_item_set_end(ti, tvb, *pOffset); } -void parseRegisterNodesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseRegisterNodesResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_RegisterNodesResponse, &ti, "RegisterNodesResponse"); - parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); + parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader"); /* Array length field ignored: NoOfRegisteredNodeIds */ - parseArrayComplex(subtree, tvb, pOffset, "RegisteredNodeIds", "NodeId", parseNodeId, ett_opcua_array_NodeId); + parseArrayComplex(subtree, tvb, pinfo, pOffset, "RegisteredNodeIds", "NodeId", parseNodeId, ett_opcua_array_NodeId); proto_item_set_end(ti, tvb, *pOffset); } -void parseUnregisterNodesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseUnregisterNodesRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_UnregisterNodesRequest, &ti, "UnregisterNodesRequest"); - parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); + parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader"); /* Array length field ignored: NoOfNodesToUnregister */ - parseArrayComplex(subtree, tvb, pOffset, "NodesToUnregister", "NodeId", parseNodeId, ett_opcua_array_NodeId); + parseArrayComplex(subtree, tvb, pinfo, pOffset, "NodesToUnregister", "NodeId", parseNodeId, ett_opcua_array_NodeId); proto_item_set_end(ti, tvb, *pOffset); } -void parseUnregisterNodesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseUnregisterNodesResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_UnregisterNodesResponse, &ti, "UnregisterNodesResponse"); - parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); + parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader"); proto_item_set_end(ti, tvb, *pOffset); } -void parseQueryFirstRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseQueryFirstRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_QueryFirstRequest, &ti, "QueryFirstRequest"); - parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); - parseViewDescription(subtree, tvb, pOffset, "View"); + parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader"); + parseViewDescription(subtree, tvb, pinfo, pOffset, "View"); /* Array length field ignored: NoOfNodeTypes */ - parseArrayComplex(subtree, tvb, pOffset, "NodeTypes", "NodeTypeDescription", parseNodeTypeDescription, ett_opcua_array_NodeTypeDescription); - parseContentFilter(subtree, tvb, pOffset, "Filter"); - parseUInt32(subtree, tvb, pOffset, hf_opcua_MaxDataSetsToReturn); - parseUInt32(subtree, tvb, pOffset, hf_opcua_MaxReferencesToReturn); + parseArrayComplex(subtree, tvb, pinfo, pOffset, "NodeTypes", "NodeTypeDescription", parseNodeTypeDescription, ett_opcua_array_NodeTypeDescription); + parseContentFilter(subtree, tvb, pinfo, pOffset, "Filter"); + parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_MaxDataSetsToReturn); + parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_MaxReferencesToReturn); proto_item_set_end(ti, tvb, *pOffset); } -void parseQueryFirstResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseQueryFirstResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_QueryFirstResponse, &ti, "QueryFirstResponse"); - parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); + parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader"); /* Array length field ignored: NoOfQueryDataSets */ - parseArrayComplex(subtree, tvb, pOffset, "QueryDataSets", "QueryDataSet", parseQueryDataSet, ett_opcua_array_QueryDataSet); - parseByteString(subtree, tvb, pOffset, hf_opcua_ContinuationPoint); + parseArrayComplex(subtree, tvb, pinfo, pOffset, "QueryDataSets", "QueryDataSet", parseQueryDataSet, ett_opcua_array_QueryDataSet); + parseByteString(subtree, tvb, pinfo, pOffset, hf_opcua_ContinuationPoint); /* Array length field ignored: NoOfParsingResults */ - parseArrayComplex(subtree, tvb, pOffset, "ParsingResults", "ParsingResult", parseParsingResult, ett_opcua_array_ParsingResult); + parseArrayComplex(subtree, tvb, pinfo, pOffset, "ParsingResults", "ParsingResult", parseParsingResult, ett_opcua_array_ParsingResult); /* Array length field ignored: NoOfDiagnosticInfos */ - parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); - parseContentFilterResult(subtree, tvb, pOffset, "FilterResult"); + parseArrayComplex(subtree, tvb, pinfo, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); + parseContentFilterResult(subtree, tvb, pinfo, pOffset, "FilterResult"); proto_item_set_end(ti, tvb, *pOffset); } -void parseQueryNextRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseQueryNextRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_QueryNextRequest, &ti, "QueryNextRequest"); - parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); - parseBoolean(subtree, tvb, pOffset, hf_opcua_ReleaseContinuationPoint); - parseByteString(subtree, tvb, pOffset, hf_opcua_ContinuationPoint); + parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader"); + parseBoolean(subtree, tvb, pinfo, pOffset, hf_opcua_ReleaseContinuationPoint); + parseByteString(subtree, tvb, pinfo, pOffset, hf_opcua_ContinuationPoint); proto_item_set_end(ti, tvb, *pOffset); } -void parseQueryNextResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseQueryNextResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_QueryNextResponse, &ti, "QueryNextResponse"); - parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); + parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader"); /* Array length field ignored: NoOfQueryDataSets */ - parseArrayComplex(subtree, tvb, pOffset, "QueryDataSets", "QueryDataSet", parseQueryDataSet, ett_opcua_array_QueryDataSet); - parseByteString(subtree, tvb, pOffset, hf_opcua_RevisedContinuationPoint); + parseArrayComplex(subtree, tvb, pinfo, pOffset, "QueryDataSets", "QueryDataSet", parseQueryDataSet, ett_opcua_array_QueryDataSet); + parseByteString(subtree, tvb, pinfo, pOffset, hf_opcua_RevisedContinuationPoint); proto_item_set_end(ti, tvb, *pOffset); } -void parseReadRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseReadRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_ReadRequest, &ti, "ReadRequest"); - parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); - parseDouble(subtree, tvb, pOffset, hf_opcua_MaxAge); - parseTimestampsToReturn(subtree, tvb, pOffset); + parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader"); + parseDouble(subtree, tvb, pinfo, pOffset, hf_opcua_MaxAge); + parseTimestampsToReturn(subtree, tvb, pinfo, pOffset); /* Array length field ignored: NoOfNodesToRead */ - parseArrayComplex(subtree, tvb, pOffset, "NodesToRead", "ReadValueId", parseReadValueId, ett_opcua_array_ReadValueId); + parseArrayComplex(subtree, tvb, pinfo, pOffset, "NodesToRead", "ReadValueId", parseReadValueId, ett_opcua_array_ReadValueId); proto_item_set_end(ti, tvb, *pOffset); } -void parseReadResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseReadResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_ReadResponse, &ti, "ReadResponse"); - parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); + parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader"); /* Array length field ignored: NoOfResults */ - parseArrayComplex(subtree, tvb, pOffset, "Results", "DataValue", parseDataValue, ett_opcua_array_DataValue); + parseArrayComplex(subtree, tvb, pinfo, pOffset, "Results", "DataValue", parseDataValue, ett_opcua_array_DataValue); /* Array length field ignored: NoOfDiagnosticInfos */ - parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); + parseArrayComplex(subtree, tvb, pinfo, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); proto_item_set_end(ti, tvb, *pOffset); } -void parseHistoryReadRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseHistoryReadRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_HistoryReadRequest, &ti, "HistoryReadRequest"); - parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); - parseExtensionObject(subtree, tvb, pOffset, "HistoryReadDetails"); - parseTimestampsToReturn(subtree, tvb, pOffset); - parseBoolean(subtree, tvb, pOffset, hf_opcua_ReleaseContinuationPoints); + parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader"); + parseExtensionObject(subtree, tvb, pinfo, pOffset, "HistoryReadDetails"); + parseTimestampsToReturn(subtree, tvb, pinfo, pOffset); + parseBoolean(subtree, tvb, pinfo, pOffset, hf_opcua_ReleaseContinuationPoints); /* Array length field ignored: NoOfNodesToRead */ - parseArrayComplex(subtree, tvb, pOffset, "NodesToRead", "HistoryReadValueId", parseHistoryReadValueId, ett_opcua_array_HistoryReadValueId); + parseArrayComplex(subtree, tvb, pinfo, pOffset, "NodesToRead", "HistoryReadValueId", parseHistoryReadValueId, ett_opcua_array_HistoryReadValueId); proto_item_set_end(ti, tvb, *pOffset); } -void parseHistoryReadResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseHistoryReadResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_HistoryReadResponse, &ti, "HistoryReadResponse"); - parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); + parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader"); /* Array length field ignored: NoOfResults */ - parseArrayComplex(subtree, tvb, pOffset, "Results", "HistoryReadResult", parseHistoryReadResult, ett_opcua_array_HistoryReadResult); + parseArrayComplex(subtree, tvb, pinfo, pOffset, "Results", "HistoryReadResult", parseHistoryReadResult, ett_opcua_array_HistoryReadResult); /* Array length field ignored: NoOfDiagnosticInfos */ - parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); + parseArrayComplex(subtree, tvb, pinfo, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); proto_item_set_end(ti, tvb, *pOffset); } -void parseWriteRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseWriteRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_WriteRequest, &ti, "WriteRequest"); - parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); + parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader"); /* Array length field ignored: NoOfNodesToWrite */ - parseArrayComplex(subtree, tvb, pOffset, "NodesToWrite", "WriteValue", parseWriteValue, ett_opcua_array_WriteValue); + parseArrayComplex(subtree, tvb, pinfo, pOffset, "NodesToWrite", "WriteValue", parseWriteValue, ett_opcua_array_WriteValue); proto_item_set_end(ti, tvb, *pOffset); } -void parseWriteResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseWriteResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_WriteResponse, &ti, "WriteResponse"); - parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); + parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader"); /* Array length field ignored: NoOfResults */ - parseArraySimple(subtree, tvb, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode, ett_opcua_array_StatusCode); + parseArraySimple(subtree, tvb, pinfo, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode, ett_opcua_array_StatusCode); /* Array length field ignored: NoOfDiagnosticInfos */ - parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); + parseArrayComplex(subtree, tvb, pinfo, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); proto_item_set_end(ti, tvb, *pOffset); } -void parseHistoryUpdateRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseHistoryUpdateRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_HistoryUpdateRequest, &ti, "HistoryUpdateRequest"); - parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); + parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader"); /* Array length field ignored: NoOfHistoryUpdateDetails */ - parseArrayComplex(subtree, tvb, pOffset, "HistoryUpdateDetails", "ExtensionObject", parseExtensionObject, ett_opcua_array_ExtensionObject); + parseArrayComplex(subtree, tvb, pinfo, pOffset, "HistoryUpdateDetails", "ExtensionObject", parseExtensionObject, ett_opcua_array_ExtensionObject); proto_item_set_end(ti, tvb, *pOffset); } -void parseHistoryUpdateResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseHistoryUpdateResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_HistoryUpdateResponse, &ti, "HistoryUpdateResponse"); - parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); + parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader"); /* Array length field ignored: NoOfResults */ - parseArrayComplex(subtree, tvb, pOffset, "Results", "HistoryUpdateResult", parseHistoryUpdateResult, ett_opcua_array_HistoryUpdateResult); + parseArrayComplex(subtree, tvb, pinfo, pOffset, "Results", "HistoryUpdateResult", parseHistoryUpdateResult, ett_opcua_array_HistoryUpdateResult); /* Array length field ignored: NoOfDiagnosticInfos */ - parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); + parseArrayComplex(subtree, tvb, pinfo, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); proto_item_set_end(ti, tvb, *pOffset); } -void parseCallRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseCallRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_CallRequest, &ti, "CallRequest"); - parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); + parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader"); /* Array length field ignored: NoOfMethodsToCall */ - parseArrayComplex(subtree, tvb, pOffset, "MethodsToCall", "CallMethodRequest", parseCallMethodRequest, ett_opcua_array_CallMethodRequest); + parseArrayComplex(subtree, tvb, pinfo, pOffset, "MethodsToCall", "CallMethodRequest", parseCallMethodRequest, ett_opcua_array_CallMethodRequest); proto_item_set_end(ti, tvb, *pOffset); } -void parseCallResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseCallResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_CallResponse, &ti, "CallResponse"); - parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); + parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader"); /* Array length field ignored: NoOfResults */ - parseArrayComplex(subtree, tvb, pOffset, "Results", "CallMethodResult", parseCallMethodResult, ett_opcua_array_CallMethodResult); + parseArrayComplex(subtree, tvb, pinfo, pOffset, "Results", "CallMethodResult", parseCallMethodResult, ett_opcua_array_CallMethodResult); /* Array length field ignored: NoOfDiagnosticInfos */ - parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); + parseArrayComplex(subtree, tvb, pinfo, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); proto_item_set_end(ti, tvb, *pOffset); } -void parseCreateMonitoredItemsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseCreateMonitoredItemsRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_CreateMonitoredItemsRequest, &ti, "CreateMonitoredItemsRequest"); - parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); - parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId); - parseTimestampsToReturn(subtree, tvb, pOffset); + parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader"); + parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_SubscriptionId); + parseTimestampsToReturn(subtree, tvb, pinfo, pOffset); /* Array length field ignored: NoOfItemsToCreate */ - parseArrayComplex(subtree, tvb, pOffset, "ItemsToCreate", "MonitoredItemCreateRequest", parseMonitoredItemCreateRequest, ett_opcua_array_MonitoredItemCreateRequest); + parseArrayComplex(subtree, tvb, pinfo, pOffset, "ItemsToCreate", "MonitoredItemCreateRequest", parseMonitoredItemCreateRequest, ett_opcua_array_MonitoredItemCreateRequest); proto_item_set_end(ti, tvb, *pOffset); } -void parseCreateMonitoredItemsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseCreateMonitoredItemsResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_CreateMonitoredItemsResponse, &ti, "CreateMonitoredItemsResponse"); - parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); + parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader"); /* Array length field ignored: NoOfResults */ - parseArrayComplex(subtree, tvb, pOffset, "Results", "MonitoredItemCreateResult", parseMonitoredItemCreateResult, ett_opcua_array_MonitoredItemCreateResult); + parseArrayComplex(subtree, tvb, pinfo, pOffset, "Results", "MonitoredItemCreateResult", parseMonitoredItemCreateResult, ett_opcua_array_MonitoredItemCreateResult); /* Array length field ignored: NoOfDiagnosticInfos */ - parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); + parseArrayComplex(subtree, tvb, pinfo, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); proto_item_set_end(ti, tvb, *pOffset); } -void parseModifyMonitoredItemsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseModifyMonitoredItemsRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_ModifyMonitoredItemsRequest, &ti, "ModifyMonitoredItemsRequest"); - parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); - parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId); - parseTimestampsToReturn(subtree, tvb, pOffset); + parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader"); + parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_SubscriptionId); + parseTimestampsToReturn(subtree, tvb, pinfo, pOffset); /* Array length field ignored: NoOfItemsToModify */ - parseArrayComplex(subtree, tvb, pOffset, "ItemsToModify", "MonitoredItemModifyRequest", parseMonitoredItemModifyRequest, ett_opcua_array_MonitoredItemModifyRequest); + parseArrayComplex(subtree, tvb, pinfo, pOffset, "ItemsToModify", "MonitoredItemModifyRequest", parseMonitoredItemModifyRequest, ett_opcua_array_MonitoredItemModifyRequest); proto_item_set_end(ti, tvb, *pOffset); } -void parseModifyMonitoredItemsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseModifyMonitoredItemsResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_ModifyMonitoredItemsResponse, &ti, "ModifyMonitoredItemsResponse"); - parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); + parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader"); /* Array length field ignored: NoOfResults */ - parseArrayComplex(subtree, tvb, pOffset, "Results", "MonitoredItemModifyResult", parseMonitoredItemModifyResult, ett_opcua_array_MonitoredItemModifyResult); + parseArrayComplex(subtree, tvb, pinfo, pOffset, "Results", "MonitoredItemModifyResult", parseMonitoredItemModifyResult, ett_opcua_array_MonitoredItemModifyResult); /* Array length field ignored: NoOfDiagnosticInfos */ - parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); + parseArrayComplex(subtree, tvb, pinfo, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); proto_item_set_end(ti, tvb, *pOffset); } -void parseSetMonitoringModeRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseSetMonitoringModeRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_SetMonitoringModeRequest, &ti, "SetMonitoringModeRequest"); - parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); - parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId); - parseMonitoringMode(subtree, tvb, pOffset); + parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader"); + parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_SubscriptionId); + parseMonitoringMode(subtree, tvb, pinfo, pOffset); /* Array length field ignored: NoOfMonitoredItemIds */ - parseArraySimple(subtree, tvb, pOffset, "MonitoredItemIds", "UInt32", hf_opcua_MonitoredItemIds, parseUInt32, ett_opcua_array_UInt32); + parseArraySimple(subtree, tvb, pinfo, pOffset, "MonitoredItemIds", "UInt32", hf_opcua_MonitoredItemIds, parseUInt32, ett_opcua_array_UInt32); proto_item_set_end(ti, tvb, *pOffset); } -void parseSetMonitoringModeResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseSetMonitoringModeResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_SetMonitoringModeResponse, &ti, "SetMonitoringModeResponse"); - parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); + parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader"); /* Array length field ignored: NoOfResults */ - parseArraySimple(subtree, tvb, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode, ett_opcua_array_StatusCode); + parseArraySimple(subtree, tvb, pinfo, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode, ett_opcua_array_StatusCode); /* Array length field ignored: NoOfDiagnosticInfos */ - parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); + parseArrayComplex(subtree, tvb, pinfo, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); proto_item_set_end(ti, tvb, *pOffset); } -void parseSetTriggeringRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseSetTriggeringRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_SetTriggeringRequest, &ti, "SetTriggeringRequest"); - parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); - parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId); - parseUInt32(subtree, tvb, pOffset, hf_opcua_TriggeringItemId); + parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader"); + parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_SubscriptionId); + parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_TriggeringItemId); /* Array length field ignored: NoOfLinksToAdd */ - parseArraySimple(subtree, tvb, pOffset, "LinksToAdd", "UInt32", hf_opcua_LinksToAdd, parseUInt32, ett_opcua_array_UInt32); + parseArraySimple(subtree, tvb, pinfo, pOffset, "LinksToAdd", "UInt32", hf_opcua_LinksToAdd, parseUInt32, ett_opcua_array_UInt32); /* Array length field ignored: NoOfLinksToRemove */ - parseArraySimple(subtree, tvb, pOffset, "LinksToRemove", "UInt32", hf_opcua_LinksToRemove, parseUInt32, ett_opcua_array_UInt32); + parseArraySimple(subtree, tvb, pinfo, pOffset, "LinksToRemove", "UInt32", hf_opcua_LinksToRemove, parseUInt32, ett_opcua_array_UInt32); proto_item_set_end(ti, tvb, *pOffset); } -void parseSetTriggeringResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseSetTriggeringResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_SetTriggeringResponse, &ti, "SetTriggeringResponse"); - parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); + parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader"); /* Array length field ignored: NoOfAddResults */ - parseArraySimple(subtree, tvb, pOffset, "AddResults", "StatusCode", hf_opcua_AddResults, parseStatusCode, ett_opcua_array_StatusCode); + parseArraySimple(subtree, tvb, pinfo, pOffset, "AddResults", "StatusCode", hf_opcua_AddResults, parseStatusCode, ett_opcua_array_StatusCode); /* Array length field ignored: NoOfAddDiagnosticInfos */ - parseArrayComplex(subtree, tvb, pOffset, "AddDiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); + parseArrayComplex(subtree, tvb, pinfo, pOffset, "AddDiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); /* Array length field ignored: NoOfRemoveResults */ - parseArraySimple(subtree, tvb, pOffset, "RemoveResults", "StatusCode", hf_opcua_RemoveResults, parseStatusCode, ett_opcua_array_StatusCode); + parseArraySimple(subtree, tvb, pinfo, pOffset, "RemoveResults", "StatusCode", hf_opcua_RemoveResults, parseStatusCode, ett_opcua_array_StatusCode); /* Array length field ignored: NoOfRemoveDiagnosticInfos */ - parseArrayComplex(subtree, tvb, pOffset, "RemoveDiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); + parseArrayComplex(subtree, tvb, pinfo, pOffset, "RemoveDiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); proto_item_set_end(ti, tvb, *pOffset); } -void parseDeleteMonitoredItemsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseDeleteMonitoredItemsRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_DeleteMonitoredItemsRequest, &ti, "DeleteMonitoredItemsRequest"); - parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); - parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId); + parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader"); + parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_SubscriptionId); /* Array length field ignored: NoOfMonitoredItemIds */ - parseArraySimple(subtree, tvb, pOffset, "MonitoredItemIds", "UInt32", hf_opcua_MonitoredItemIds, parseUInt32, ett_opcua_array_UInt32); + parseArraySimple(subtree, tvb, pinfo, pOffset, "MonitoredItemIds", "UInt32", hf_opcua_MonitoredItemIds, parseUInt32, ett_opcua_array_UInt32); proto_item_set_end(ti, tvb, *pOffset); } -void parseDeleteMonitoredItemsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseDeleteMonitoredItemsResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_DeleteMonitoredItemsResponse, &ti, "DeleteMonitoredItemsResponse"); - parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); + parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader"); /* Array length field ignored: NoOfResults */ - parseArraySimple(subtree, tvb, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode, ett_opcua_array_StatusCode); + parseArraySimple(subtree, tvb, pinfo, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode, ett_opcua_array_StatusCode); /* Array length field ignored: NoOfDiagnosticInfos */ - parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); + parseArrayComplex(subtree, tvb, pinfo, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); proto_item_set_end(ti, tvb, *pOffset); } -void parseCreateSubscriptionRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseCreateSubscriptionRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_CreateSubscriptionRequest, &ti, "CreateSubscriptionRequest"); - parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); - parseDouble(subtree, tvb, pOffset, hf_opcua_RequestedPublishingInterval); - parseUInt32(subtree, tvb, pOffset, hf_opcua_RequestedLifetimeCount); - parseUInt32(subtree, tvb, pOffset, hf_opcua_RequestedMaxKeepAliveCount); - parseUInt32(subtree, tvb, pOffset, hf_opcua_MaxNotificationsPerPublish); - parseBoolean(subtree, tvb, pOffset, hf_opcua_PublishingEnabled); - parseByte(subtree, tvb, pOffset, hf_opcua_Priority); + parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader"); + parseDouble(subtree, tvb, pinfo, pOffset, hf_opcua_RequestedPublishingInterval); + parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_RequestedLifetimeCount); + parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_RequestedMaxKeepAliveCount); + parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_MaxNotificationsPerPublish); + parseBoolean(subtree, tvb, pinfo, pOffset, hf_opcua_PublishingEnabled); + parseByte(subtree, tvb, pinfo, pOffset, hf_opcua_Priority); proto_item_set_end(ti, tvb, *pOffset); } -void parseCreateSubscriptionResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseCreateSubscriptionResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_CreateSubscriptionResponse, &ti, "CreateSubscriptionResponse"); - parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); - parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId); - parseDouble(subtree, tvb, pOffset, hf_opcua_RevisedPublishingInterval); - parseUInt32(subtree, tvb, pOffset, hf_opcua_RevisedLifetimeCount); - parseUInt32(subtree, tvb, pOffset, hf_opcua_RevisedMaxKeepAliveCount); + parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader"); + parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_SubscriptionId); + parseDouble(subtree, tvb, pinfo, pOffset, hf_opcua_RevisedPublishingInterval); + parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_RevisedLifetimeCount); + parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_RevisedMaxKeepAliveCount); proto_item_set_end(ti, tvb, *pOffset); } -void parseModifySubscriptionRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseModifySubscriptionRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_ModifySubscriptionRequest, &ti, "ModifySubscriptionRequest"); - parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); - parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId); - parseDouble(subtree, tvb, pOffset, hf_opcua_RequestedPublishingInterval); - parseUInt32(subtree, tvb, pOffset, hf_opcua_RequestedLifetimeCount); - parseUInt32(subtree, tvb, pOffset, hf_opcua_RequestedMaxKeepAliveCount); - parseUInt32(subtree, tvb, pOffset, hf_opcua_MaxNotificationsPerPublish); - parseByte(subtree, tvb, pOffset, hf_opcua_Priority); + parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader"); + parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_SubscriptionId); + parseDouble(subtree, tvb, pinfo, pOffset, hf_opcua_RequestedPublishingInterval); + parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_RequestedLifetimeCount); + parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_RequestedMaxKeepAliveCount); + parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_MaxNotificationsPerPublish); + parseByte(subtree, tvb, pinfo, pOffset, hf_opcua_Priority); proto_item_set_end(ti, tvb, *pOffset); } -void parseModifySubscriptionResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseModifySubscriptionResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_ModifySubscriptionResponse, &ti, "ModifySubscriptionResponse"); - parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); - parseDouble(subtree, tvb, pOffset, hf_opcua_RevisedPublishingInterval); - parseUInt32(subtree, tvb, pOffset, hf_opcua_RevisedLifetimeCount); - parseUInt32(subtree, tvb, pOffset, hf_opcua_RevisedMaxKeepAliveCount); + parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader"); + parseDouble(subtree, tvb, pinfo, pOffset, hf_opcua_RevisedPublishingInterval); + parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_RevisedLifetimeCount); + parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_RevisedMaxKeepAliveCount); proto_item_set_end(ti, tvb, *pOffset); } -void parseSetPublishingModeRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseSetPublishingModeRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_SetPublishingModeRequest, &ti, "SetPublishingModeRequest"); - parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); - parseBoolean(subtree, tvb, pOffset, hf_opcua_PublishingEnabled); + parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader"); + parseBoolean(subtree, tvb, pinfo, pOffset, hf_opcua_PublishingEnabled); /* Array length field ignored: NoOfSubscriptionIds */ - parseArraySimple(subtree, tvb, pOffset, "SubscriptionIds", "UInt32", hf_opcua_SubscriptionIds, parseUInt32, ett_opcua_array_UInt32); + parseArraySimple(subtree, tvb, pinfo, pOffset, "SubscriptionIds", "UInt32", hf_opcua_SubscriptionIds, parseUInt32, ett_opcua_array_UInt32); proto_item_set_end(ti, tvb, *pOffset); } -void parseSetPublishingModeResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseSetPublishingModeResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_SetPublishingModeResponse, &ti, "SetPublishingModeResponse"); - parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); + parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader"); /* Array length field ignored: NoOfResults */ - parseArraySimple(subtree, tvb, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode, ett_opcua_array_StatusCode); + parseArraySimple(subtree, tvb, pinfo, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode, ett_opcua_array_StatusCode); /* Array length field ignored: NoOfDiagnosticInfos */ - parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); + parseArrayComplex(subtree, tvb, pinfo, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); proto_item_set_end(ti, tvb, *pOffset); } -void parsePublishRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parsePublishRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_PublishRequest, &ti, "PublishRequest"); - parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); + parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader"); /* Array length field ignored: NoOfSubscriptionAcknowledgements */ - parseArrayComplex(subtree, tvb, pOffset, "SubscriptionAcknowledgements", "SubscriptionAcknowledgement", parseSubscriptionAcknowledgement, ett_opcua_array_SubscriptionAcknowledgement); + parseArrayComplex(subtree, tvb, pinfo, pOffset, "SubscriptionAcknowledgements", "SubscriptionAcknowledgement", parseSubscriptionAcknowledgement, ett_opcua_array_SubscriptionAcknowledgement); proto_item_set_end(ti, tvb, *pOffset); } -void parsePublishResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parsePublishResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_PublishResponse, &ti, "PublishResponse"); - parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); - parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId); + parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader"); + parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_SubscriptionId); /* Array length field ignored: NoOfAvailableSequenceNumbers */ - parseArraySimple(subtree, tvb, pOffset, "AvailableSequenceNumbers", "UInt32", hf_opcua_AvailableSequenceNumbers, parseUInt32, ett_opcua_array_UInt32); - parseBoolean(subtree, tvb, pOffset, hf_opcua_MoreNotifications); - parseNotificationMessage(subtree, tvb, pOffset, "NotificationMessage"); + parseArraySimple(subtree, tvb, pinfo, pOffset, "AvailableSequenceNumbers", "UInt32", hf_opcua_AvailableSequenceNumbers, parseUInt32, ett_opcua_array_UInt32); + parseBoolean(subtree, tvb, pinfo, pOffset, hf_opcua_MoreNotifications); + parseNotificationMessage(subtree, tvb, pinfo, pOffset, "NotificationMessage"); /* Array length field ignored: NoOfResults */ - parseArraySimple(subtree, tvb, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode, ett_opcua_array_StatusCode); + parseArraySimple(subtree, tvb, pinfo, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode, ett_opcua_array_StatusCode); /* Array length field ignored: NoOfDiagnosticInfos */ - parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); + parseArrayComplex(subtree, tvb, pinfo, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); proto_item_set_end(ti, tvb, *pOffset); } -void parseRepublishRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseRepublishRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_RepublishRequest, &ti, "RepublishRequest"); - parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); - parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId); - parseUInt32(subtree, tvb, pOffset, hf_opcua_RetransmitSequenceNumber); + parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader"); + parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_SubscriptionId); + parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_RetransmitSequenceNumber); proto_item_set_end(ti, tvb, *pOffset); } -void parseRepublishResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseRepublishResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_RepublishResponse, &ti, "RepublishResponse"); - parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); - parseNotificationMessage(subtree, tvb, pOffset, "NotificationMessage"); + parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader"); + parseNotificationMessage(subtree, tvb, pinfo, pOffset, "NotificationMessage"); proto_item_set_end(ti, tvb, *pOffset); } -void parseTransferSubscriptionsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseTransferSubscriptionsRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_TransferSubscriptionsRequest, &ti, "TransferSubscriptionsRequest"); - parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); + parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader"); /* Array length field ignored: NoOfSubscriptionIds */ - parseArraySimple(subtree, tvb, pOffset, "SubscriptionIds", "UInt32", hf_opcua_SubscriptionIds, parseUInt32, ett_opcua_array_UInt32); - parseBoolean(subtree, tvb, pOffset, hf_opcua_SendInitialValues); + parseArraySimple(subtree, tvb, pinfo, pOffset, "SubscriptionIds", "UInt32", hf_opcua_SubscriptionIds, parseUInt32, ett_opcua_array_UInt32); + parseBoolean(subtree, tvb, pinfo, pOffset, hf_opcua_SendInitialValues); proto_item_set_end(ti, tvb, *pOffset); } -void parseTransferSubscriptionsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseTransferSubscriptionsResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_TransferSubscriptionsResponse, &ti, "TransferSubscriptionsResponse"); - parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); + parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader"); /* Array length field ignored: NoOfResults */ - parseArrayComplex(subtree, tvb, pOffset, "Results", "TransferResult", parseTransferResult, ett_opcua_array_TransferResult); + parseArrayComplex(subtree, tvb, pinfo, pOffset, "Results", "TransferResult", parseTransferResult, ett_opcua_array_TransferResult); /* Array length field ignored: NoOfDiagnosticInfos */ - parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); + parseArrayComplex(subtree, tvb, pinfo, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); proto_item_set_end(ti, tvb, *pOffset); } -void parseDeleteSubscriptionsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseDeleteSubscriptionsRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_DeleteSubscriptionsRequest, &ti, "DeleteSubscriptionsRequest"); - parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); + parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader"); /* Array length field ignored: NoOfSubscriptionIds */ - parseArraySimple(subtree, tvb, pOffset, "SubscriptionIds", "UInt32", hf_opcua_SubscriptionIds, parseUInt32, ett_opcua_array_UInt32); + parseArraySimple(subtree, tvb, pinfo, pOffset, "SubscriptionIds", "UInt32", hf_opcua_SubscriptionIds, parseUInt32, ett_opcua_array_UInt32); proto_item_set_end(ti, tvb, *pOffset); } -void parseDeleteSubscriptionsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseDeleteSubscriptionsResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_DeleteSubscriptionsResponse, &ti, "DeleteSubscriptionsResponse"); - parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); + parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader"); /* Array length field ignored: NoOfResults */ - parseArraySimple(subtree, tvb, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode, ett_opcua_array_StatusCode); + parseArraySimple(subtree, tvb, pinfo, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode, ett_opcua_array_StatusCode); /* Array length field ignored: NoOfDiagnosticInfos */ - parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); + parseArrayComplex(subtree, tvb, pinfo, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); proto_item_set_end(ti, tvb, *pOffset); } -void parseTestStackRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseTestStackRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_TestStackRequest, &ti, "TestStackRequest"); - parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); - parseUInt32(subtree, tvb, pOffset, hf_opcua_TestId); - parseInt32(subtree, tvb, pOffset, hf_opcua_Iteration); - parseVariant(subtree, tvb, pOffset, "Input"); + parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader"); + parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_TestId); + parseInt32(subtree, tvb, pinfo, pOffset, hf_opcua_Iteration); + parseVariant(subtree, tvb, pinfo, pOffset, "Input"); proto_item_set_end(ti, tvb, *pOffset); } -void parseTestStackResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseTestStackResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_TestStackResponse, &ti, "TestStackResponse"); - parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); - parseVariant(subtree, tvb, pOffset, "Output"); + parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader"); + parseVariant(subtree, tvb, pinfo, pOffset, "Output"); proto_item_set_end(ti, tvb, *pOffset); } -void parseTestStackExRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseTestStackExRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_TestStackExRequest, &ti, "TestStackExRequest"); - parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); - parseUInt32(subtree, tvb, pOffset, hf_opcua_TestId); - parseInt32(subtree, tvb, pOffset, hf_opcua_Iteration); - parseCompositeTestType(subtree, tvb, pOffset, "Input"); + parseRequestHeader(subtree, tvb, pinfo, pOffset, "RequestHeader"); + parseUInt32(subtree, tvb, pinfo, pOffset, hf_opcua_TestId); + parseInt32(subtree, tvb, pinfo, pOffset, hf_opcua_Iteration); + parseCompositeTestType(subtree, tvb, pinfo, pOffset, "Input"); proto_item_set_end(ti, tvb, *pOffset); } -void parseTestStackExResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseTestStackExResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset) { proto_item *ti; proto_tree *subtree = proto_tree_add_subtree(tree, tvb, *pOffset, -1, ett_opcua_TestStackExResponse, &ti, "TestStackExResponse"); - parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); - parseCompositeTestType(subtree, tvb, pOffset, "Output"); + parseResponseHeader(subtree, tvb, pinfo, pOffset, "ResponseHeader"); + parseCompositeTestType(subtree, tvb, pinfo, pOffset, "Output"); proto_item_set_end(ti, tvb, *pOffset); } |