aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-bacapp.c
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2012-04-23 07:28:53 +0000
committerAnders Broman <anders.broman@ericsson.com>2012-04-23 07:28:53 +0000
commite966a129bdd1bb9310c2ff9947c36c1855716f2a (patch)
tree76d8463ea5b16756911da42451a6489f5863af4f /epan/dissectors/packet-bacapp.c
parent361454b6b843b97aae50410f2545834b805efeb2 (diff)
From Evan Huus:
Another case where a ridiculously large length field was causing a loop counter to overflow. Had to pass pinfo all over the place to add expert info, but the meat of the fix is on line 4960 (after patch applied). https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=7121 svn path=/trunk/; revision=42203
Diffstat (limited to 'epan/dissectors/packet-bacapp.c')
-rw-r--r--epan/dissectors/packet-bacapp.c1148
1 files changed, 590 insertions, 558 deletions
diff --git a/epan/dissectors/packet-bacapp.c b/epan/dissectors/packet-bacapp.c
index c732ad59e9..b901400c8a 100644
--- a/epan/dissectors/packet-bacapp.c
+++ b/epan/dissectors/packet-bacapp.c
@@ -247,28 +247,31 @@ fAbortPDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset);
/**
* 20.2.4, adds the label with max 64Bit unsigned Integer Value to tree
* @param tvb
+ * @param pinfo
* @param tree
* @param offset
* @param label
* @return modified offset
*/
static guint
-fUnsignedTag (tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar *label);
+fUnsignedTag (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset, const gchar *label);
/**
* 20.2.5, adds the label with max 64Bit signed Integer Value to tree
* @param tvb
+ * @param pinfo
* @param tree
* @param offset
* @param label
* @return modified offset
*/
static guint
-fSignedTag (tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar *label);
+fSignedTag (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset, const gchar *label);
/**
* 20.2.8, adds the label with Octet String to tree; if lvt == 0 then lvt = restOfFrame
* @param tvb
+ * @param pinfo
* @param tree
* @param offset
* @param label
@@ -276,29 +279,31 @@ fSignedTag (tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar *label);
* @return modified offset
*/
static guint
-fOctetString (tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar *label, guint32 lvt);
+fOctetString (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset, const gchar *label, guint32 lvt);
/**
* 20.2.12, adds the label with Date Value to tree
* @param tvb
+ * @param pinfo
* @param tree
* @param offset
* @param label
* @return modified offset
*/
static guint
-fDate (tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar *label);
+fDate (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset, const gchar *label);
/**
* 20.2.13, adds the label with Time Value to tree
* @param tvb
+ * @param pinfo
* @param tree
* @param offset
* @param label
* @return modified offset
*/
static guint
-fTime (tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar *label);
+fTime (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset, const gchar *label);
/**
* 20.2.14, adds Object Identifier to tree
@@ -617,12 +622,13 @@ fAtomicWriteFileRequest(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gui
* fileStartRecord [1] INTEGER,
* }
* @param tvb
+ * @param pinfo
* @param tree
* @param offset
* @return modified offset
*/
static guint
-fAtomicWriteFileAck (tvbuff_t *tvb, proto_tree *tree, guint offset);
+fAtomicWriteFileAck (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset);
/**
* AddListElement-Request ::= SEQUENCE {
@@ -865,12 +871,13 @@ fWritePropertyMultipleRequest(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tre
* password [2] CharacterString (SIZE(1..20)) OPTIONAL
* }
* @param tvb
+ * @param pinfo
* @param tree
* @param offset
* @return modified offset
*/
static guint
-fDeviceCommunicationControlRequest(tvbuff_t *tvb, proto_tree *tree, guint offset);
+fDeviceCommunicationControlRequest(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset);
/**
* ConfirmedPrivateTransfer-Request ::= SEQUENCE {
@@ -938,12 +945,13 @@ fConfirmedTextMessageRequest(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
* password [1] CharacterString (SIZE(1..20)) OPTIONAL
* }
* @param tvb
+ * @param pinfo
* @param tree
* @param offset
* @return modified offset
*/
static guint
-fReinitializeDeviceRequest(tvbuff_t *tvb, proto_tree *tree, guint offset);
+fReinitializeDeviceRequest(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset);
/**
* VTOpen-Request ::= SEQUENCE {
@@ -1006,12 +1014,13 @@ fVtDataRequest (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offse
* acceptedOctetCount [1] Unsigned OPTIONAL -- present only if allNewDataAccepted = FALSE
* }
* @param tvb
+ * @param pinfo
* @param tree
* @param offset
* @return modified offset
*/
static guint
-fVtDataAck (tvbuff_t *tvb, proto_tree *tree, guint offset);
+fVtDataAck (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset);
/**
* Authenticate-Request ::= SEQUENCE {
@@ -1022,12 +1031,13 @@ fVtDataAck (tvbuff_t *tvb, proto_tree *tree, guint offset);
* startEncypheredSession [4] BOOLEAN OPTIONAL
* }
* @param tvb
+ * @param pinfo
* @param tree
* @param offset
* @return modified offset
*/
static guint
-fAuthenticateRequest (tvbuff_t *tvb, proto_tree *tree, guint offset);
+fAuthenticateRequest (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset);
/**
* Authenticate-ACK ::= SEQUENCE {
@@ -1187,24 +1197,26 @@ fUnconfirmedTextMessageRequest(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tr
* BACnetDateTime
* }
* @param tvb
+ * @param pinfo
* @param tree
* @param offset
* @return modified offset
*/
static guint
-fTimeSynchronizationRequest (tvbuff_t *tvb, proto_tree *tree, guint offset);
+fTimeSynchronizationRequest (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset);
/**
* UTCTimeSynchronization-Request ::= SEQUENCE {
* BACnetDateTime
* }
* @param tvb
+ * @param pinfo
* @param tree
* @param offset
* @return modified offset
*/
static guint
-fUTCTimeSynchronizationRequest (tvbuff_t *tvb, proto_tree *tree, guint offset);
+fUTCTimeSynchronizationRequest (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset);
/**
* Who-Has-Request ::= SEQUENCE {
@@ -1399,12 +1411,13 @@ fActionList (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset);
* mac-address OCTET STRING -- A string of length 0 indicates a broadcast
* }
* @param tvb
+ * @param pinfo
* @param tree
* @param offset
* @return modified offset
*/
static guint
-fAddress (tvbuff_t *tvb, proto_tree *tree, guint offset);
+fAddress (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset);
/**
* BACnetAddressBinding ::= SEQUENCE {
@@ -1427,12 +1440,13 @@ fAddressBinding (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offs
* weekNDay [2] BacnetWeekNday
* }
* @param tvb
+ * @param pinfo
* @param tree
* @param offset
* @return modified offset
*/
static guint
-fCalendarEntry (tvbuff_t *tvb, proto_tree *tree, guint offset);
+fCalendarEntry (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset);
/**
* BACnetClientCOV ::= CHOICE {
@@ -1480,12 +1494,13 @@ fWeeklySchedule (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offs
* EndDate Date
* }
* @param tvb
+ * @param pinfo
* @param tree
* @param offset
* @return modified offset
*/
static guint
-fDateRange (tvbuff_t *tvb, proto_tree *tree, guint offset);
+fDateRange (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset);
/**
* BACnetDateTime ::= SEQUENCE {
@@ -1493,13 +1508,14 @@ fDateRange (tvbuff_t *tvb, proto_tree *tree, guint offset);
* time Time
* }
* @param tvb
+ * @param pinfo
* @param tree
* @param offset
* @param label
* @return modified offset
*/
static guint
-fDateTime (tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar *label);
+fDateTime (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset, const gchar *label);
/**
* BACnetDestination ::= SEQUENCE {
@@ -1891,13 +1907,14 @@ fSpecialEvent (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset
* dateTime [2] BACnetDateTime
* }
* @param tvb
+ * @param pinfo
* @param tree
* @param offset
* @param label
* @return modified offset
*/
static guint
-fTimeStamp (tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar *label);
+fTimeStamp (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset, const gchar *label);
static guint
fEventTimeStamps(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset);
@@ -1946,12 +1963,13 @@ fVTSession (tvbuff_t *tvb, proto_tree *tree, guint offset);
* -- 7 = Sunday
* -- X'FF' = any day of week
* @param tvb
+ * @param pinfo
* @param tree
* @param offset
* @return modified offset
*/
static guint
-fWeekNDay (tvbuff_t *tvb, proto_tree *tree, guint offset);
+fWeekNDay (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset);
/**
* ReadAccessResult ::= SEQUENCE {
@@ -2017,6 +2035,7 @@ fTagNo (tvbuff_t *tvb, guint offset);
/**
* splits Tag Header coresponding to 20.2.1 General Rules For BACnet Tags
* @param tvb = "TestyVirtualBuffer"
+ * @param pinfo = packet info
* @param offset = offset in actual tvb
* @return tag_no BACnet 20.2.1.2 Tag Number
* @return class_tag BACnet 20.2.1.1 Class
@@ -2025,28 +2044,30 @@ fTagNo (tvbuff_t *tvb, guint offset);
*/
static guint
-fTagHeader (tvbuff_t *tvb, guint offset, guint8 *tag_no, guint8* class_tag, guint32 *lvt);
+fTagHeader (tvbuff_t *tvb, packet_info *pinfo, guint offset, guint8 *tag_no, guint8* class_tag, guint32 *lvt);
/**
* adds processID with max 32Bit unsigned Integer Value to tree
* @param tvb
+ * @param pinfo
* @param tree
* @param offset
* @return modified offset
*/
static guint
-fProcessId (tvbuff_t *tvb, proto_tree *tree, guint offset);
+fProcessId (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset);
/**
* adds timeSpan with max 32Bit unsigned Integer Value to tree
* @param tvb
+ * @param pinfo
* @param tree
* @param offset
* @return modified offset
*/
static guint
-fTimeSpan (tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar *label);
+fTimeSpan (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset, const gchar *label);
/**
* BACnet Application PDUs chapter 21
@@ -2075,7 +2096,7 @@ fPropertyIdentifier (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint
* @return modified offset
*/
static guint
-fPropertyArrayIndex (tvbuff_t *tvb, proto_tree *tree, guint offset);
+fPropertyArrayIndex (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset);
/**
* listOfEventSummaries ::= SEQUENCE OF SEQUENCE {
@@ -2145,13 +2166,14 @@ fError(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset);
* Generic handler for context tagged values. Mostly for handling
* vendor-defined properties and services.
* @param tvb
+ * @param pinfo
* @param tree
* @param offset
* @return modified offset
* @todo beautify this ugly construct
*/
static guint
-fContextTaggedValue(tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar *label);
+fContextTaggedValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset, const gchar *label);
/**
* realizes some ABSTRACT-SYNTAX.&Type
@@ -2167,7 +2189,7 @@ fAbstractSyntaxNType (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint
static guint
-fBitStringTagVS (tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar *label,
+fBitStringTagVS (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset, const gchar *label,
const value_string *src);
/**
@@ -4843,8 +4865,8 @@ fSigned64 (tvbuff_t *tvb, guint offset, guint32 lvt, gint64 *val)
}
static guint
-fTagHeaderTree (tvbuff_t *tvb, proto_tree *tree, guint offset,
- guint8 *tag_no, guint8* tag_info, guint32 *lvt)
+fTagHeaderTree (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
+ guint offset, guint8 *tag_no, guint8* tag_info, guint32 *lvt)
{
guint8 tag;
guint8 value;
@@ -4934,20 +4956,30 @@ fTagHeaderTree (tvbuff_t *tvb, proto_tree *tree, guint offset,
} else
proto_tree_add_uint(subtree, hf_bacapp_tag_lvt,
tvb, lvt_offset, lvt_len, *lvt);
+
+ if (*lvt > tvb_length(tvb)) {
+ expert_add_info_format(pinfo, ti, PI_MALFORMED, PI_ERROR,
+ "LVT length too long: %d > %d", *lvt,
+ tvb_length(tvb));
+ *lvt = 1;
+ }
}
+ else if (*lvt > tvb_length(tvb))
+ /* We can't add expert info, but we can still stop infinite loops */
+ *lvt = 1;
return tag_len;
}
static guint
-fTagHeader (tvbuff_t *tvb, guint offset, guint8 *tag_no, guint8* tag_info,
+fTagHeader (tvbuff_t *tvb, packet_info *pinfo, guint offset, guint8 *tag_no, guint8* tag_info,
guint32 *lvt)
{
- return fTagHeaderTree (tvb, NULL, offset, tag_no, tag_info, lvt);
+ return fTagHeaderTree (tvb, pinfo, NULL, offset, tag_no, tag_info, lvt);
}
static guint
-fNullTag (tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar *label)
+fNullTag (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset, const gchar *label)
{
guint8 tag_no, tag_info;
guint32 lvt;
@@ -4956,13 +4988,13 @@ fNullTag (tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar *label)
ti = proto_tree_add_text(tree, tvb, offset, 1, "%sNULL", label);
subtree = proto_item_add_subtree(ti, ett_bacapp_tag);
- fTagHeaderTree (tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ fTagHeaderTree (tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
return offset + 1;
}
static guint
-fBooleanTag (tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar *label)
+fBooleanTag (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset, const gchar *label)
{
guint8 tag_no, tag_info;
guint32 lvt = 0;
@@ -4970,7 +5002,7 @@ fBooleanTag (tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar *label)
proto_tree *subtree;
guint bool_len = 1;
- fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
if (tag_info && lvt == 1) {
lvt = tvb_get_guint8(tvb, offset+1);
++bool_len;
@@ -4979,13 +5011,13 @@ fBooleanTag (tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar *label)
ti = proto_tree_add_text(tree, tvb, offset, bool_len,
"%s%s", label, lvt == 0 ? "FALSE" : "TRUE");
subtree = proto_item_add_subtree(ti, ett_bacapp_tag);
- fTagHeaderTree (tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ fTagHeaderTree (tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
return offset + bool_len;
}
static guint
-fUnsignedTag (tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar *label)
+fUnsignedTag (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset, const gchar *label)
{
guint64 val = 0;
guint8 tag_no, tag_info;
@@ -4994,7 +5026,7 @@ fUnsignedTag (tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar *label)
proto_item *ti;
proto_tree *subtree;
- tag_len = fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ tag_len = fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
/* only support up to an 8 byte (64-bit) integer */
if (fUnsigned64 (tvb, offset + tag_len, lvt, &val))
ti = proto_tree_add_text(tree, tvb, offset, lvt+tag_len,
@@ -5003,13 +5035,13 @@ fUnsignedTag (tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar *label)
ti = proto_tree_add_text(tree, tvb, offset, lvt+tag_len,
"%s - %u octets (Unsigned)", label, lvt);
subtree = proto_item_add_subtree(ti, ett_bacapp_tag);
- fTagHeaderTree (tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ fTagHeaderTree (tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
return offset+tag_len+lvt;
}
static guint
-fDevice_Instance (tvbuff_t *tvb, proto_tree *tree, guint offset, int hf)
+fDevice_Instance (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset, int hf)
{
guint8 tag_no, tag_info;
guint32 lvt;
@@ -5017,18 +5049,18 @@ fDevice_Instance (tvbuff_t *tvb, proto_tree *tree, guint offset, int hf)
proto_item *ti;
proto_tree *subtree;
- tag_len = fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ tag_len = fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
ti = proto_tree_add_item(tree, hf, tvb, offset+tag_len, lvt, ENC_BIG_ENDIAN);
subtree = proto_item_add_subtree(ti, ett_bacapp_tag);
- fTagHeaderTree (tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ fTagHeaderTree (tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
return offset+tag_len+lvt;
}
/* set split_val to zero when not needed */
static guint
-fEnumeratedTagSplit (tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar *label,
- const value_string *vs, guint32 split_val)
+fEnumeratedTagSplit (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
+ guint offset, const gchar *label, const value_string *vs, guint32 split_val)
{
guint32 val = 0;
guint8 tag_no, tag_info;
@@ -5037,7 +5069,7 @@ fEnumeratedTagSplit (tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar
proto_item *ti;
proto_tree *subtree;
- tag_len = fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ tag_len = fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
/* only support up to a 4 byte (32-bit) enumeration */
if (fUnsigned32 (tvb, offset+tag_len, lvt, &val)) {
if (vs)
@@ -5052,20 +5084,20 @@ fEnumeratedTagSplit (tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar
"%s - %u octets (enumeration)", label, lvt);
}
subtree = proto_item_add_subtree(ti, ett_bacapp_tag);
- fTagHeaderTree (tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ fTagHeaderTree (tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
return offset+tag_len+lvt;
}
static guint
-fEnumeratedTag (tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar *label,
- const value_string *vs)
+fEnumeratedTag (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
+ guint offset, const gchar *label, const value_string *vs)
{
- return fEnumeratedTagSplit (tvb, tree, offset, label, vs, 0);
+ return fEnumeratedTagSplit (tvb, pinfo, tree, offset, label, vs, 0);
}
static guint
-fSignedTag (tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar *label)
+fSignedTag (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset, const gchar *label)
{
gint64 val = 0;
guint8 tag_no, tag_info;
@@ -5074,7 +5106,7 @@ fSignedTag (tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar *label)
proto_item *ti;
proto_tree *subtree;
- tag_len = fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ tag_len = fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
if (fSigned64 (tvb, offset + tag_len, lvt, &val))
ti = proto_tree_add_text(tree, tvb, offset, lvt+tag_len,
"%s(Signed) %" G_GINT64_MODIFIER "d", label, val);
@@ -5082,13 +5114,13 @@ fSignedTag (tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar *label)
ti = proto_tree_add_text(tree, tvb, offset, lvt+tag_len,
"%s - %u octets (Signed)", label, lvt);
subtree = proto_item_add_subtree(ti, ett_bacapp_tag);
- fTagHeaderTree(tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ fTagHeaderTree(tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
return offset+tag_len+lvt;
}
static guint
-fRealTag (tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar *label)
+fRealTag (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset, const gchar *label)
{
guint8 tag_no, tag_info;
guint32 lvt;
@@ -5097,18 +5129,18 @@ fRealTag (tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar *label)
proto_item *ti;
proto_tree *subtree;
- tag_len = fTagHeader(tvb, offset, &tag_no, &tag_info, &lvt);
+ tag_len = fTagHeader(tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
f_val = tvb_get_ntohieee_float(tvb, offset+tag_len);
ti = proto_tree_add_text(tree, tvb, offset, 4+tag_len,
"%s%f (Real)", label, f_val);
subtree = proto_item_add_subtree(ti, ett_bacapp_tag);
- fTagHeaderTree(tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ fTagHeaderTree(tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
return offset+tag_len+4;
}
static guint
-fDoubleTag (tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar *label)
+fDoubleTag (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset, const gchar *label)
{
guint8 tag_no, tag_info;
guint32 lvt;
@@ -5117,18 +5149,18 @@ fDoubleTag (tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar *label)
proto_item *ti;
proto_tree *subtree;
- tag_len = fTagHeader(tvb, offset, &tag_no, &tag_info, &lvt);
+ tag_len = fTagHeader(tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
d_val = tvb_get_ntohieee_double(tvb, offset+tag_len);
ti = proto_tree_add_text(tree, tvb, offset, 8+tag_len,
"%s%f (Double)", label, d_val);
subtree = proto_item_add_subtree(ti, ett_bacapp_tag);
- fTagHeaderTree(tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ fTagHeaderTree(tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
return offset+tag_len+8;
}
static guint
-fProcessId (tvbuff_t *tvb, proto_tree *tree, guint offset)
+fProcessId (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
guint32 val = 0, lvt;
guint8 tag_no, tag_info;
@@ -5136,7 +5168,7 @@ fProcessId (tvbuff_t *tvb, proto_tree *tree, guint offset)
proto_tree *subtree;
guint tag_len;
- tag_len = fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ tag_len = fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
if (fUnsigned32 (tvb, offset+tag_len, lvt, &val))
ti = proto_tree_add_uint(tree, hf_bacapp_tag_ProcessId,
tvb, offset, lvt+tag_len, val);
@@ -5144,14 +5176,14 @@ fProcessId (tvbuff_t *tvb, proto_tree *tree, guint offset)
ti = proto_tree_add_text(tree, tvb, offset, lvt+tag_len,
"Process Identifier - %u octets (Signed)", lvt);
subtree = proto_item_add_subtree(ti, ett_bacapp_tag);
- fTagHeaderTree(tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ fTagHeaderTree(tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
offset += tag_len + lvt;
return offset;
}
static guint
-fTimeSpan (tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar *label)
+fTimeSpan (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset, const gchar *label)
{
guint32 val = 0, lvt;
guint8 tag_no, tag_info;
@@ -5159,7 +5191,7 @@ fTimeSpan (tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar *label)
proto_tree *subtree;
guint tag_len;
- tag_len = fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ tag_len = fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
if (fUnsigned32 (tvb, offset+tag_len, lvt, &val))
ti = proto_tree_add_text(tree, tvb, offset, lvt+tag_len,
"%s (hh.mm.ss): %d.%02d.%02d%s",
@@ -5170,13 +5202,13 @@ fTimeSpan (tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar *label)
ti = proto_tree_add_text(tree, tvb, offset, lvt+tag_len,
"%s - %u octets (Signed)", label, lvt);
subtree = proto_item_add_subtree(ti, ett_bacapp_tag);
- fTagHeaderTree(tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ fTagHeaderTree(tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
return offset+tag_len+lvt;
}
static guint
-fWeekNDay (tvbuff_t *tvb, proto_tree *tree, guint offset)
+fWeekNDay (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
guint32 month, weekOfMonth, dayOfWeek;
guint8 tag_no, tag_info;
@@ -5185,7 +5217,7 @@ fWeekNDay (tvbuff_t *tvb, proto_tree *tree, guint offset)
proto_item *ti;
proto_tree *subtree;
- tag_len = fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ tag_len = fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
month = tvb_get_guint8(tvb, offset+tag_len);
weekOfMonth = tvb_get_guint8(tvb, offset+tag_len+1);
dayOfWeek = tvb_get_guint8(tvb, offset+tag_len+2);
@@ -5194,13 +5226,13 @@ fWeekNDay (tvbuff_t *tvb, proto_tree *tree, guint offset)
val_to_str(weekOfMonth, weekofmonth, "week of month (%d) not found"),
val_to_str(dayOfWeek, day_of_week, "day of week (%d) not found"));
subtree = proto_item_add_subtree(ti, ett_bacapp_tag);
- fTagHeaderTree(tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ fTagHeaderTree(tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
return offset+tag_len+lvt;
}
static guint
-fDate (tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar *label)
+fDate (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset, const gchar *label)
{
guint32 year, month, day, weekday;
guint8 tag_no, tag_info;
@@ -5209,7 +5241,7 @@ fDate (tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar *label)
proto_item *ti;
proto_tree *subtree;
- tag_len = fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ tag_len = fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
year = tvb_get_guint8(tvb, offset+tag_len);
month = tvb_get_guint8(tvb, offset+tag_len+1);
day = tvb_get_guint8(tvb, offset+tag_len+2);
@@ -5235,13 +5267,13 @@ fDate (tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar *label)
day, val_to_str(weekday, day_of_week, "(%d) not found"));
}
subtree = proto_item_add_subtree(ti, ett_bacapp_tag);
- fTagHeaderTree (tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ fTagHeaderTree (tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
return offset+tag_len+lvt;
}
static guint
-fTime (tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar *label)
+fTime (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset, const gchar *label)
{
guint32 hour, minute, second, msec, lvt;
guint8 tag_no, tag_info;
@@ -5249,7 +5281,7 @@ fTime (tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar *label)
proto_item *ti;
proto_tree *subtree;
- tag_len = fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ tag_len = fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
hour = tvb_get_guint8(tvb, offset+tag_len);
minute = tvb_get_guint8(tvb, offset+tag_len+1);
second = tvb_get_guint8(tvb, offset+tag_len+2);
@@ -5266,13 +5298,13 @@ fTime (tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar *label)
hour >= 12 ? "P.M." : "A.M.",
hour, minute, second, msec);
subtree = proto_item_add_subtree(ti, ett_bacapp_tag);
- fTagHeaderTree (tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ fTagHeaderTree (tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
return offset+tag_len+lvt;
}
static guint
-fDateTime (tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar *label)
+fDateTime (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset, const gchar *label)
{
proto_tree *subtree = tree;
proto_item *tt;
@@ -5281,8 +5313,8 @@ fDateTime (tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar *label)
tt = proto_tree_add_text (subtree, tvb, offset, 10, "%s", label);
subtree = proto_item_add_subtree(tt, ett_bacapp_value);
}
- offset = fDate (tvb,subtree,offset,"Date: ");
- return fTime (tvb,subtree,offset,"Time: ");
+ offset = fDate (tvb,pinfo,subtree,offset,"Date: ");
+ return fTime (tvb,pinfo,subtree,offset,"Time: ");
}
static guint
@@ -5294,11 +5326,11 @@ fTimeValue (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
while (tvb_reported_length_remaining(tvb, offset) > 0) { /* exit loop if nothing happens inside */
lastoffset = offset;
- fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
if (tag_is_closing(tag_info)) { /* closing Tag, but not for me */
return offset;
}
- offset = fTime (tvb,tree,offset,"Time: ");
+ offset = fTime (tvb,pinfo,tree,offset,"Time: ");
offset = fApplicationTypes(tvb, pinfo, tree, offset, "Value: ");
if (offset==lastoffset) break; /* exit loop if nothing happens inside */
@@ -5307,22 +5339,22 @@ fTimeValue (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
}
static guint
-fCalendarEntry (tvbuff_t *tvb, proto_tree *tree, guint offset)
+fCalendarEntry (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
guint8 tag_no, tag_info;
guint32 lvt;
switch (fTagNo(tvb, offset)) {
case 0: /* Date */
- offset = fDate (tvb, tree, offset, "Date: ");
+ offset = fDate (tvb, pinfo, tree, offset, "Date: ");
break;
case 1: /* dateRange */
- offset += fTagHeaderTree(tvb, tree, offset, &tag_no, &tag_info, &lvt);
- offset = fDateRange (tvb, tree, offset);
- offset += fTagHeaderTree(tvb, tree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree(tvb, pinfo, tree, offset, &tag_no, &tag_info, &lvt);
+ offset = fDateRange (tvb, pinfo, tree, offset);
+ offset += fTagHeaderTree(tvb, pinfo, tree, offset, &tag_no, &tag_info, &lvt);
break;
case 2: /* BACnetWeekNDay */
- offset = fWeekNDay (tvb, tree, offset);
+ offset = fWeekNDay (tvb, pinfo, tree, offset);
break;
default:
return offset;
@@ -5343,15 +5375,15 @@ fEventTimeStamps( tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint
if (ti) {
subtree = proto_item_add_subtree(ti, ett_bacapp_tag);
}
- offset = fTimeStamp (tvb, subtree, offset,"TO-OFFNORMAL timestamp: ");
- offset = fTimeStamp (tvb, subtree, offset,"TO-FAULT timestamp: ");
- offset = fTimeStamp (tvb, subtree, offset,"TO-NORMAL timestamp: ");
+ offset = fTimeStamp (tvb, pinfo, subtree, offset,"TO-OFFNORMAL timestamp: ");
+ offset = fTimeStamp (tvb, pinfo, subtree, offset,"TO-FAULT timestamp: ");
+ offset = fTimeStamp (tvb, pinfo, subtree, offset,"TO-NORMAL timestamp: ");
}
return offset;
}
static guint
-fTimeStamp (tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar *label)
+fTimeStamp (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset, const gchar *label)
{
guint8 tag_no = 0, tag_info = 0;
guint32 lvt = 0;
@@ -5359,16 +5391,16 @@ fTimeStamp (tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar *label)
if (tvb_reported_length_remaining(tvb, offset) > 0) { /* don't loop, it's a CHOICE */
switch (fTagNo(tvb, offset)) {
case 0: /* time */
- offset = fTime (tvb, tree, offset, label?label:"time: ");
+ offset = fTime (tvb, pinfo, tree, offset, label?label:"time: ");
break;
case 1: /* sequenceNumber */
- offset = fUnsignedTag (tvb, tree, offset,
+ offset = fUnsignedTag (tvb, pinfo, tree, offset,
label?label:"sequence number: ");
break;
case 2: /* dateTime */
- offset += fTagHeaderTree (tvb, tree, offset, &tag_no, &tag_info, &lvt);
- offset = fDateTime (tvb, tree, offset, label?label:"date time: ");
- offset += fTagHeaderTree (tvb, tree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree (tvb, pinfo, tree, offset, &tag_no, &tag_info, &lvt);
+ offset = fDateTime (tvb, pinfo, tree, offset, label?label:"date time: ");
+ offset += fTagHeaderTree (tvb, pinfo, tree, offset, &tag_no, &tag_info, &lvt);
break;
default:
return offset;
@@ -5406,13 +5438,13 @@ fDestination (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
if (tvb_reported_length_remaining(tvb, offset) > 0) {
offset = fApplicationTypesEnumerated(tvb,pinfo,tree,offset,
"valid Days: ", BACnetDaysOfWeek);
- offset = fTime (tvb,tree,offset,"from time: ");
- offset = fTime (tvb,tree,offset,"to time: ");
+ offset = fTime (tvb,pinfo,tree,offset,"from time: ");
+ offset = fTime (tvb,pinfo,tree,offset,"to time: ");
offset = fRecipient (tvb,pinfo,tree,offset);
- offset = fProcessId (tvb,tree,offset);
+ offset = fProcessId (tvb,pinfo,tree,offset);
offset = fApplicationTypes (tvb,pinfo,tree,offset,
"issue confirmed notifications: ");
- offset = fBitStringTagVS (tvb,tree,offset,
+ offset = fBitStringTagVS (tvb,pinfo,tree,offset,
"transitions: ", BACnetEventTransitionBits);
}
return offset;
@@ -5420,7 +5452,7 @@ fDestination (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
static guint
-fOctetString (tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar *label, guint32 lvt)
+fOctetString (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset, const gchar *label, guint32 lvt)
{
gchar *tmp;
guint start = offset;
@@ -5428,7 +5460,7 @@ fOctetString (tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar *label,
proto_tree *subtree = tree;
proto_item *ti = 0;
- offset += fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
if (lvt > 0) {
tmp = tvb_bytes_to_str(tvb, offset, lvt);
@@ -5439,13 +5471,13 @@ fOctetString (tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar *label,
if (ti)
subtree = proto_item_add_subtree(ti, ett_bacapp_tag);
- fTagHeaderTree(tvb, subtree, start, &tag_no, &tag_info, &lvt);
+ fTagHeaderTree(tvb, pinfo, subtree, start, &tag_no, &tag_info, &lvt);
return offset;
}
static guint
-fMacAddress (tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar *label, guint32 lvt)
+fMacAddress (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset, const gchar *label, guint32 lvt)
{
gchar *tmp;
guint start = offset;
@@ -5453,7 +5485,7 @@ fMacAddress (tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar *label,
proto_tree* subtree = tree;
proto_item* ti = 0;
- offset += fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
ti = proto_tree_add_text(tree, tvb, offset, 6, "%s", label); /* just add the label, with the tagHeader information in its subtree */
@@ -5486,34 +5518,34 @@ fMacAddress (tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar *label,
if (ti)
subtree = proto_item_add_subtree(ti, ett_bacapp_tag);
- fTagHeaderTree(tvb, subtree, start, &tag_no, &tag_info, &lvt);
+ fTagHeaderTree(tvb, pinfo, subtree, start, &tag_no, &tag_info, &lvt);
return offset;
}
static guint
-fAddress (tvbuff_t *tvb, proto_tree *tree, guint offset)
+fAddress (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
guint8 tag_no, tag_info;
guint32 lvt;
guint offs;
- offset = fUnsignedTag (tvb, tree, offset, "network-number");
- offs = fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ offset = fUnsignedTag (tvb, pinfo, tree, offset, "network-number");
+ offs = fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
if (lvt == 0) {
proto_tree_add_text(tree, tvb, offset, offs, "MAC-address: broadcast");
offset += offs;
} else
- offset = fMacAddress (tvb, tree, offset, "MAC-address: ", lvt);
+ offset = fMacAddress (tvb, pinfo, tree, offset, "MAC-address: ", lvt);
return offset;
}
static guint
-fSessionKey (tvbuff_t *tvb, proto_tree *tree, guint offset)
+fSessionKey (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
- offset = fOctetString (tvb,tree,offset,"session key: ", 8);
- return fAddress (tvb,tree,offset);
+ offset = fOctetString (tvb,pinfo,tree,offset,"session key: ", 8);
+ return fAddress (tvb,pinfo,tree,offset);
}
static guint
@@ -5526,7 +5558,7 @@ fObjectIdentifier (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint of
proto_tree *subtree;
guint32 object_id;
- tag_length = fTagHeader(tvb, offset, &tag_no, &tag_info, &lvt);
+ tag_length = fTagHeader(tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
object_id = tvb_get_ntohl(tvb,offset+tag_length);
object_type = object_id_type(object_id);
ti = proto_tree_add_text(tree, tvb, offset, tag_length + 4,
@@ -5556,7 +5588,7 @@ fObjectIdentifier (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint of
/* here are the details of how we arrived at the above text */
subtree = proto_item_add_subtree(ti, ett_bacapp_tag);
- fTagHeaderTree (tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ fTagHeaderTree (tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
offset += tag_length;
proto_tree_add_item(subtree, hf_bacapp_objectType, tvb, offset, 4, ENC_BIG_ENDIAN);
proto_tree_add_item(subtree, hf_bacapp_instanceNumber, tvb, offset, 4, ENC_BIG_ENDIAN);
@@ -5571,15 +5603,15 @@ fRecipient (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
guint8 tag_no, tag_info;
guint32 lvt;
- fTagHeader(tvb, offset, &tag_no, &tag_info, &lvt);
+ fTagHeader(tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
if (tag_no < 2) {
if (tag_no == 0) { /* device */
offset = fObjectIdentifier (tvb, pinfo, tree, offset);
}
else { /* address */
- offset += fTagHeaderTree (tvb, tree, offset, &tag_no, &tag_info, &lvt);
- offset = fAddress (tvb, tree, offset);
- offset += fTagHeaderTree (tvb, tree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree (tvb, pinfo, tree, offset, &tag_no, &tag_info, &lvt);
+ offset = fAddress (tvb, pinfo, tree, offset);
+ offset += fTagHeaderTree (tvb, pinfo, tree, offset, &tag_no, &tag_info, &lvt);
}
}
return offset;
@@ -5604,14 +5636,14 @@ fRecipientProcess (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint of
switch (fTagNo(tvb, offset)) {
case 0: /* recipient */
- offset += fTagHeaderTree(tvb, tree, offset, &tag_no, &tag_info, &lvt); /* show context open */
+ offset += fTagHeaderTree(tvb, pinfo, tree, offset, &tag_no, &tag_info, &lvt); /* show context open */
tt = proto_tree_add_text(tree, tvb, offset, 1, "Recipient"); /* add tree label and indent */
subtree = proto_item_add_subtree(tt, ett_bacapp_value);
offset = fRecipient (tvb, pinfo, subtree, offset);
- offset += fTagHeaderTree (tvb, tree, offset, &tag_no, &tag_info, &lvt); /* show context close */
+ offset += fTagHeaderTree (tvb, pinfo, tree, offset, &tag_no, &tag_info, &lvt); /* show context close */
break;
case 1: /* processId */
- offset = fProcessId (tvb, tree, offset);
+ offset = fProcessId (tvb, pinfo, tree, offset);
lastoffset = offset;
break;
default:
@@ -5635,7 +5667,7 @@ fCOVSubscription (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint off
while (tvb_reported_length_remaining(tvb, offset) > 0) { /* exit loop if nothing happens inside */
lastoffset = offset;
- fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
if (tag_is_closing(tag_info) ) {
return offset;
}
@@ -5649,27 +5681,27 @@ fCOVSubscription (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint off
tt = proto_tree_add_text(tree, tvb, offset, 1, "Recipient"); /* add tree label and indent */
subtree = proto_item_add_subtree(tt, ett_bacapp_value);
- offset += fTagHeaderTree(tvb, subtree, offset, &tag_no, &tag_info, &lvt); /* show context open */
+ offset += fTagHeaderTree(tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt); /* show context open */
offset = fRecipientProcess (tvb, pinfo, subtree, offset);
- offset += fTagHeaderTree (tvb, subtree, offset, &tag_no, &tag_info, &lvt); /* show context close */
+ offset += fTagHeaderTree (tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt); /* show context close */
subtree = tree; /* done with this level - return to previous tree */
break;
case 1: /* MonitoredPropertyReference */
tt = proto_tree_add_text(tree, tvb, offset, 1, "Monitored Property Reference");
subtree = proto_item_add_subtree(tt, ett_bacapp_value);
- offset += fTagHeaderTree(tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree(tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
offset = fBACnetObjectPropertyReference (tvb, pinfo, subtree, offset);
- offset += fTagHeaderTree (tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree (tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
subtree = tree;
break;
case 2: /* IssueConfirmedNotifications - boolean */
- offset = fBooleanTag (tvb, tree, offset, "Issue Confirmed Notifications: ");
+ offset = fBooleanTag (tvb, pinfo, tree, offset, "Issue Confirmed Notifications: ");
break;
case 3: /* TimeRemaining */
- offset = fUnsignedTag (tvb, tree, offset, "Time Remaining: ");
+ offset = fUnsignedTag (tvb, pinfo, tree, offset, "Time Remaining: ");
break;
case 4: /* COVIncrement */
- offset = fRealTag (tvb, tree, offset, "COV Increment: ");
+ offset = fRealTag (tvb, pinfo, tree, offset, "COV Increment: ");
break;
default:
break;
@@ -5683,7 +5715,7 @@ static guint
fAddressBinding (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
offset = fObjectIdentifier (tvb, pinfo, tree, offset);
- return fAddress (tvb, tree, offset);
+ return fAddress (tvb, pinfo, tree, offset);
}
static guint
@@ -5698,7 +5730,7 @@ fActionCommand (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offse
propertyArrayIndex = -1;
while (tvb_reported_length_remaining(tvb, offset) > 0) { /* exit loop if nothing happens inside */
lastoffset = offset;
- len = fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ len = fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
if (tag_is_closing(tag_info) ) {
if (tag_no == tag_match) {
return offset;
@@ -5719,23 +5751,23 @@ fActionCommand (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offse
offset = fPropertyIdentifier (tvb, pinfo, subtree, offset);
break;
case 3: /* propertyArrayIndex */
- offset = fPropertyArrayIndex (tvb, subtree, offset);
+ offset = fPropertyArrayIndex (tvb, pinfo, subtree, offset);
break;
case 4: /* propertyValue */
offset = fPropertyValue (tvb, pinfo, subtree, offset, tag_info);
break;
case 5: /* priority */
- offset = fUnsignedTag (tvb,subtree,offset,"Priority: ");
+ offset = fUnsignedTag (tvb,pinfo,subtree,offset,"Priority: ");
break;
case 6: /* postDelay */
- offset = fUnsignedTag (tvb,subtree,offset,"Post Delay: ");
+ offset = fUnsignedTag (tvb,pinfo,subtree,offset,"Post Delay: ");
break;
case 7: /* quitOnFailure */
- offset = fBooleanTag(tvb, subtree, offset,
+ offset = fBooleanTag(tvb, pinfo, subtree, offset,
"Quit On Failure: ");
break;
case 8: /* writeSuccessful */
- offset = fBooleanTag(tvb, subtree, offset,
+ offset = fBooleanTag(tvb, pinfo, subtree, offset,
"Write Successful: ");
break;
default:
@@ -5761,7 +5793,7 @@ fActionList (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
while (tvb_reported_length_remaining(tvb, offset) > 0) {
lastoffset = offset;
- len = fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ len = fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
if (tag_is_closing(tag_info)) {
subtree = tree;
if ( tag_no != 0 ) /* don't eat the closing property tag, just return */
@@ -5772,7 +5804,7 @@ fActionList (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
if (tag_is_opening(tag_info)) {
ti = proto_tree_add_text(tree, tvb, offset, 1, "Action List");
subtree = proto_item_add_subtree(ti, ett_bacapp_tag);
- offset += fTagHeaderTree (tvb, subtree, offset,
+ offset += fTagHeaderTree (tvb, pinfo, subtree, offset,
&tag_no, &tag_info, &lvt);
}
switch (tag_no) {
@@ -5798,7 +5830,7 @@ fPropertyIdentifier (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint
const gchar *label = "Property Identifier";
propertyIdentifier = 0; /* global Variable */
- tag_len = fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ tag_len = fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
/* can we decode this value? */
if (fUnsigned32 (tvb, offset+tag_len, lvt, (guint32 *)&propertyIdentifier)) {
ti = proto_tree_add_text(tree, tvb, offset, lvt+tag_len,
@@ -5818,7 +5850,7 @@ fPropertyIdentifier (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint
return offset;
}
subtree = proto_item_add_subtree(ti, ett_bacapp_tag);
- fTagHeaderTree (tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ fTagHeaderTree (tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
proto_tree_add_item(subtree, hf_BACnetPropertyIdentifier, tvb,
offset+tag_len, lvt, ENC_BIG_ENDIAN);
@@ -5826,7 +5858,7 @@ fPropertyIdentifier (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint
}
static guint
-fPropertyArrayIndex (tvbuff_t *tvb, proto_tree *tree, guint offset)
+fPropertyArrayIndex (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
guint8 tag_no, tag_info;
guint32 lvt;
@@ -5834,7 +5866,7 @@ fPropertyArrayIndex (tvbuff_t *tvb, proto_tree *tree, guint offset)
proto_item *ti;
proto_tree *subtree;
- tag_len = fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ tag_len = fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
if (fUnsigned32 (tvb, offset + tag_len, lvt, (guint32 *)&propertyArrayIndex))
ti = proto_tree_add_text(tree, tvb, offset, lvt+tag_len,
"property Array Index (Unsigned) %u", propertyArrayIndex);
@@ -5842,13 +5874,13 @@ fPropertyArrayIndex (tvbuff_t *tvb, proto_tree *tree, guint offset)
ti = proto_tree_add_text(tree, tvb, offset, lvt+tag_len,
"property Array Index - %u octets (Unsigned)", lvt);
subtree = proto_item_add_subtree(ti, ett_bacapp_tag);
- fTagHeaderTree (tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ fTagHeaderTree (tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
return offset+tag_len+lvt;
}
static guint
-fCharacterString (tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar *label)
+fCharacterString (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset, const gchar *label)
{
guint8 tag_no, tag_info, character_set;
guint32 lvt, l;
@@ -5863,7 +5895,7 @@ fCharacterString (tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar *la
if (tvb_reported_length_remaining(tvb, offset) > 0) {
- offs = fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ offs = fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
character_set = tvb_get_guint8(tvb, offset+offs);
/* Account for code page if DBCS */
@@ -5930,7 +5962,7 @@ fCharacterString (tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar *la
subtree = proto_item_add_subtree(ti, ett_bacapp_tag);
- fTagHeaderTree (tvb, subtree, start, &tag_no, &tag_info, &lvt);
+ fTagHeaderTree (tvb, pinfo, subtree, start, &tag_no, &tag_info, &lvt);
proto_tree_add_item(subtree, hf_BACnetCharacterSet, tvb, start+offs, 1, ENC_BIG_ENDIAN);
if (character_set == 1) {
@@ -5942,7 +5974,7 @@ fCharacterString (tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar *la
}
static guint
-fBitStringTagVS (tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar *label,
+fBitStringTagVS (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset, const gchar *label,
const value_string *src)
{
guint8 tag_no, tag_info, tmp;
@@ -5954,7 +5986,7 @@ fBitStringTagVS (tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar *lab
proto_tree* subtree = tree;
proto_item* ti = 0;
- offs = fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ offs = fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
numberOfBytes = lvt-1; /* Ignore byte for unused bit count */
offset += offs;
unused = tvb_get_guint8(tvb, offset); /* get the unused Bits */
@@ -5963,7 +5995,7 @@ fBitStringTagVS (tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar *lab
if (ti) {
subtree = proto_item_add_subtree(ti, ett_bacapp_tag);
}
- fTagHeaderTree(tvb, subtree, start, &tag_no, &tag_info, &lvt);
+ fTagHeaderTree(tvb, pinfo, subtree, start, &tag_no, &tag_info, &lvt);
proto_tree_add_text(subtree, tvb, offset, 1,
"Unused bits: %u", unused);
skip = 0;
@@ -6003,9 +6035,9 @@ fBitStringTagVS (tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar *lab
}
static guint
-fBitStringTag (tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar *label)
+fBitStringTag (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset, const gchar *label)
{
- return fBitStringTagVS (tvb, tree, offset, label, NULL);
+ return fBitStringTagVS (tvb, pinfo, tree, offset, label, NULL);
}
/* handles generic application types, as well as enumerated and enumerations
@@ -6020,44 +6052,44 @@ fApplicationTypesEnumeratedSplit (tvbuff_t *tvb, packet_info *pinfo, proto_tree
if (tvb_reported_length_remaining(tvb, offset) > 0) {
- tag_len = fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ tag_len = fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
if (!tag_is_context_specific(tag_info)) {
switch (tag_no) {
case 0: /** NULL 20.2.2 */
- offset = fNullTag(tvb, tree, offset, label);
+ offset = fNullTag(tvb, pinfo, tree, offset, label);
break;
case 1: /** BOOLEAN 20.2.3 */
- offset = fBooleanTag(tvb, tree, offset, label);
+ offset = fBooleanTag(tvb, pinfo, tree, offset, label);
break;
case 2: /** Unsigned Integer 20.2.4 */
- offset = fUnsignedTag(tvb, tree, offset, label);
+ offset = fUnsignedTag(tvb, pinfo, tree, offset, label);
break;
case 3: /** Signed Integer 20.2.5 */
- offset = fSignedTag(tvb, tree, offset, label);
+ offset = fSignedTag(tvb, pinfo, tree, offset, label);
break;
case 4: /** Real 20.2.6 */
- offset = fRealTag(tvb, tree, offset, label);
+ offset = fRealTag(tvb, pinfo, tree, offset, label);
break;
case 5: /** Double 20.2.7 */
- offset = fDoubleTag(tvb, tree, offset, label);
+ offset = fDoubleTag(tvb, pinfo, tree, offset, label);
break;
case 6: /** Octet String 20.2.8 */
- offset = fOctetString (tvb, tree, offset, label, lvt);
+ offset = fOctetString (tvb, pinfo, tree, offset, label, lvt);
break;
case 7: /** Character String 20.2.9 */
- offset = fCharacterString (tvb,tree,offset,label);
+ offset = fCharacterString (tvb,pinfo,tree,offset,label);
break;
case 8: /** Bit String 20.2.10 */
- offset = fBitStringTagVS (tvb, tree, offset, label, src);
+ offset = fBitStringTagVS (tvb, pinfo, tree, offset, label, src);
break;
case 9: /** Enumerated 20.2.11 */
- offset = fEnumeratedTagSplit (tvb, tree, offset, label, src, split_val);
+ offset = fEnumeratedTagSplit (tvb, pinfo, tree, offset, label, src, split_val);
break;
case 10: /** Date 20.2.12 */
- offset = fDate (tvb, tree, offset, label);
+ offset = fDate (tvb, pinfo, tree, offset, label);
break;
case 11: /** Time 20.2.13 */
- offset = fTime (tvb, tree, offset, label);
+ offset = fTime (tvb, pinfo, tree, offset, label);
break;
case 12: /** BACnetObjectIdentifier 20.2.14 */
offset = fObjectIdentifier (tvb, pinfo, tree, offset);
@@ -6078,7 +6110,7 @@ fApplicationTypesEnumeratedSplit (tvbuff_t *tvb, packet_info *pinfo, proto_tree
}
static guint
-fShedLevel (tvbuff_t *tvb, proto_tree *tree, guint offset)
+fShedLevel (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
guint lastoffset = 0;
@@ -6087,13 +6119,13 @@ fShedLevel (tvbuff_t *tvb, proto_tree *tree, guint offset)
switch (fTagNo(tvb,offset)) {
case 0: /* percent */
- offset = fUnsignedTag (tvb, tree, offset, "shed percent: ");
+ offset = fUnsignedTag (tvb, pinfo, tree, offset, "shed percent: ");
break;
case 1: /* level */
- offset = fUnsignedTag (tvb, tree, offset, "shed level: ");
+ offset = fUnsignedTag (tvb, pinfo, tree, offset, "shed level: ");
break;
case 2: /* amount */
- offset = fRealTag(tvb, tree, offset, "shed amount: ");
+ offset = fRealTag(tvb, pinfo, tree, offset, "shed amount: ");
break;
default:
return offset;
@@ -6118,7 +6150,7 @@ fApplicationTypes (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint of
}
static guint
-fContextTaggedValue(tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar *label)
+fContextTaggedValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset, const gchar *label)
{
guint8 tag_no, tag_info;
guint32 lvt;
@@ -6128,7 +6160,7 @@ fContextTaggedValue(tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar *
gint tvb_len;
(void)label;
- tag_len = fTagHeader(tvb, offset, &tag_no, &tag_info, &lvt);
+ tag_len = fTagHeader(tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
/* cap the the suggested length in case of bad data */
tvb_len = tvb_reported_length_remaining(tvb, offset+tag_len);
if ((tvb_len >= 0) && ((guint32)tvb_len < lvt)) {
@@ -6138,7 +6170,7 @@ fContextTaggedValue(tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar *
"Context Value (as %u DATA octets)", lvt);
subtree = proto_item_add_subtree(ti, ett_bacapp_tag);
- fTagHeaderTree(tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ fTagHeaderTree(tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
return offset + tag_len + lvt;
}
@@ -6157,16 +6189,16 @@ fPrescale (tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint offset
while (tvb_reported_length_remaining(tvb, offset) > 0) { /* exit loop if nothing happens inside */
lastoffset = offset;
- fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
if (tag_is_closing(tag_info) ) {
return offset;
}
switch (tag_no) {
case 0: /* multiplier */
- offset = fUnsignedTag (tvb,tree,offset,"Multiplier: ");
+ offset = fUnsignedTag (tvb,pinfo,tree,offset,"Multiplier: ");
break;
case 1: /* moduloDivide */
- offset = fUnsignedTag (tvb,tree,offset,"Modulo Divide: ");
+ offset = fUnsignedTag (tvb,pinfo,tree,offset,"Modulo Divide: ");
break;
default:
return offset;
@@ -6191,16 +6223,16 @@ fScale (tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint offset)
while (tvb_reported_length_remaining(tvb, offset) > 0) { /* exit loop if nothing happens inside */
lastoffset = offset;
- fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
if (tag_is_closing(tag_info) ) {
return offset;
}
switch (tag_no) {
case 0: /* floatScale */
- offset = fRealTag (tvb,tree,offset,"Float Scale: ");
+ offset = fRealTag (tvb,pinfo,tree,offset,"Float Scale: ");
break;
case 1: /* integerScale */
- offset = fSignedTag (tvb,tree,offset,"Integer Scale: ");
+ offset = fSignedTag (tvb,pinfo,tree,offset,"Integer Scale: ");
break;
default:
return offset;
@@ -6232,24 +6264,24 @@ fLoggingRecord (tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint
while (tvb_reported_length_remaining(tvb, offset) > 0) { /* exit loop if nothing happens inside */
lastoffset = offset;
- fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
if (tag_is_closing(tag_info) ) {
return offset;
}
switch (tag_no) {
case 0: /* timestamp */
- offset += fTagHeaderTree (tvb, tree, offset, &tag_no, &tag_info, &lvt);
- offset = fDateTime (tvb, tree, offset, "Timestamp: ");
- offset += fTagHeaderTree (tvb, tree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree (tvb, pinfo, tree, offset, &tag_no, &tag_info, &lvt);
+ offset = fDateTime (tvb, pinfo, tree, offset, "Timestamp: ");
+ offset += fTagHeaderTree (tvb, pinfo, tree, offset, &tag_no, &tag_info, &lvt);
break;
case 1: /* presentValue */
- offset = fUnsignedTag (tvb,tree,offset,"Present Value: ");
+ offset = fUnsignedTag (tvb,pinfo,tree,offset,"Present Value: ");
break;
case 2: /* accumulatedValue */
- offset = fUnsignedTag (tvb,tree,offset,"Accumulated Value: ");
+ offset = fUnsignedTag (tvb,pinfo,tree,offset,"Accumulated Value: ");
break;
case 3: /* accumulatorStatus */
- offset = fEnumeratedTag (tvb, tree, offset, "Accumulator Status: ", BACnetAccumulatorStatus);
+ offset = fEnumeratedTag (tvb, pinfo, tree, offset, "Accumulator Status: ", BACnetAccumulatorStatus);
break;
default:
return offset;
@@ -6271,7 +6303,7 @@ fSequenceOfEnums (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint off
while (tvb_reported_length_remaining(tvb, offset) > 0) { /* exit loop if nothing happens inside */
lastoffset = offset;
- fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
if (tag_is_closing(tag_info) ) {
return offset;
}
@@ -6294,7 +6326,7 @@ fDoorMembers (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
while (tvb_reported_length_remaining(tvb, offset) > 0) { /* exit loop if nothing happens inside */
lastoffset = offset;
- fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
if (tag_is_closing(tag_info) ) {
return offset;
}
@@ -6316,7 +6348,7 @@ fListOfGroupMembers (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint
while (tvb_reported_length_remaining(tvb, offset) > 0) { /* exit loop if nothing happens inside */
lastoffset = offset;
- fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
if (tag_is_closing(tag_info) ) {
return offset;
}
@@ -6346,7 +6378,7 @@ fAbstractSyntaxNType (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint
}
while (tvb_reported_length_remaining(tvb, offset) > 0) { /* exit loop if nothing happens inside */
lastoffset = offset;
- fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
if (tag_is_closing(tag_info)) { /* closing tag, but not for me */
if (depth <= 0) return offset;
}
@@ -6372,7 +6404,7 @@ fAbstractSyntaxNType (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint
offset = fLOPR (tvb, pinfo, tree,offset);
break;
case 55: /* list-of-session-keys */
- fSessionKey (tvb, tree, offset);
+ fSessionKey (tvb, pinfo, tree, offset);
break;
case 79: /* object-type */
case 96: /* protocol-object-types-supported */
@@ -6460,13 +6492,13 @@ fAbstractSyntaxNType (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint
case 212: /* actual-shed-level */
case 214: /* expected-shed-level */
case 218: /* requested-shed-level */
- offset = fShedLevel (tvb, tree, offset);
+ offset = fShedLevel (tvb, pinfo, tree, offset);
break;
case 152: /* active-cov-subscriptions */
offset = fCOVSubscription (tvb, pinfo, tree, offset);
break;
case 23: /* date-list */
- offset = fCalendarEntry(tvb, tree, offset);
+ offset = fCalendarEntry(tvb, pinfo, tree, offset);
break;
case 116: /* time-sychronization-recipients */
offset = fRecipient(tvb, pinfo, tree, offset);
@@ -6568,12 +6600,12 @@ fAbstractSyntaxNType (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint
if (tag_info) {
if (tag_is_opening(tag_info)) {
++depth;
- offset += fTagHeaderTree(tvb, tree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree(tvb, pinfo, tree, offset, &tag_no, &tag_info, &lvt);
} else if (tag_is_closing(tag_info)) {
--depth;
- offset += fTagHeaderTree(tvb, tree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree(tvb, pinfo, tree, offset, &tag_no, &tag_info, &lvt);
} else {
- offset = fContextTaggedValue(tvb, tree, offset, ar);
+ offset = fContextTaggedValue(tvb, pinfo, tree, offset, ar);
}
} else {
offset = fApplicationTypes (tvb, pinfo, tree, offset, ar);
@@ -6593,11 +6625,11 @@ fPropertyValue (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offse
guint32 lvt;
if (tag_is_opening(tag_info)) {
- offset += fTagHeaderTree(tvb, tree, offset,
+ offset += fTagHeaderTree(tvb, pinfo, tree, offset,
&tag_no, &tag_info, &lvt);
offset = fAbstractSyntaxNType (tvb, pinfo, tree, offset);
if (tvb_length_remaining(tvb, offset) > 0) {
- offset += fTagHeaderTree(tvb, tree, offset,
+ offset += fTagHeaderTree(tvb, pinfo, tree, offset,
&tag_no, &tag_info, &lvt);
}
} else {
@@ -6619,7 +6651,7 @@ fPropertyIdentifierValue (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, g
offset = fPropertyReference(tvb, pinfo, tree, offset, tagoffset, 0);
if (offset > lastoffset) {
- fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
if (tag_no == tagoffset+2) { /* Value - might not be present in ReadAccessResult */
offset = fPropertyValue (tvb, pinfo, tree, offset, tag_info);
}
@@ -6640,9 +6672,9 @@ fBACnetPropertyValue (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint
if (offset > lastoffset) {
/* detect optional priority
by looking to see if the next tag is context tag number 3 */
- fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
if (tag_is_context_specific(tag_info) && (tag_no == 3))
- offset = fUnsignedTag (tvb,tree,offset,"Priority: ");
+ offset = fUnsignedTag (tvb,pinfo,tree,offset,"Priority: ");
}
if (offset == lastoffset) break; /* nothing happened, exit loop */
}
@@ -6660,7 +6692,7 @@ fSubscribeCOVPropertyRequest(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
while (tvb_reported_length_remaining(tvb, offset) > 0) { /* exit loop if nothing happens inside */
lastoffset = offset;
- len = fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ len = fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
if (tag_is_closing(tag_info)) {
offset += len;
subtree = tree;
@@ -6669,16 +6701,16 @@ fSubscribeCOVPropertyRequest(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
switch (tag_no) {
case 0: /* ProcessId */
- offset = fUnsignedTag (tvb, tree, offset, "subscriber Process Id: ");
+ offset = fUnsignedTag (tvb, pinfo, tree, offset, "subscriber Process Id: ");
break;
case 1: /* monitored ObjectId */
offset = fObjectIdentifier (tvb, pinfo, tree, offset);
break;
case 2: /* issueConfirmedNotifications */
- offset = fBooleanTag (tvb, tree, offset, "issue Confirmed Notifications: ");
+ offset = fBooleanTag (tvb, pinfo, tree, offset, "issue Confirmed Notifications: ");
break;
case 3: /* life time */
- offset = fTimeSpan (tvb,tree,offset,"life time");
+ offset = fTimeSpan (tvb,pinfo,tree,offset,"life time");
break;
case 4: /* monitoredPropertyIdentifier */
if (tag_is_opening(tag_info)) {
@@ -6686,14 +6718,14 @@ fSubscribeCOVPropertyRequest(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
if (tt) {
subtree = proto_item_add_subtree(tt, ett_bacapp_value);
}
- offset += fTagHeaderTree (tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree (tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
offset = fBACnetPropertyReference (tvb, pinfo, subtree, offset, 1);
break;
}
FAULT;
break;
case 5: /* covIncrement */
- offset = fRealTag (tvb, tree, offset, "COV Increment: ");
+ offset = fRealTag (tvb, pinfo, tree, offset, "COV Increment: ");
break;
default:
return offset;
@@ -6719,16 +6751,16 @@ fWhoHas (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
switch (fTagNo(tvb, offset)) {
case 0: /* deviceInstanceLowLimit */
- offset = fUnsignedTag (tvb, tree, offset, "device Instance Low Limit: ");
+ offset = fUnsignedTag (tvb, pinfo, tree, offset, "device Instance Low Limit: ");
break;
case 1: /* deviceInstanceHighLimit */
- offset = fUnsignedTag (tvb, tree, offset, "device Instance High Limit: ");
+ offset = fUnsignedTag (tvb, pinfo, tree, offset, "device Instance High Limit: ");
break;
case 2: /* BACnetObjectId */
offset = fObjectIdentifier (tvb, pinfo, tree, offset);
break;
case 3: /* messageText */
- offset = fCharacterString (tvb,tree,offset, "Object Name: ");
+ offset = fCharacterString (tvb,pinfo,tree,offset, "Object Name: ");
break;
default:
return offset;
@@ -6746,15 +6778,15 @@ fDailySchedule (tvbuff_t *tvb, packet_info *pinfo, proto_tree *subtree, guint of
guint8 tag_no, tag_info;
guint32 lvt;
- fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
if (tag_is_opening(tag_info) && tag_no == 0) {
- offset += fTagHeaderTree (tvb, subtree, offset, &tag_no, &tag_info, &lvt); /* opening context tag 0 */
+ offset += fTagHeaderTree (tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt); /* opening context tag 0 */
while (tvb_reported_length_remaining(tvb, offset) > 0) { /* exit loop if nothing happens inside */
lastoffset = offset;
- fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
if (tag_is_closing(tag_info)) {
/* should be closing context tag 0 */
- offset += fTagHeaderTree (tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree (tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
return offset;
}
@@ -6763,7 +6795,7 @@ fDailySchedule (tvbuff_t *tvb, packet_info *pinfo, proto_tree *subtree, guint of
}
} else if (tag_no == 0 && lvt == 0) {
/* not sure null (empty array element) is legal */
- offset += fTagHeaderTree (tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree (tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
}
return offset;
}
@@ -6790,7 +6822,7 @@ fWeeklySchedule (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offs
}
while (tvb_reported_length_remaining(tvb, offset) > 0) { /* exit loop if nothing happens inside */
lastoffset = offset;
- fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
if (tag_is_closing(tag_info)) {
return offset; /* outer encoding will print out closing tag */
}
@@ -6804,30 +6836,30 @@ fWeeklySchedule (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offs
static guint
-fUTCTimeSynchronizationRequest (tvbuff_t *tvb, proto_tree *tree, guint offset)
+fUTCTimeSynchronizationRequest (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
if (tvb_reported_length_remaining(tvb, offset) <= 0)
return offset;
- return fDateTime (tvb, tree, offset, "UTC-Time: ");
+ return fDateTime (tvb, pinfo, tree, offset, "UTC-Time: ");
}
static guint
-fTimeSynchronizationRequest (tvbuff_t *tvb, proto_tree *tree, guint offset)
+fTimeSynchronizationRequest (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
if (tvb_reported_length_remaining(tvb, offset) <= 0)
return offset;
- return fDateTime (tvb, tree, offset, NULL);
+ return fDateTime (tvb, pinfo, tree, offset, NULL);
}
static guint
-fDateRange (tvbuff_t *tvb, proto_tree *tree, guint offset)
+fDateRange (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
if (tvb_reported_length_remaining(tvb, offset) <= 0)
return offset;
- offset = fDate (tvb,tree,offset,"Start Date: ");
- return fDate (tvb, tree, offset, "End Date: ");
+ offset = fDate (tvb,pinfo,tree,offset,"Start Date: ");
+ return fDate (tvb, pinfo, tree, offset, "End Date: ");
}
static guint
@@ -6841,7 +6873,7 @@ fVendorIdentifier (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint of
proto_tree *subtree;
const gchar *label = "Vendor ID";
- tag_len = fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ tag_len = fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
if (fUnsigned32 (tvb, offset + tag_len, lvt, &val))
ti = proto_tree_add_text(tree, tvb, offset, lvt+tag_len,
"%s: %s (%u)", label,
@@ -6850,7 +6882,7 @@ fVendorIdentifier (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint of
ti = proto_tree_add_text(tree, tvb, offset, lvt+tag_len,
"%s - %u octets (Unsigned)", label, lvt);
subtree = proto_item_add_subtree(ti, ett_bacapp_tag);
- fTagHeaderTree (tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ fTagHeaderTree (tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
if ((lvt < 1) || (lvt > 2)) { /* vendorIDs >= 1 and <= 2 are supported */
proto_item *expert_item;
@@ -6877,7 +6909,7 @@ fRestartReason (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offse
proto_tree *subtree;
const gchar *label = "Restart Reason";
- tag_len = fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ tag_len = fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
if (fUnsigned32 (tvb, offset + tag_len, lvt, &val))
ti = proto_tree_add_text(tree, tvb, offset, lvt+tag_len,
"%s: %s (%u)", label,
@@ -6886,7 +6918,7 @@ fRestartReason (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offse
ti = proto_tree_add_text(tree, tvb, offset, lvt+tag_len,
"%s - %u octets (Unsigned)", label, lvt);
subtree = proto_item_add_subtree(ti, ett_bacapp_tag);
- fTagHeaderTree (tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ fTagHeaderTree (tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
if (lvt != 1) {
proto_item *expert_item;
@@ -6917,19 +6949,19 @@ fConfirmedTextMessageRequest(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
case 1: /* messageClass */
switch (fTagNo(tvb, offset)) {
case 0: /* numeric */
- offset = fUnsignedTag (tvb, tree, offset, "message Class: ");
+ offset = fUnsignedTag (tvb, pinfo, tree, offset, "message Class: ");
break;
case 1: /* character */
- offset = fCharacterString (tvb, tree, offset, "message Class: ");
+ offset = fCharacterString (tvb, pinfo, tree, offset, "message Class: ");
break;
}
break;
case 2: /* messagePriority */
- offset = fEnumeratedTag (tvb, tree, offset, "message Priority: ",
+ offset = fEnumeratedTag (tvb, pinfo, tree, offset, "message Priority: ",
BACnetMessagePriority);
break;
case 3: /* message */
- offset = fCharacterString (tvb, tree, offset, "message: ");
+ offset = fCharacterString (tvb, pinfo, tree, offset, "message: ");
break;
default:
return offset;
@@ -6958,7 +6990,7 @@ fConfirmedPrivateTransferRequest(tvbuff_t *tvb, packet_info *pinfo, proto_tree *
guint service_number = 0;
lastoffset = offset;
- len = fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ len = fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
fUnsigned32(tvb, offset+len, lvt, &vendor_identifier);
if (col_get_writable(pinfo->cinfo))
col_append_fstr(pinfo->cinfo, COL_INFO, "V=%u ", vendor_identifier);
@@ -6977,7 +7009,7 @@ fConfirmedPrivateTransferRequest(tvbuff_t *tvb, packet_info *pinfo, proto_tree *
/* exit loop if nothing happens inside */
while (tvb_reported_length_remaining(tvb, offset) > 0) {
lastoffset = offset;
- len = fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ len = fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
if (tag_is_closing(tag_info)) {
if (tag_no == 2) { /* Make sure it's the expected tag */
offset += len;
@@ -6994,7 +7026,7 @@ fConfirmedPrivateTransferRequest(tvbuff_t *tvb, packet_info *pinfo, proto_tree *
fUnsigned32(tvb, offset+len, lvt, &service_number);
if (col_get_writable(pinfo->cinfo))
col_append_fstr(pinfo->cinfo, COL_INFO, "SN=%u ", service_number);
- offset = fUnsignedTag (tvb, subtree, offset, "service Number: ");
+ offset = fUnsignedTag (tvb, pinfo, subtree, offset, "service Number: ");
break;
case 2: /*serviceParameters */
if (tag_is_opening(tag_info)) {
@@ -7043,17 +7075,17 @@ fLifeSafetyOperationRequest(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
while (tvb_reported_length_remaining(tvb, offset) > 0) { /* exit loop if nothing happens inside */
lastoffset = offset;
- fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
switch (tag_no) {
case 0: /* subscriberProcessId */
- offset = fUnsignedTag (tvb, subtree, offset, "requesting Process Id: ");
+ offset = fUnsignedTag (tvb, pinfo, subtree, offset, "requesting Process Id: ");
break;
case 1: /* requestingSource */
- offset = fCharacterString (tvb, tree, offset, "requesting Source: ");
+ offset = fCharacterString (tvb, pinfo, tree, offset, "requesting Source: ");
break;
case 2: /* request */
- offset = fEnumeratedTagSplit (tvb, tree, offset,
+ offset = fEnumeratedTagSplit (tvb, pinfo, tree, offset,
"request: ", BACnetLifeSafetyOperation, 64);
break;
case 3: /* objectId */
@@ -7120,26 +7152,26 @@ fBACnetPropertyStates(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, g
guint32 lvt;
const gchar* label = NULL;
- fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
label = ep_strdup_printf( "%s: ", val_to_str_const( tag_no, VALS(BACnetPropertyStates), "unknown-"+tag_no ));
switch (tag_no) {
case 0:
- offset = fBooleanTag (tvb, tree, offset, label);
+ offset = fBooleanTag (tvb, pinfo, tree, offset, label);
break;
case 11:
- offset = fUnsignedTag(tvb, tree, offset, label);
+ offset = fUnsignedTag(tvb, pinfo, tree, offset, label);
break;
default:
if ( (tag_no > BACnetPropertyStatesEnums_Size) ||
VALS(BACnetPropertyStatesEnums[tag_no].valstr) == NULL)
{
- offset = fEnumeratedTag(tvb, tree, offset, "Unknown State: ", NULL);
+ offset = fEnumeratedTag(tvb, pinfo, tree, offset, "Unknown State: ", NULL);
/* don't use Abstract type here because it is context tagged and therefore we don't know app type */
}
else
{
- offset = fEnumeratedTagSplit(tvb, tree, offset, label,
+ offset = fEnumeratedTagSplit(tvb, pinfo, tree, offset, label,
VALS(BACnetPropertyStatesEnums[tag_no].valstr), 64);
}
break;
@@ -7167,7 +7199,7 @@ fDeviceObjectPropertyValue (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
while (tvb_reported_length_remaining(tvb, offset) > 0) {
lastoffset = offset;
/* check the tag. A closing tag means we are done */
- fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
if (tag_is_closing(tag_info)) {
return offset;
}
@@ -7182,13 +7214,13 @@ fDeviceObjectPropertyValue (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
offset = fPropertyIdentifier (tvb, pinfo, tree, offset);
break;
case 3: /* arrayIndex - OPTIONAL */
- offset = fUnsignedTag (tvb, tree, offset,
+ offset = fUnsignedTag (tvb, pinfo, tree, offset,
"arrayIndex: ");
break;
case 4: /* value */
- offset += fTagHeaderTree(tvb, tree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree(tvb, pinfo, tree, offset, &tag_no, &tag_info, &lvt);
offset = fAbstractSyntaxNType (tvb, pinfo, tree, offset);
- offset += fTagHeaderTree(tvb, tree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree(tvb, pinfo, tree, offset, &tag_no, &tag_info, &lvt);
break;
default:
return offset;
@@ -7234,7 +7266,7 @@ fDeviceObjectPropertyReference (tvbuff_t *tvb, packet_info *pinfo, proto_tree *t
while (tvb_reported_length_remaining(tvb, offset) > 0) {
lastoffset = offset;
/* check the tag. A closing tag means we are done */
- fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
if (tag_is_closing(tag_info)) {
return offset;
}
@@ -7246,7 +7278,7 @@ fDeviceObjectPropertyReference (tvbuff_t *tvb, packet_info *pinfo, proto_tree *t
offset = fPropertyIdentifier (tvb, pinfo, tree, offset);
break;
case 2: /* arrayIndex - OPTIONAL */
- offset = fUnsignedTag (tvb, tree, offset,
+ offset = fUnsignedTag (tvb, pinfo, tree, offset,
"arrayIndex: ");
break;
case 3: /* deviceIdentifier - OPTIONAL */
@@ -7269,12 +7301,12 @@ fNotificationParameters (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gu
proto_tree *subtree = tree;
proto_item *tt;
- fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
tt = proto_tree_add_text(subtree, tvb, offset, 0, "notification parameters (%d) %s",
tag_no, val_to_str(tag_no, BACnetEventType, "invalid type"));
subtree = proto_item_add_subtree(tt, ett_bacapp_value);
/* Opening tag for parameter choice */
- offset += fTagHeaderTree(tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree(tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
switch (tag_no) {
case 0: /* change-of-bitstring */
@@ -7282,11 +7314,11 @@ fNotificationParameters (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gu
lastoffset = offset;
switch (fTagNo(tvb, offset)) {
case 0:
- offset = fBitStringTag (tvb, subtree, offset,
+ offset = fBitStringTag (tvb, pinfo, subtree, offset,
"referenced-bitstring: ");
break;
case 1:
- offset = fBitStringTagVS (tvb, subtree, offset,
+ offset = fBitStringTagVS (tvb, pinfo, subtree, offset,
"status-flags: ", BACnetStatusFlags);
lastoffset = offset;
break;
@@ -7301,12 +7333,12 @@ fNotificationParameters (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gu
lastoffset = offset;
switch (fTagNo(tvb, offset)) {
case 0:
- offset += fTagHeaderTree(tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree(tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
offset = fBACnetPropertyStates(tvb, pinfo, subtree, offset);
- offset += fTagHeaderTree(tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree(tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
break;
case 1:
- offset = fBitStringTagVS (tvb, subtree, offset,
+ offset = fBitStringTagVS (tvb, pinfo, subtree, offset,
"status-flags: ", BACnetStatusFlags);
lastoffset = offset;
break;
@@ -7321,23 +7353,23 @@ fNotificationParameters (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gu
lastoffset = offset;
switch (fTagNo(tvb, offset)) {
case 0:
- offset += fTagHeaderTree(tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree(tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
switch (fTagNo(tvb, offset)) {
case 0:
- offset = fBitStringTag (tvb, subtree, offset,
+ offset = fBitStringTag (tvb, pinfo, subtree, offset,
"changed-bits: ");
break;
case 1:
- offset = fRealTag (tvb, subtree, offset,
+ offset = fRealTag (tvb, pinfo, subtree, offset,
"changed-value: ");
break;
default:
break;
}
- offset += fTagHeaderTree(tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree(tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
break;
case 1:
- offset = fBitStringTagVS (tvb, subtree, offset,
+ offset = fBitStringTagVS (tvb, pinfo, subtree, offset,
"status-flags: ", BACnetStatusFlags);
lastoffset = offset;
break;
@@ -7355,19 +7387,19 @@ fNotificationParameters (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gu
/* from BACnet Table 13-3,
Standard Object Property Values Returned in Notifications */
propertyIdentifier = 85; /* PRESENT_VALUE */
- offset += fTagHeaderTree(tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree(tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
offset = fAbstractSyntaxNType (tvb, pinfo, subtree, offset);
- offset += fTagHeaderTree(tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree(tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
break;
case 1:
- offset = fBitStringTagVS (tvb, subtree, offset,
+ offset = fBitStringTagVS (tvb, pinfo, subtree, offset,
"status-flags: ", BACnetStatusFlags);
break;
case 2: /* "feedback-value: " */
propertyIdentifier = 40; /* FEEDBACK_VALUE */
- offset += fTagHeaderTree(tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree(tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
offset = fAbstractSyntaxNType (tvb, pinfo, subtree, offset);
- offset += fTagHeaderTree(tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree(tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
lastoffset = offset;
break;
default:
@@ -7381,17 +7413,17 @@ fNotificationParameters (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gu
lastoffset = offset;
switch (fTagNo(tvb, offset)) {
case 0:
- offset = fRealTag (tvb, subtree, offset, "reference-value: ");
+ offset = fRealTag (tvb, pinfo, subtree, offset, "reference-value: ");
break;
case 1:
- offset = fBitStringTagVS (tvb, subtree, offset,
+ offset = fBitStringTagVS (tvb, pinfo, subtree, offset,
"status-flags: ", BACnetStatusFlags);
break;
case 2:
- offset = fRealTag (tvb, subtree, offset, "setpoint-value: ");
+ offset = fRealTag (tvb, pinfo, subtree, offset, "setpoint-value: ");
break;
case 3:
- offset = fRealTag (tvb, subtree, offset, "error-limit: ");
+ offset = fRealTag (tvb, pinfo, subtree, offset, "error-limit: ");
lastoffset = offset;
break;
default:
@@ -7405,17 +7437,17 @@ fNotificationParameters (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gu
lastoffset = offset;
switch (fTagNo(tvb, offset)) {
case 0:
- offset = fRealTag (tvb, subtree, offset, "exceeding-value: ");
+ offset = fRealTag (tvb, pinfo, subtree, offset, "exceeding-value: ");
break;
case 1:
- offset = fBitStringTagVS (tvb, subtree, offset,
+ offset = fBitStringTagVS (tvb, pinfo, subtree, offset,
"status-flags: ", BACnetStatusFlags);
break;
case 2:
- offset = fRealTag (tvb, subtree, offset, "deadband: ");
+ offset = fRealTag (tvb, pinfo, subtree, offset, "deadband: ");
break;
case 3:
- offset = fRealTag (tvb, subtree, offset, "exceeded-limit: ");
+ offset = fRealTag (tvb, pinfo, subtree, offset, "exceeded-limit: ");
lastoffset = offset;
break;
default:
@@ -7442,14 +7474,14 @@ fNotificationParameters (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gu
offset = fObjectIdentifier (tvb, pinfo, subtree, offset); /* buffer-object */
break;
case 2:
- offset += fTagHeaderTree(tvb, subtree, offset, &tag_no, &tag_info, &lvt);
- offset = fDateTime (tvb, subtree, offset, "previous-notification: ");
- offset += fTagHeaderTree(tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree(tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset = fDateTime (tvb, pinfo, subtree, offset, "previous-notification: ");
+ offset += fTagHeaderTree(tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
break;
case 3:
- offset += fTagHeaderTree(tvb, subtree, offset, &tag_no, &tag_info, &lvt);
- offset = fDateTime (tvb, subtree, offset, "current-notification: ");
- offset += fTagHeaderTree(tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree(tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset = fDateTime (tvb, pinfo, subtree, offset, "current-notification: ");
+ offset += fTagHeaderTree(tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
lastoffset = offset;
break;
default:
@@ -7463,19 +7495,19 @@ fNotificationParameters (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gu
lastoffset = offset;
switch (fTagNo(tvb, offset)) {
case 0:
- offset = fEnumeratedTagSplit (tvb, subtree, offset,
+ offset = fEnumeratedTagSplit (tvb, pinfo, subtree, offset,
"new-state: ", BACnetLifeSafetyState, 256);
break;
case 1:
- offset = fEnumeratedTagSplit (tvb, subtree, offset,
+ offset = fEnumeratedTagSplit (tvb, pinfo, subtree, offset,
"new-mode: ", BACnetLifeSafetyMode, 256);
break;
case 2:
- offset = fBitStringTagVS (tvb, subtree, offset,
+ offset = fBitStringTagVS (tvb, pinfo, subtree, offset,
"status-flags: ", BACnetStatusFlags);
break;
case 3:
- offset = fEnumeratedTagSplit (tvb, subtree, offset,
+ offset = fEnumeratedTagSplit (tvb, pinfo, subtree, offset,
"operation-expected: ", BACnetLifeSafetyOperation, 64);
lastoffset = offset;
break;
@@ -7493,14 +7525,14 @@ fNotificationParameters (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gu
offset = fVendorIdentifier (tvb, pinfo, subtree, offset);
break;
case 1:
- offset = fUnsignedTag (tvb, subtree, offset,
+ offset = fUnsignedTag (tvb, pinfo, subtree, offset,
"extended-event-type: ");
break;
case 2: /* parameters */
- offset += fTagHeaderTree(tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree(tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
offset = fApplicationTypes(tvb, pinfo, subtree, offset, "parameters: ");
offset = fDeviceObjectPropertyValue(tvb, pinfo, subtree, offset);
- offset += fTagHeaderTree(tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree(tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
lastoffset = offset;
break;
default:
@@ -7514,16 +7546,16 @@ fNotificationParameters (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gu
lastoffset = offset;
switch (fTagNo(tvb, offset)) {
case 0: /* buffer-property */
- offset += fTagHeaderTree(tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree(tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
offset = fDeviceObjectPropertyReference (tvb, pinfo, subtree, offset);
- offset += fTagHeaderTree(tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree(tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
break;
case 1:
- offset = fUnsignedTag (tvb, subtree, offset,
+ offset = fUnsignedTag (tvb, pinfo, subtree, offset,
"previous-notification: ");
break;
case 2:
- offset = fUnsignedTag (tvb, subtree, offset,
+ offset = fUnsignedTag (tvb, pinfo, subtree, offset,
"current-notification: ");
lastoffset = offset;
break;
@@ -7538,15 +7570,15 @@ fNotificationParameters (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gu
lastoffset = offset;
switch (fTagNo(tvb, offset)) {
case 0:
- offset = fUnsignedTag (tvb, subtree, offset,
+ offset = fUnsignedTag (tvb, pinfo, subtree, offset,
"exceeding-value: ");
break;
case 1:
- offset = fBitStringTagVS (tvb, subtree, offset,
+ offset = fBitStringTagVS (tvb, pinfo, subtree, offset,
"status-flags: ", BACnetStatusFlags);
break;
case 2:
- offset = fUnsignedTag (tvb, subtree, offset,
+ offset = fUnsignedTag (tvb, pinfo, subtree, offset,
"exceeded-limit: ");
lastoffset = offset;
break;
@@ -7563,7 +7595,7 @@ fNotificationParameters (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gu
}
/* Closing tag for parameter choice */
- offset += fTagHeaderTree(tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree(tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
return offset;
}
@@ -7577,40 +7609,40 @@ fEventParameter (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offs
proto_tree *subtree = tree;
proto_item *tt;
- fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
tt = proto_tree_add_text(subtree, tvb, offset, 0, "event parameters (%d) %s",
tag_no, val_to_str(tag_no, BACnetEventType, "invalid type"));
subtree = proto_item_add_subtree(tt, ett_bacapp_value);
/* Opening tag for parameter choice */
- offset += fTagHeaderTree(tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree(tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
switch (tag_no) {
case 0: /* change-of-bitstring */
while ((tvb_reported_length_remaining(tvb, offset) > 0)&&(offset>lastoffset)) { /* exit loop if nothing happens inside */
lastoffset = offset;
- fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
if (tag_is_closing(tag_info)) {
break;
}
switch (tag_no) {
case 0:
- offset = fTimeSpan (tvb, subtree, offset, "Time Delay");
+ offset = fTimeSpan (tvb, pinfo, subtree, offset, "Time Delay");
break;
case 1:
- offset = fBitStringTag (tvb, subtree, offset, "bitmask: ");
+ offset = fBitStringTag (tvb, pinfo, subtree, offset, "bitmask: ");
break;
case 2: /* SEQUENCE OF BIT STRING */
- offset += fTagHeaderTree(tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree(tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
while ((tvb_reported_length_remaining(tvb, offset) > 0)&&(offset>lastoffset)) { /* exit loop if nothing happens inside */
lastoffset = offset;
- fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
if (tag_is_closing(tag_info)) {
break;
}
- offset = fBitStringTag(tvb, subtree, offset,
+ offset = fBitStringTag(tvb, pinfo, subtree, offset,
"bitstring value: ");
}
- offset += fTagHeaderTree(tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree(tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
break;
default:
break;
@@ -7620,25 +7652,25 @@ fEventParameter (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offs
case 1: /* change-of-state */
while ((tvb_reported_length_remaining(tvb, offset) > 0)&&(offset>lastoffset)) { /* exit loop if nothing happens inside */
lastoffset = offset;
- fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
if (tag_is_closing(tag_info)) {
break;
}
switch (tag_no) {
case 0:
- offset = fTimeSpan (tvb, subtree, offset, "Time Delay");
+ offset = fTimeSpan (tvb, pinfo, subtree, offset, "Time Delay");
break;
case 1: /* SEQUENCE OF BACnetPropertyStates */
- offset += fTagHeaderTree(tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree(tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
while ((tvb_reported_length_remaining(tvb, offset) > 0)&&(offset>lastoffset)) { /* exit loop if nothing happens inside */
lastoffset = offset;
- fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
if (tag_is_closing(tag_info)) {
break;
}
offset = fBACnetPropertyStates(tvb, pinfo, subtree, offset);
}
- offset += fTagHeaderTree(tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree(tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
break;
default:
break;
@@ -7650,22 +7682,22 @@ fEventParameter (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offs
lastoffset = offset;
switch (fTagNo(tvb, offset)) {
case 0:
- offset = fTimeSpan (tvb, subtree, offset, "Time Delay");
+ offset = fTimeSpan (tvb, pinfo, subtree, offset, "Time Delay");
break;
case 1: /* don't loop it, it's a CHOICE */
- offset += fTagHeaderTree(tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree(tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
switch (fTagNo(tvb, offset)) {
case 0:
- offset = fBitStringTag (tvb, subtree, offset, "bitmask: ");
+ offset = fBitStringTag (tvb, pinfo, subtree, offset, "bitmask: ");
break;
case 1:
- offset = fRealTag (tvb, subtree, offset,
+ offset = fRealTag (tvb, pinfo, subtree, offset,
"referenced Property Increment: ");
break;
default:
break;
}
- offset += fTagHeaderTree(tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree(tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
break;
default:
break;
@@ -7678,12 +7710,12 @@ fEventParameter (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offs
tag_no = fTagNo(tvb, offset);
switch (tag_no) {
case 0:
- offset = fTimeSpan (tvb, subtree, offset, "Time Delay");
+ offset = fTimeSpan (tvb, pinfo, subtree, offset, "Time Delay");
break;
case 1:
- offset += fTagHeaderTree(tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree(tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
offset = fDeviceObjectPropertyReference (tvb,pinfo,subtree,offset);
- offset += fTagHeaderTree(tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree(tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
break;
default:
break;
@@ -7693,27 +7725,27 @@ fEventParameter (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offs
case 4: /* floating-limit */
while ((tvb_reported_length_remaining(tvb, offset) > 0)&&(offset>lastoffset)) { /* exit loop if nothing happens inside */
lastoffset = offset;
- fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
if (tag_is_closing(tag_info)) {
break;
}
switch (tag_no) {
case 0:
- offset = fTimeSpan (tvb, subtree, offset, "Time Delay");
+ offset = fTimeSpan (tvb, pinfo, subtree, offset, "Time Delay");
break;
case 1:
- offset += fTagHeaderTree(tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree(tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
offset = fDeviceObjectPropertyReference (tvb,pinfo,subtree,offset);
- offset += fTagHeaderTree(tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree(tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
break;
case 2:
- offset = fRealTag (tvb, subtree, offset, "low diff limit: ");
+ offset = fRealTag (tvb, pinfo, subtree, offset, "low diff limit: ");
break;
case 3:
- offset = fRealTag (tvb, subtree, offset, "high diff limit: ");
+ offset = fRealTag (tvb, pinfo, subtree, offset, "high diff limit: ");
break;
case 4:
- offset = fRealTag (tvb, subtree, offset, "deadband: ");
+ offset = fRealTag (tvb, pinfo, subtree, offset, "deadband: ");
break;
default:
break;
@@ -7725,16 +7757,16 @@ fEventParameter (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offs
lastoffset = offset;
switch (fTagNo(tvb, offset)) {
case 0:
- offset = fTimeSpan (tvb, subtree, offset, "Time Delay");
+ offset = fTimeSpan (tvb, pinfo, subtree, offset, "Time Delay");
break;
case 1:
- offset = fRealTag (tvb, subtree, offset, "low limit: ");
+ offset = fRealTag (tvb, pinfo, subtree, offset, "low limit: ");
break;
case 2:
- offset = fRealTag (tvb, subtree, offset, "high limit: ");
+ offset = fRealTag (tvb, pinfo, subtree, offset, "high limit: ");
break;
case 3:
- offset = fRealTag (tvb, subtree, offset, "deadband: ");
+ offset = fRealTag (tvb, pinfo, subtree, offset, "deadband: ");
break;
default:
break;
@@ -7754,10 +7786,10 @@ fEventParameter (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offs
lastoffset = offset;
switch (fTagNo(tvb, offset)) {
case 0:
- offset = fUnsignedTag (tvb,tree,offset,"notification threshold");
+ offset = fUnsignedTag (tvb,pinfo,tree,offset,"notification threshold");
break;
case 1:
- offset = fUnsignedTag (tvb,tree,offset,
+ offset = fUnsignedTag (tvb,pinfo,tree,offset,
"previous notification count: ");
break;
default:
@@ -7771,38 +7803,38 @@ fEventParameter (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offs
lastoffset = offset;
switch (fTagNo(tvb, offset)) {
case 0:
- offset = fTimeSpan (tvb, subtree, offset, "Time Delay");
+ offset = fTimeSpan (tvb, pinfo, subtree, offset, "Time Delay");
break;
case 1:
- offset += fTagHeaderTree(tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree(tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
while ((tvb_reported_length_remaining(tvb, offset) > 0)&&(offset>lastoffset)) { /* exit loop if nothing happens inside */
lastoffset = offset;
- fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
if (tag_is_closing(tag_info)) {
break;
}
- offset = fEnumeratedTagSplit (tvb, subtree, offset,
+ offset = fEnumeratedTagSplit (tvb, pinfo, subtree, offset,
"life safety alarm value: ", BACnetLifeSafetyState, 256);
}
- offset += fTagHeaderTree(tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree(tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
break;
case 2:
- offset += fTagHeaderTree(tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree(tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
while ((tvb_reported_length_remaining(tvb, offset) > 0)&&(offset>lastoffset)) { /* exit loop if nothing happens inside */
lastoffset = offset;
- fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
if (tag_is_closing(tag_info)) {
break;
}
- offset = fEnumeratedTagSplit (tvb, subtree, offset,
+ offset = fEnumeratedTagSplit (tvb, pinfo, subtree, offset,
"alarm value: ", BACnetLifeSafetyState, 256);
}
- offset += fTagHeaderTree(tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree(tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
break;
case 3:
- offset += fTagHeaderTree(tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree(tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
offset = fDeviceObjectPropertyReference (tvb, pinfo, subtree, offset);
- offset += fTagHeaderTree(tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree(tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
break;
default:
break;
@@ -7817,14 +7849,14 @@ fEventParameter (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offs
offset = fVendorIdentifier (tvb, pinfo, tree, offset);
break;
case 1:
- offset = fUnsignedTag (tvb, tree, offset,
+ offset = fUnsignedTag (tvb, pinfo, tree, offset,
"extended-event-type: ");
break;
case 2: /* parameters */
- offset += fTagHeaderTree(tvb, tree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree(tvb, pinfo, tree, offset, &tag_no, &tag_info, &lvt);
offset = fApplicationTypes(tvb, pinfo, tree, offset, "parameters: ");
offset = fDeviceObjectPropertyValue(tvb, pinfo, tree, offset);
- offset += fTagHeaderTree(tvb, tree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree(tvb, pinfo, tree, offset, &tag_no, &tag_info, &lvt);
lastoffset = offset;
break;
default:
@@ -7838,11 +7870,11 @@ fEventParameter (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offs
lastoffset = offset;
switch (fTagNo(tvb, offset)) {
case 0:
- offset = fUnsignedTag (tvb, subtree, offset,
+ offset = fUnsignedTag (tvb, pinfo, subtree, offset,
"notification-threshold: ");
break;
case 1:
- offset = fUnsignedTag (tvb, subtree, offset,
+ offset = fUnsignedTag (tvb, pinfo, subtree, offset,
"previous-notification-count: ");
break;
default:
@@ -7855,14 +7887,14 @@ fEventParameter (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offs
lastoffset = offset;
switch (fTagNo(tvb, offset)) {
case 0:
- offset = fTimeSpan (tvb, tree, offset, "Time Delay");
+ offset = fTimeSpan (tvb, pinfo, tree, offset, "Time Delay");
break;
case 1:
- offset = fUnsignedTag (tvb, tree, offset,
+ offset = fUnsignedTag (tvb, pinfo, tree, offset,
"low-limit: ");
break;
case 2:
- offset = fUnsignedTag (tvb, tree, offset,
+ offset = fUnsignedTag (tvb, pinfo, tree, offset,
"high-limit: ");
break;
default:
@@ -7876,7 +7908,7 @@ fEventParameter (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offs
}
/* Closing tag for parameter choice */
- offset += fTagHeaderTree(tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree(tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
return offset;
}
@@ -7893,31 +7925,31 @@ fEventLogRecord(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offse
lastoffset = offset;
switch (fTagNo(tvb, offset)) {
case 0: /* timestamp */
- offset += fTagHeaderTree (tvb, tree, offset, &tag_no, &tag_info, &lvt);
- offset = fDate (tvb,tree,offset,"Date: ");
- offset = fTime (tvb,tree,offset,"Time: ");
- offset += fTagHeaderTree (tvb, tree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree (tvb, pinfo, tree, offset, &tag_no, &tag_info, &lvt);
+ offset = fDate (tvb,pinfo,tree,offset,"Date: ");
+ offset = fTime (tvb,pinfo,tree,offset,"Time: ");
+ offset += fTagHeaderTree (tvb, pinfo, tree, offset, &tag_no, &tag_info, &lvt);
break;
case 1: /* logDatum: don't loop, it's a CHOICE */
- offset += fTagHeaderTree (tvb, tree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree (tvb, pinfo, tree, offset, &tag_no, &tag_info, &lvt);
switch (fTagNo(tvb, offset)) {
case 0: /* logStatus */ /* Changed this to BitString per BACnet Spec. */
- offset = fBitStringTagVS(tvb, tree, offset, "log status:", BACnetLogStatus);
+ offset = fBitStringTagVS(tvb, pinfo, tree, offset, "log status:", BACnetLogStatus);
break;
case 1: /* todo: move this to new method fConfirmedEventNotificationRequestTag... */
tt = proto_tree_add_text(tree, tvb, offset, 1, "notification: ");
subtree = proto_item_add_subtree(tt, ett_bacapp_value);
- offset += fTagHeaderTree (tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree (tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
offset = fConfirmedEventNotificationRequest(tvb, pinfo, subtree, offset);
- offset += fTagHeaderTree (tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree (tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
break;
case 2:
- offset = fRealTag (tvb, tree, offset, "time-change: ");
+ offset = fRealTag (tvb, pinfo, tree, offset, "time-change: ");
break;
default:
return offset;
}
- offset += fTagHeaderTree (tvb, tree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree (tvb, pinfo, tree, offset, &tag_no, &tag_info, &lvt);
break;
default:
return offset;
@@ -7938,59 +7970,59 @@ fLogRecord (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
lastoffset = offset;
switch (fTagNo(tvb, offset)) {
case 0: /* timestamp */
- offset += fTagHeaderTree (tvb, tree, offset, &tag_no, &tag_info, &lvt);
- offset = fDate (tvb,tree,offset,"Date: ");
- offset = fTime (tvb,tree,offset,"Time: ");
- offset += fTagHeaderTree (tvb, tree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree (tvb, pinfo, tree, offset, &tag_no, &tag_info, &lvt);
+ offset = fDate (tvb,pinfo,tree,offset,"Date: ");
+ offset = fTime (tvb,pinfo,tree,offset,"Time: ");
+ offset += fTagHeaderTree (tvb, pinfo, tree, offset, &tag_no, &tag_info, &lvt);
break;
case 1: /* logDatum: don't loop, it's a CHOICE */
- offset += fTagHeaderTree (tvb, tree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree (tvb, pinfo, tree, offset, &tag_no, &tag_info, &lvt);
switch (fTagNo(tvb, offset)) {
case 0: /* logStatus */ /* Changed this to BitString per BACnet Spec. */
- offset = fBitStringTagVS(tvb, tree, offset, "log status:", BACnetLogStatus);
+ offset = fBitStringTagVS(tvb, pinfo, tree, offset, "log status:", BACnetLogStatus);
break;
case 1:
- offset = fBooleanTag (tvb, tree, offset, "boolean-value: ");
+ offset = fBooleanTag (tvb, pinfo, tree, offset, "boolean-value: ");
break;
case 2:
- offset = fRealTag (tvb, tree, offset, "real value: ");
+ offset = fRealTag (tvb, pinfo, tree, offset, "real value: ");
break;
case 3:
- offset = fUnsignedTag (tvb, tree, offset, "enum value: ");
+ offset = fUnsignedTag (tvb, pinfo, tree, offset, "enum value: ");
break;
case 4:
- offset = fUnsignedTag (tvb, tree, offset, "unsigned value: ");
+ offset = fUnsignedTag (tvb, pinfo, tree, offset, "unsigned value: ");
break;
case 5:
- offset = fSignedTag (tvb, tree, offset, "signed value: ");
+ offset = fSignedTag (tvb, pinfo, tree, offset, "signed value: ");
break;
case 6:
- offset = fBitStringTag (tvb, tree, offset, "bitstring value: ");
+ offset = fBitStringTag (tvb, pinfo, tree, offset, "bitstring value: ");
break;
case 7:
- offset = fNullTag(tvb, tree, offset, "null value: ");
+ offset = fNullTag(tvb, pinfo, tree, offset, "null value: ");
break;
case 8:
- offset += fTagHeaderTree (tvb, tree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree (tvb, pinfo, tree, offset, &tag_no, &tag_info, &lvt);
offset = fError (tvb, pinfo, tree, offset);
- offset += fTagHeaderTree (tvb, tree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree (tvb, pinfo, tree, offset, &tag_no, &tag_info, &lvt);
break;
case 9:
- offset = fRealTag (tvb, tree, offset, "time change: ");
+ offset = fRealTag (tvb, pinfo, tree, offset, "time change: ");
break;
case 10: /* any Value */
- offset += fTagHeaderTree (tvb, tree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree (tvb, pinfo, tree, offset, &tag_no, &tag_info, &lvt);
offset = fAbstractSyntaxNType (tvb, pinfo, tree, offset);
- offset += fTagHeaderTree (tvb, tree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree (tvb, pinfo, tree, offset, &tag_no, &tag_info, &lvt);
break;
default:
return offset;
}
- offset += fTagHeaderTree (tvb, tree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree (tvb, pinfo, tree, offset, &tag_no, &tag_info, &lvt);
break;
case 2:
/* Changed this to BitString per BACnet Spec. */
- offset = fBitStringTagVS(tvb, tree, offset, "Status Flags:", BACnetStatusFlags);
+ offset = fBitStringTagVS(tvb, pinfo, tree, offset, "Status Flags:", BACnetStatusFlags);
break;
default:
return offset;
@@ -8011,71 +8043,71 @@ fLogMultipleRecord (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint o
lastoffset = offset;
switch (fTagNo(tvb, offset)) {
case 0: /* timestamp */
- offset += fTagHeaderTree (tvb, tree, offset, &tag_no, &tag_info, &lvt);
- offset = fDate (tvb,tree,offset,"Date: ");
- offset = fTime (tvb,tree,offset,"Time: ");
- offset += fTagHeaderTree (tvb, tree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree (tvb, pinfo, tree, offset, &tag_no, &tag_info, &lvt);
+ offset = fDate (tvb,pinfo,tree,offset,"Date: ");
+ offset = fTime (tvb,pinfo,tree,offset,"Time: ");
+ offset += fTagHeaderTree (tvb, pinfo, tree, offset, &tag_no, &tag_info, &lvt);
break;
case 1: /* logData: don't loop, it's a CHOICE */
- offset += fTagHeaderTree (tvb, tree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree (tvb, pinfo, tree, offset, &tag_no, &tag_info, &lvt);
switch (fTagNo(tvb, offset)) {
case 0: /* logStatus */ /* Changed this to BitString per BACnet Spec. */
- offset = fBitStringTagVS(tvb, tree, offset, "log status:", BACnetLogStatus);
+ offset = fBitStringTagVS(tvb, pinfo, tree, offset, "log status:", BACnetLogStatus);
break;
case 1: /* log-data: SEQUENCE OF CHOICE */
- offset += fTagHeaderTree (tvb, tree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree (tvb, pinfo, tree, offset, &tag_no, &tag_info, &lvt);
while ((tvb_reported_length_remaining(tvb, offset) > 0) && (offset != lastoffset)) { /* exit loop if nothing happens inside */
lastoffset = offset;
- fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
if (tag_is_closing(tag_info)) {
lastoffset = offset;
break;
}
switch (tag_no) {
case 0:
- offset = fBooleanTag (tvb, tree, offset, "boolean-value: ");
+ offset = fBooleanTag (tvb, pinfo, tree, offset, "boolean-value: ");
break;
case 1:
- offset = fRealTag (tvb, tree, offset, "real value: ");
+ offset = fRealTag (tvb, pinfo, tree, offset, "real value: ");
break;
case 2:
- offset = fUnsignedTag (tvb, tree, offset, "enum value: ");
+ offset = fUnsignedTag (tvb, pinfo, tree, offset, "enum value: ");
break;
case 3:
- offset = fUnsignedTag (tvb, tree, offset, "unsigned value: ");
+ offset = fUnsignedTag (tvb, pinfo, tree, offset, "unsigned value: ");
break;
case 4:
- offset = fSignedTag (tvb, tree, offset, "signed value: ");
+ offset = fSignedTag (tvb, pinfo, tree, offset, "signed value: ");
break;
case 5:
- offset = fBitStringTag (tvb, tree, offset, "bitstring value: ");
+ offset = fBitStringTag (tvb, pinfo, tree, offset, "bitstring value: ");
break;
case 6:
- offset = fNullTag(tvb, tree, offset, "null value: ");
+ offset = fNullTag(tvb, pinfo, tree, offset, "null value: ");
break;
case 7:
- offset += fTagHeaderTree (tvb, tree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree (tvb, pinfo, tree, offset, &tag_no, &tag_info, &lvt);
offset = fError (tvb, pinfo, tree, offset);
- offset += fTagHeaderTree (tvb, tree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree (tvb, pinfo, tree, offset, &tag_no, &tag_info, &lvt);
break;
case 8: /* any Value */
- offset += fTagHeaderTree (tvb, tree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree (tvb, pinfo, tree, offset, &tag_no, &tag_info, &lvt);
offset = fAbstractSyntaxNType (tvb, pinfo, tree, offset);
- offset += fTagHeaderTree (tvb, tree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree (tvb, pinfo, tree, offset, &tag_no, &tag_info, &lvt);
break;
default:
return offset;
}
}
- offset += fTagHeaderTree (tvb, tree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree (tvb, pinfo, tree, offset, &tag_no, &tag_info, &lvt);
break;
case 2:
- offset = fRealTag (tvb, tree, offset, "time-change: ");
+ offset = fRealTag (tvb, pinfo, tree, offset, "time-change: ");
break;
default:
return offset;
}
- offset += fTagHeaderTree (tvb, tree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree (tvb, pinfo, tree, offset, &tag_no, &tag_info, &lvt);
break;
default:
return offset;
@@ -8095,7 +8127,7 @@ fConfirmedEventNotificationRequest (tvbuff_t *tvb, packet_info *pinfo, proto_tre
while (tvb_reported_length_remaining(tvb, offset) > 0) { /* exit loop if nothing happens inside */
lastoffset = offset;
- fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
if (tag_is_closing(tag_info)) {
lastoffset = offset;
break;
@@ -8103,7 +8135,7 @@ fConfirmedEventNotificationRequest (tvbuff_t *tvb, packet_info *pinfo, proto_tre
switch (tag_no) {
case 0: /* ProcessId */
- offset = fProcessId (tvb,tree,offset);
+ offset = fProcessId (tvb,pinfo,tree,offset);
break;
case 1: /* initiating ObjectId */
offset = fObjectIdentifier (tvb, pinfo, tree, offset);
@@ -8112,42 +8144,42 @@ fConfirmedEventNotificationRequest (tvbuff_t *tvb, packet_info *pinfo, proto_tre
offset = fObjectIdentifier (tvb, pinfo, tree, offset);
break;
case 3: /* time stamp */
- offset += fTagHeaderTree (tvb, tree, offset, &tag_no, &tag_info, &lvt);
- offset = fTimeStamp (tvb, tree, offset, NULL);
- offset += fTagHeaderTree (tvb, tree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree (tvb, pinfo, tree, offset, &tag_no, &tag_info, &lvt);
+ offset = fTimeStamp (tvb, pinfo, tree, offset, NULL);
+ offset += fTagHeaderTree (tvb, pinfo, tree, offset, &tag_no, &tag_info, &lvt);
break;
case 4: /* notificationClass */
- offset = fUnsignedTag (tvb, tree, offset, "Notification Class: ");
+ offset = fUnsignedTag (tvb, pinfo, tree, offset, "Notification Class: ");
break;
case 5: /* Priority */
- offset = fUnsignedTag (tvb, tree, offset, "Priority: ");
+ offset = fUnsignedTag (tvb, pinfo, tree, offset, "Priority: ");
break;
case 6: /* EventType */
- offset = fEnumeratedTagSplit (tvb, tree, offset,
+ offset = fEnumeratedTagSplit (tvb, pinfo, tree, offset,
"Event Type: ", BACnetEventType, 64);
break;
case 7: /* messageText */
- offset = fCharacterString (tvb, tree, offset, "message Text: ");
+ offset = fCharacterString (tvb, pinfo, tree, offset, "message Text: ");
break;
case 8: /* NotifyType */
- offset = fEnumeratedTag (tvb, tree, offset,
+ offset = fEnumeratedTag (tvb, pinfo, tree, offset,
"Notify Type: ", BACnetNotifyType);
break;
case 9: /* ackRequired */
- offset = fBooleanTag (tvb, tree, offset, "ack Required: ");
+ offset = fBooleanTag (tvb, pinfo, tree, offset, "ack Required: ");
break;
case 10: /* fromState */
- offset = fEnumeratedTagSplit (tvb, tree, offset,
+ offset = fEnumeratedTagSplit (tvb, pinfo, tree, offset,
"from State: ", BACnetEventState, 64);
break;
case 11: /* toState */
- offset = fEnumeratedTagSplit (tvb, tree, offset,
+ offset = fEnumeratedTagSplit (tvb, pinfo, tree, offset,
"to State: ", BACnetEventState, 64);
break;
case 12: /* NotificationParameters */
- offset += fTagHeaderTree (tvb, tree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree (tvb, pinfo, tree, offset, &tag_no, &tag_info, &lvt);
offset = fNotificationParameters (tvb, pinfo, tree, offset);
- offset += fTagHeaderTree (tvb, tree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree (tvb, pinfo, tree, offset, &tag_no, &tag_info, &lvt);
break;
default:
break;
@@ -8174,7 +8206,7 @@ fConfirmedCOVNotificationRequest (tvbuff_t *tvb, packet_info *pinfo, proto_tree
while (tvb_reported_length_remaining(tvb, offset) > 0) { /* exit loop if nothing happens inside */
lastoffset = offset;
- len = fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ len = fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
if (tag_is_closing(tag_info)) {
offset += len;
subtree = tree;
@@ -8183,7 +8215,7 @@ fConfirmedCOVNotificationRequest (tvbuff_t *tvb, packet_info *pinfo, proto_tree
switch (tag_no) {
case 0: /* ProcessId */
- offset = fProcessId (tvb,tree,offset);
+ offset = fProcessId (tvb,pinfo,tree,offset);
break;
case 1: /* initiating DeviceId */
offset = fObjectIdentifier (tvb, pinfo, subtree, offset);
@@ -8192,13 +8224,13 @@ fConfirmedCOVNotificationRequest (tvbuff_t *tvb, packet_info *pinfo, proto_tree
offset = fObjectIdentifier (tvb, pinfo, subtree, offset);
break;
case 3: /* time remaining */
- offset = fTimeSpan (tvb, tree, offset, "Time remaining");
+ offset = fTimeSpan (tvb, pinfo, tree, offset, "Time remaining");
break;
case 4: /* List of Values */
if (tag_is_opening(tag_info)) {
tt = proto_tree_add_text(subtree, tvb, offset, 1, "list of Values");
subtree = proto_item_add_subtree(tt, ett_bacapp_value);
- offset += fTagHeaderTree (tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree (tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
offset = fBACnetPropertyValue (tvb, pinfo, subtree, offset);
break;
}
@@ -8229,27 +8261,27 @@ fAcknowledgeAlarmRequest (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, g
lastoffset = offset;
switch (fTagNo(tvb, offset)) {
case 0: /* acknowledgingProcessId */
- offset = fUnsignedTag (tvb, tree, offset, "acknowledging Process Id: ");
+ offset = fUnsignedTag (tvb, pinfo, tree, offset, "acknowledging Process Id: ");
break;
case 1: /* eventObjectId */
offset = fObjectIdentifier (tvb, pinfo, tree, offset);
break;
case 2: /* eventStateAcknowledged */
- offset = fEnumeratedTagSplit (tvb, tree, offset,
+ offset = fEnumeratedTagSplit (tvb, pinfo, tree, offset,
"event State Acknowledged: ", BACnetEventState, 64);
break;
case 3: /* timeStamp */
- offset += fTagHeaderTree(tvb, tree, offset, &tag_no, &tag_info, &lvt);
- offset = fTimeStamp(tvb, tree, offset, NULL);
- offset += fTagHeaderTree(tvb, tree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree(tvb, pinfo, tree, offset, &tag_no, &tag_info, &lvt);
+ offset = fTimeStamp(tvb, pinfo, tree, offset, NULL);
+ offset += fTagHeaderTree(tvb, pinfo, tree, offset, &tag_no, &tag_info, &lvt);
break;
case 4: /* acknowledgementSource */
- offset = fCharacterString (tvb, tree, offset, "acknowledgement Source: ");
+ offset = fCharacterString (tvb, pinfo, tree, offset, "acknowledgement Source: ");
break;
case 5: /* timeOfAcknowledgement */
- offset += fTagHeaderTree(tvb, tree, offset, &tag_no, &tag_info, &lvt);
- offset = fTimeStamp(tvb, tree, offset, "acknowledgement timestamp: ");
- offset += fTagHeaderTree(tvb, tree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree(tvb, pinfo, tree, offset, &tag_no, &tag_info, &lvt);
+ offset = fTimeStamp(tvb, pinfo, tree, offset, "acknowledgement timestamp: ");
+ offset += fTagHeaderTree(tvb, pinfo, tree, offset, &tag_no, &tag_info, &lvt);
break;
default:
return offset;
@@ -8287,30 +8319,30 @@ fGetEnrollmentSummaryRequest (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tre
lastoffset = offset;
switch (fTagNo(tvb, offset)) {
case 0: /* acknowledgmentFilter */
- offset = fEnumeratedTag (tvb, tree, offset,
+ offset = fEnumeratedTag (tvb, pinfo, tree, offset,
"acknowledgment Filter: ", BACnetAcknowledgementFilter);
break;
case 1: /* eventObjectId - OPTIONAL */
- offset += fTagHeaderTree (tvb, tree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree (tvb, pinfo, tree, offset, &tag_no, &tag_info, &lvt);
offset = fRecipientProcess (tvb, pinfo, tree, offset);
- offset += fTagHeaderTree (tvb, tree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree (tvb, pinfo, tree, offset, &tag_no, &tag_info, &lvt);
break;
case 2: /* eventStateFilter */
- offset = fEnumeratedTag (tvb, tree, offset,
+ offset = fEnumeratedTag (tvb, pinfo, tree, offset,
"event State Filter: ", BACnetEventStateFilter);
break;
case 3: /* eventTypeFilter - OPTIONAL */
- offset = fEnumeratedTag (tvb, tree, offset,
+ offset = fEnumeratedTag (tvb, pinfo, tree, offset,
"event Type Filter: ", BACnetEventType);
break;
case 4: /* priorityFilter */
- offset += fTagHeaderTree (tvb, tree, offset, &tag_no, &tag_info, &lvt);
- offset = fUnsignedTag (tvb, tree, offset, "min Priority: ");
- offset = fUnsignedTag (tvb, tree, offset, "max Priority: ");
- offset += fTagHeaderTree (tvb, tree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree (tvb, pinfo, tree, offset, &tag_no, &tag_info, &lvt);
+ offset = fUnsignedTag (tvb, pinfo, tree, offset, "min Priority: ");
+ offset = fUnsignedTag (tvb, pinfo, tree, offset, "max Priority: ");
+ offset += fTagHeaderTree (tvb, pinfo, tree, offset, &tag_no, &tag_info, &lvt);
break;
case 5: /* notificationClassFilter - OPTIONAL */
- offset = fUnsignedTag (tvb, tree, offset, "notification Class Filter: ");
+ offset = fUnsignedTag (tvb, pinfo, tree, offset, "notification Class Filter: ");
break;
default:
return offset;
@@ -8362,7 +8394,7 @@ flistOfEventSummaries (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guin
while (tvb_reported_length_remaining(tvb, offset) > 0) { /* exit loop if nothing happens inside */
lastoffset = offset;
- fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
/* we are finished here if we spot a closing tag */
if (tag_is_closing(tag_info)) {
break;
@@ -8372,11 +8404,11 @@ flistOfEventSummaries (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guin
offset = fObjectIdentifier (tvb, pinfo, tree, offset);
break;
case 1: /* eventState */
- offset = fEnumeratedTag (tvb, tree, offset,
+ offset = fEnumeratedTag (tvb, pinfo, tree, offset,
"event State: ", BACnetEventState);
break;
case 2: /* acknowledgedTransitions */
- offset = fBitStringTagVS (tvb, tree, offset,
+ offset = fBitStringTagVS (tvb, pinfo, tree, offset,
"acknowledged Transitions: ", BACnetEventTransitionBits);
break;
case 3: /* eventTimeStamps */
@@ -8384,18 +8416,18 @@ flistOfEventSummaries (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guin
if (ti) {
subtree = proto_item_add_subtree(ti, ett_bacapp_tag);
}
- offset += fTagHeaderTree (tvb, subtree, offset, &tag_no, &tag_info, &lvt);
- offset = fTimeStamp (tvb, subtree, offset,"TO-OFFNORMAL timestamp: ");
- offset = fTimeStamp (tvb, subtree, offset,"TO-FAULT timestamp: ");
- offset = fTimeStamp (tvb, subtree, offset,"TO-NORMAL timestamp: ");
- offset += fTagHeaderTree (tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree (tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset = fTimeStamp (tvb, pinfo, subtree, offset,"TO-OFFNORMAL timestamp: ");
+ offset = fTimeStamp (tvb, pinfo, subtree, offset,"TO-FAULT timestamp: ");
+ offset = fTimeStamp (tvb, pinfo, subtree, offset,"TO-NORMAL timestamp: ");
+ offset += fTagHeaderTree (tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
break;
case 4: /* notifyType */
- offset = fEnumeratedTag (tvb, tree, offset,
+ offset = fEnumeratedTag (tvb, pinfo, tree, offset,
"Notify Type: ", BACnetNotifyType);
break;
case 5: /* eventEnable */
- offset = fBitStringTagVS (tvb, tree, offset,
+ offset = fBitStringTagVS (tvb, pinfo, tree, offset,
"event Enable: ", BACnetEventTransitionBits);
break;
case 6: /* eventPriorities */
@@ -8403,11 +8435,11 @@ flistOfEventSummaries (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guin
if (ti) {
subtree = proto_item_add_subtree(ti, ett_bacapp_tag);
}
- offset += fTagHeaderTree (tvb, subtree, offset, &tag_no, &tag_info, &lvt);
- offset = fUnsignedTag (tvb, subtree, offset, "TO-OFFNORMAL Priority: ");
- offset = fUnsignedTag (tvb, subtree, offset, "TO-FAULT Priority: ");
- offset = fUnsignedTag (tvb, subtree, offset, "TO-NORMAL Priority: ");
- offset += fTagHeaderTree (tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree (tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset = fUnsignedTag (tvb, pinfo, subtree, offset, "TO-OFFNORMAL Priority: ");
+ offset = fUnsignedTag (tvb, pinfo, subtree, offset, "TO-FAULT Priority: ");
+ offset = fUnsignedTag (tvb, pinfo, subtree, offset, "TO-NORMAL Priority: ");
+ offset += fTagHeaderTree (tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
break;
default:
return offset;
@@ -8427,7 +8459,7 @@ fLOPR (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
col_set_writable(pinfo->cinfo, FALSE); /* don't set all infos into INFO column */
while (tvb_reported_length_remaining(tvb, offset) > 0) { /* exit loop if nothing happens inside */
lastoffset = offset;
- fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
/* we are finished here if we spot a closing tag */
if (tag_is_closing(tag_info)) {
break;
@@ -8449,12 +8481,12 @@ fGetEventInformationACK (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gu
lastoffset = offset;
switch (fTagNo(tvb, offset)) {
case 0: /* listOfEventSummaries */
- offset += fTagHeaderTree (tvb, tree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree (tvb, pinfo, tree, offset, &tag_no, &tag_info, &lvt);
offset = flistOfEventSummaries (tvb, pinfo, tree, offset);
- offset += fTagHeaderTree (tvb, tree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree (tvb, pinfo, tree, offset, &tag_no, &tag_info, &lvt);
break;
case 1: /* moreEvents */
- offset = fBooleanTag (tvb, tree, offset, "more Events: ");
+ offset = fBooleanTag (tvb, pinfo, tree, offset, "more Events: ");
break;
default:
return offset;
@@ -8477,7 +8509,7 @@ fAddListElementRequest(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guin
while (tvb_reported_length_remaining(tvb, offset) > 0) { /* exit loop if nothing happens inside */
lastoffset = offset;
- len = fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ len = fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
if (tag_is_closing(tag_info)) {
offset += len;
subtree = tree;
@@ -8492,7 +8524,7 @@ fAddListElementRequest(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guin
if (tag_is_opening(tag_info)) {
tt = proto_tree_add_text(subtree, tvb, offset, 1, "listOfElements");
subtree = proto_item_add_subtree(tt, ett_bacapp_value);
- offset += fTagHeaderTree (tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree (tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
offset = fAbstractSyntaxNType (tvb, pinfo, subtree, offset);
break;
}
@@ -8513,7 +8545,7 @@ fDeleteObjectRequest(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint
}
static guint
-fDeviceCommunicationControlRequest(tvbuff_t *tvb, proto_tree *tree, guint offset)
+fDeviceCommunicationControlRequest(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
guint lastoffset = 0;
@@ -8522,14 +8554,14 @@ fDeviceCommunicationControlRequest(tvbuff_t *tvb, proto_tree *tree, guint offset
switch (fTagNo(tvb, offset)) {
case 0: /* timeDuration */
- offset = fUnsignedTag (tvb,tree,offset,"time Duration: ");
+ offset = fUnsignedTag (tvb,pinfo,tree,offset,"time Duration: ");
break;
case 1: /* enable-disable */
- offset = fEnumeratedTag (tvb, tree, offset, "enable-disable: ",
+ offset = fEnumeratedTag (tvb, pinfo, tree, offset, "enable-disable: ",
BACnetEnableDisable);
break;
case 2: /* password - OPTIONAL */
- offset = fCharacterString (tvb, tree, offset, "Password: ");
+ offset = fCharacterString (tvb, pinfo, tree, offset, "Password: ");
break;
default:
return offset;
@@ -8540,7 +8572,7 @@ fDeviceCommunicationControlRequest(tvbuff_t *tvb, proto_tree *tree, guint offset
}
static guint
-fReinitializeDeviceRequest(tvbuff_t *tvb, proto_tree *tree, guint offset)
+fReinitializeDeviceRequest(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
guint lastoffset = 0;
@@ -8549,12 +8581,12 @@ fReinitializeDeviceRequest(tvbuff_t *tvb, proto_tree *tree, guint offset)
switch (fTagNo(tvb, offset)) {
case 0: /* reinitializedStateOfDevice */
- offset = fEnumeratedTag (tvb, tree, offset,
+ offset = fEnumeratedTag (tvb, pinfo, tree, offset,
"reinitialized State Of Device: ",
BACnetReinitializedStateOfDevice);
break;
case 1: /* password - OPTIONAL */
- offset = fCharacterString (tvb, tree, offset, "Password: ");
+ offset = fCharacterString (tvb, pinfo, tree, offset, "Password: ");
break;
default:
return offset;
@@ -8600,7 +8632,7 @@ fVtDataRequest (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offse
}
static guint
-fVtDataAck (tvbuff_t *tvb, proto_tree *tree, guint offset)
+fVtDataAck (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
guint lastoffset = 0;
@@ -8609,10 +8641,10 @@ fVtDataAck (tvbuff_t *tvb, proto_tree *tree, guint offset)
switch (fTagNo(tvb,offset)) {
case 0: /* BOOLEAN */
- offset = fBooleanTag (tvb, tree, offset, "all New Data Accepted: ");
+ offset = fBooleanTag (tvb, pinfo, tree, offset, "all New Data Accepted: ");
break;
case 1: /* Unsigned OPTIONAL */
- offset = fUnsignedTag (tvb, tree, offset, "accepted Octet Count: ");
+ offset = fUnsignedTag (tvb, pinfo, tree, offset, "accepted Octet Count: ");
break;
default:
return offset;
@@ -8623,7 +8655,7 @@ fVtDataAck (tvbuff_t *tvb, proto_tree *tree, guint offset)
}
static guint
-fAuthenticateRequest (tvbuff_t *tvb, proto_tree *tree, guint offset)
+fAuthenticateRequest (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
guint lastoffset = 0;
@@ -8632,19 +8664,19 @@ fAuthenticateRequest (tvbuff_t *tvb, proto_tree *tree, guint offset)
switch (fTagNo(tvb,offset)) {
case 0: /* Unsigned32 */
- offset = fUnsignedTag (tvb, tree, offset, "pseudo Random Number: ");
+ offset = fUnsignedTag (tvb, pinfo, tree, offset, "pseudo Random Number: ");
break;
case 1: /* expected Invoke ID Unsigned8 OPTIONAL */
proto_tree_add_item(tree, hf_bacapp_invoke_id, tvb, offset++, 1, ENC_BIG_ENDIAN);
break;
case 2: /* Chararacter String OPTIONAL */
- offset = fCharacterString (tvb, tree, offset, "operator Name: ");
+ offset = fCharacterString (tvb, pinfo, tree, offset, "operator Name: ");
break;
case 3: /* Chararacter String OPTIONAL */
- offset = fCharacterString (tvb, tree, offset, "operator Password: ");
+ offset = fCharacterString (tvb, pinfo, tree, offset, "operator Password: ");
break;
case 4: /* Boolean OPTIONAL */
- offset = fBooleanTag (tvb, tree, offset, "start Encyphered Session: ");
+ offset = fBooleanTag (tvb, pinfo, tree, offset, "start Encyphered Session: ");
break;
default:
return offset;
@@ -8664,9 +8696,9 @@ static guint
fRequestKeyRequest (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
offset = fObjectIdentifier (tvb, pinfo, tree, offset); /* Requesting Device Identifier */
- offset = fAddress (tvb, tree, offset);
+ offset = fAddress (tvb, pinfo, tree, offset);
offset = fObjectIdentifier (tvb, pinfo, tree, offset); /* Remote Device Identifier */
- return fAddress (tvb, tree, offset);
+ return fAddress (tvb, pinfo, tree, offset);
}
static guint
@@ -8694,7 +8726,7 @@ fReadPropertyAck (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint off
propertyArrayIndex = -1;
while (tvb_reported_length_remaining(tvb, offset) > 0) { /* exit loop if nothing happens inside */
lastoffset = offset;
- len = fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ len = fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
if (tag_is_closing(tag_info)) {
offset += len;
subtree = tree;
@@ -8708,7 +8740,7 @@ fReadPropertyAck (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint off
offset = fPropertyIdentifier (tvb, pinfo, subtree, offset);
break;
case 2: /* propertyArrayIndex */
- offset = fPropertyArrayIndex (tvb, subtree, offset);
+ offset = fPropertyArrayIndex (tvb, pinfo, subtree, offset);
break;
case 3: /* propertyValue */
offset = fPropertyValue (tvb, pinfo, subtree, offset, tag_info);
@@ -8733,7 +8765,7 @@ fWritePropertyRequest(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint
propertyArrayIndex = -1;
while (tvb_reported_length_remaining(tvb, offset) > 0) { /* exit loop if nothing happens inside */
lastoffset = offset;
- fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
/* quit loop if we spot a closing tag */
if (tag_is_closing(tag_info)) {
subtree = tree;
@@ -8748,13 +8780,13 @@ fWritePropertyRequest(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint
offset = fPropertyIdentifier (tvb, pinfo, subtree, offset);
break;
case 2: /* propertyArrayIndex */
- offset = fPropertyArrayIndex (tvb, subtree, offset);
+ offset = fPropertyArrayIndex (tvb, pinfo, subtree, offset);
break;
case 3: /* propertyValue */
offset = fPropertyValue (tvb, pinfo, subtree, offset, tag_info);
break;
case 4: /* Priority (only used for write) */
- offset = fUnsignedTag (tvb, subtree, offset, "Priority: ");
+ offset = fUnsignedTag (tvb, pinfo, subtree, offset, "Priority: ");
break;
default:
return offset;
@@ -8773,7 +8805,7 @@ fWriteAccessSpecification (tvbuff_t *tvb, packet_info *pinfo, proto_tree *subtre
while (tvb_reported_length_remaining(tvb, offset) > 0) { /* exit loop if nothing happens inside */
lastoffset = offset;
- len = fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ len = fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
/* maybe a listOfwriteAccessSpecifications if we spot a closing tag */
if (tag_is_closing(tag_info)) {
offset += len;
@@ -8786,7 +8818,7 @@ fWriteAccessSpecification (tvbuff_t *tvb, packet_info *pinfo, proto_tree *subtre
break;
case 1: /* listOfPropertyValues */
if (tag_is_opening(tag_info)) {
- offset += fTagHeaderTree (tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree (tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
offset = fBACnetPropertyValue (tvb, pinfo, subtree, offset);
break;
}
@@ -8821,7 +8853,7 @@ fPropertyReference (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint o
propertyArrayIndex = -1;
while (tvb_reported_length_remaining(tvb, offset) > 0) { /* exit loop if nothing happens inside */
lastoffset = offset;
- fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
if (tag_is_closing(tag_info)) { /* closing Tag, but not for me */
return offset;
} else if (tag_is_opening(tag_info)) { /* opening Tag, but not for me */
@@ -8832,7 +8864,7 @@ fPropertyReference (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint o
offset = fPropertyIdentifier (tvb, pinfo, tree, offset);
break;
case 1: /* propertyArrayIndex */
- offset = fPropertyArrayIndex (tvb, tree, offset);
+ offset = fPropertyArrayIndex (tvb, pinfo, tree, offset);
if (list != 0) break; /* Continue decoding if this may be a list */
default:
lastoffset = offset; /* Set loop end condition */
@@ -8886,9 +8918,9 @@ fObjectPropertyValue (tvbuff_t *tvb, proto_tree *tree, guint offset)
while ((tvb_reported_length_remaining(tvb, offset) > 0)&&(offset>lastoffset)) { /* exit loop if nothing happens inside */
lastoffset = offset;
- fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
if (tag_is_closing(tag_info)) {
- offset += fTagHeaderTree (tvb, subtree, offset,
+ offset += fTagHeaderTree (tvb, pinfo, subtree, offset,
&tag_no, &tag_info, &lvt);
continue;
}
@@ -8900,13 +8932,13 @@ fObjectPropertyValue (tvbuff_t *tvb, proto_tree *tree, guint offset)
offset = fPropertyIdentifier (tvb, pinfo, subtree, offset);
break;
case 2: /* propertyArrayIndex */
- offset = fUnsignedTag (tvb, subtree, offset, "property Array Index: ");
+ offset = fUnsignedTag (tvb, pinfo, subtree, offset, "property Array Index: ");
break;
case 3: /* Value */
- offset = fPropertyValue (tvb, subtree, offset, tag_info);
+ offset = fPropertyValue (tvb, pinfo, subtree, offset, tag_info);
break;
case 4: /* Priority */
- offset = fUnsignedTag (tvb, subtree, offset, "Priority: ");
+ offset = fUnsignedTag (tvb, pinfo, subtree, offset, "Priority: ");
break;
default:
break;
@@ -8986,7 +9018,7 @@ fSpecialEvent (tvbuff_t *tvb, packet_info *pinfo, proto_tree *subtree, guint off
while (tvb_reported_length_remaining(tvb, offset) > 0) { /* exit loop if nothing happens inside */
lastoffset = offset;
- len = fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ len = fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
/* maybe a SEQUENCE of SpecialEvents if we spot a closing tag */
if (tag_is_closing(tag_info)) {
/* if we find 2 closing tags in succession we need to exit without incrementing the offset again */
@@ -9001,9 +9033,9 @@ fSpecialEvent (tvbuff_t *tvb, packet_info *pinfo, proto_tree *subtree, guint off
switch (tag_no) {
case 0: /* calendarEntry */
if (tag_is_opening(tag_info)) {
- offset += fTagHeaderTree (tvb, subtree, offset, &tag_no, &tag_info, &lvt);
- offset = fCalendarEntry (tvb, subtree, offset);
- offset += fTagHeaderTree (tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree (tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset = fCalendarEntry (tvb, pinfo, subtree, offset);
+ offset += fTagHeaderTree (tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
}
break;
case 1: /* calendarReference */
@@ -9011,15 +9043,15 @@ fSpecialEvent (tvbuff_t *tvb, packet_info *pinfo, proto_tree *subtree, guint off
break;
case 2: /* list of BACnetTimeValue */
if (tag_is_opening(tag_info)) {
- offset += fTagHeaderTree (tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree (tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
offset = fTimeValue (tvb, pinfo, subtree, offset);
- offset += fTagHeaderTree (tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree (tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
break;
}
FAULT;
break;
case 3: /* eventPriority */
- offset = fUnsignedTag (tvb, subtree, offset, "event priority: ");
+ offset = fUnsignedTag (tvb, pinfo, subtree, offset, "event priority: ");
break;
default:
return offset;
@@ -9039,7 +9071,7 @@ fSelectionCriteria (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint o
while (tvb_reported_length_remaining(tvb, offset) > 0) { /* exit loop if nothing happens inside */
lastoffset = offset;
- len = fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ len = fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
/* maybe a listOfSelectionCriteria if we spot a closing tag */
if (tag_is_closing(tag_info)) {
offset += len;
@@ -9051,16 +9083,16 @@ fSelectionCriteria (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint o
offset = fPropertyIdentifier (tvb, pinfo, tree, offset);
break;
case 1: /* propertyArrayIndex */
- offset = fPropertyArrayIndex (tvb, tree, offset);
+ offset = fPropertyArrayIndex (tvb, pinfo, tree, offset);
break;
case 2: /* relationSpecifier */
- offset = fEnumeratedTag (tvb, tree, offset,
+ offset = fEnumeratedTag (tvb, pinfo, tree, offset,
"relation Specifier: ", BACnetRelationSpecifier);
break;
case 3: /* comparisonValue */
- offset += fTagHeaderTree (tvb, tree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree (tvb, pinfo, tree, offset, &tag_no, &tag_info, &lvt);
offset = fAbstractSyntaxNType (tvb, pinfo, tree, offset);
- offset += fTagHeaderTree (tvb, tree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree (tvb, pinfo, tree, offset, &tag_no, &tag_info, &lvt);
break;
default:
return offset;
@@ -9079,7 +9111,7 @@ fObjectSelectionCriteria (tvbuff_t *tvb, packet_info *pinfo, proto_tree *subtree
while (tvb_reported_length_remaining(tvb, offset) > 0) { /* exit loop if nothing happens inside */
lastoffset = offset;
- fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
/* quit loop if we spot a closing tag */
if (tag_is_closing(tag_info)) {
break;
@@ -9087,14 +9119,14 @@ fObjectSelectionCriteria (tvbuff_t *tvb, packet_info *pinfo, proto_tree *subtree
switch (tag_no) {
case 0: /* selectionLogic */
- offset = fEnumeratedTag (tvb, subtree, offset,
+ offset = fEnumeratedTag (tvb, pinfo, subtree, offset,
"selection Logic: ", BACnetSelectionLogic);
break;
case 1: /* listOfSelectionCriteria */
if (tag_is_opening(tag_info)) {
- offset += fTagHeaderTree (tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree (tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
offset = fSelectionCriteria (tvb, pinfo, subtree, offset);
- offset += fTagHeaderTree (tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree (tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
break;
}
FAULT;
@@ -9117,10 +9149,10 @@ fReadPropertyConditionalRequest(tvbuff_t *tvb, packet_info* pinfo, proto_tree *s
while (tvb_reported_length_remaining(tvb, offset) > 0) { /* exit loop if nothing happens inside */
lastoffset = offset;
- fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
if (tag_is_opening(tag_info) && tag_no < 2) {
- offset += fTagHeaderTree (tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree (tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
switch (tag_no) {
case 0: /* objectSelectionCriteria */
offset = fObjectSelectionCriteria (tvb, pinfo, subtree, offset);
@@ -9131,7 +9163,7 @@ fReadPropertyConditionalRequest(tvbuff_t *tvb, packet_info* pinfo, proto_tree *s
default:
return offset;
}
- offset += fTagHeaderTree (tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree (tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
}
if (offset == lastoffset) break; /* nothing happened, exit loop */
}
@@ -9149,7 +9181,7 @@ fReadAccessSpecification (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, g
while (tvb_reported_length_remaining(tvb, offset) > 0) { /* exit loop if nothing happens inside */
lastoffset = offset;
- fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
switch (tag_no) {
case 0: /* objectIdentifier */
offset = fObjectIdentifier (tvb, pinfo, subtree, offset);
@@ -9158,10 +9190,10 @@ fReadAccessSpecification (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, g
if (tag_is_opening(tag_info)) {
tt = proto_tree_add_text(subtree, tvb, offset, 1, "listOfPropertyReferences");
subtree = proto_item_add_subtree(tt, ett_bacapp_value);
- offset += fTagHeaderTree(tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree(tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
offset = fBACnetPropertyReference (tvb, pinfo, subtree, offset, 1);
} else if (tag_is_closing(tag_info)) {
- offset += fTagHeaderTree (tvb, subtree, offset,
+ offset += fTagHeaderTree (tvb, pinfo, subtree, offset,
&tag_no, &tag_info, &lvt);
subtree = tree;
} else {
@@ -9189,7 +9221,7 @@ fReadAccessResult (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint of
while (tvb_reported_length_remaining(tvb, offset) > 0) { /* exit loop if nothing happens inside */
lastoffset = offset;
- len = fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ len = fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
/* maybe a listOfReadAccessResults if we spot a closing tag here */
if (tag_is_closing(tag_info)) {
offset += len;
@@ -9205,7 +9237,7 @@ fReadAccessResult (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint of
if (tag_is_opening(tag_info)) {
tt = proto_tree_add_text(tree, tvb, offset, 1, "listOfResults");
subtree = proto_item_add_subtree(tt, ett_bacapp_value);
- offset += fTagHeaderTree (tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree (tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
break;
}
FAULT;
@@ -9217,7 +9249,7 @@ fReadAccessResult (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint of
if (tag_is_opening(tag_info)) {
tt = proto_tree_add_text(subtree, tvb, offset, 1, "propertyAccessError");
subtree = proto_item_add_subtree(tt, ett_bacapp_value);
- offset += fTagHeaderTree (tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree (tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
/* Error Code follows */
offset = fError(tvb, pinfo, subtree, offset);
break;
@@ -9250,15 +9282,15 @@ fCreateObjectRequest(tvbuff_t *tvb, packet_info *pinfo, proto_tree *subtree, gui
while (tvb_reported_length_remaining(tvb, offset) > 0) { /* exit loop if nothing happens inside */
lastoffset = offset;
- fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
if (tag_no < 2) {
- offset += fTagHeaderTree (tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree (tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
switch (tag_no) {
case 0: /* objectSpecifier */
switch (fTagNo(tvb, offset)) { /* choice of objectType or objectIdentifier */
case 0: /* objectType */
- offset = fEnumeratedTagSplit (tvb, subtree, offset, "Object Type: ", BACnetObjectType, 128);
+ offset = fEnumeratedTagSplit (tvb, pinfo, subtree, offset, "Object Type: ", BACnetObjectType, 128);
break;
case 1: /* objectIdentifier */
offset = fObjectIdentifier (tvb, pinfo, subtree, offset);
@@ -9277,7 +9309,7 @@ fCreateObjectRequest(tvbuff_t *tvb, packet_info *pinfo, proto_tree *subtree, gui
default:
break;
}
- offset += fTagHeaderTree (tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree (tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
}
if (offset == lastoffset) break; /* nothing happened, exit loop */
}
@@ -9302,11 +9334,11 @@ fReadRangeRequest (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint of
if (tvb_reported_length_remaining(tvb, offset) > 0) {
/* optional range choice */
- fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
if (tag_is_opening(tag_info)) {
tt = proto_tree_add_text(subtree, tvb, offset, 1, "%s", val_to_str(tag_no, BACnetReadRangeOptions, "unknown range option"));
subtree = proto_item_add_subtree(tt, ett_bacapp_value);
- offset += fTagHeaderTree (tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree (tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
switch (tag_no) {
case 3: /* range byPosition */
case 6: /* range bySequenceNumber, 2004 spec */
@@ -9315,17 +9347,17 @@ fReadRangeRequest (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint of
break;
case 4: /* range byTime - deprecated in 2004 */
case 7: /* 2004 spec */
- offset = fDateTime(tvb, subtree, offset, "reference Date/Time: ");
+ offset = fDateTime(tvb, pinfo, subtree, offset, "reference Date/Time: ");
offset = fApplicationTypes (tvb, pinfo, subtree, offset, "reference Count: ");
break;
case 5: /* range timeRange - deprecated in 2004 */
- offset = fDateTime(tvb, subtree, offset, "beginning Time: ");
- offset = fDateTime(tvb, subtree, offset, "ending Time: ");
+ offset = fDateTime(tvb, pinfo, subtree, offset, "beginning Time: ");
+ offset = fDateTime(tvb, pinfo, subtree, offset, "ending Time: ");
break;
default:
break;
}
- offset += fTagHeaderTree (tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree (tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
}
}
return offset;
@@ -9345,24 +9377,24 @@ fReadRangeAck (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset
OPTIONAL propertyArrayIndex */
offset = fBACnetObjectPropertyReference(tvb, pinfo, subtree, offset);
/* resultFlags => BACnetResultFlags ::= BIT STRING */
- offset = fBitStringTagVS (tvb, tree, offset,
+ offset = fBitStringTagVS (tvb, pinfo, tree, offset,
"resultFlags: ",
BACnetResultFlags);
/* itemCount */
- offset = fUnsignedTag (tvb, subtree, offset, "item Count: ");
+ offset = fUnsignedTag (tvb, pinfo, subtree, offset, "item Count: ");
/* itemData */
- fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
if (tag_is_opening(tag_info)) {
col_set_writable(pinfo->cinfo, FALSE); /* don't set all infos into INFO column */
tt = proto_tree_add_text(subtree, tvb, offset, 1, "itemData");
subtree = proto_item_add_subtree(tt, ett_bacapp_value);
- offset += fTagHeaderTree (tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree (tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
offset = fAbstractSyntaxNType (tvb, pinfo, subtree, offset);
- offset += fTagHeaderTree (tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree (tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
}
/* firstSequenceNumber - OPTIONAL */
if (tvb_reported_length_remaining(tvb, offset) > 0) {
- offset = fUnsignedTag (tvb, subtree, offset, "first Sequence Number: ");
+ offset = fUnsignedTag (tvb, pinfo, subtree, offset, "first Sequence Number: ");
}
return offset;
@@ -9377,12 +9409,12 @@ fAccessMethod(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
proto_item* tt;
proto_tree* subtree = NULL;
- fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
if (tag_is_opening(tag_info)) {
tt = proto_tree_add_text(tree, tvb, offset, 1, "%s", val_to_str(tag_no, BACnetFileAccessOption, "invalid access method"));
subtree = proto_item_add_subtree(tt, ett_bacapp_value);
- offset += fTagHeaderTree (tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree (tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
offset = fApplicationTypes (tvb, pinfo, subtree, offset, val_to_str(tag_no, BACnetFileStartOption, "invalid option"));
offset = fApplicationTypes (tvb, pinfo, subtree, offset, val_to_str(tag_no, BACnetFileWriteInfo, "unknown option"));
@@ -9396,9 +9428,9 @@ fAccessMethod(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
if ((bacapp_flags & BACAPP_MORE_SEGMENTS) == 0) {
/* More Flag is not set, so we can look for closing tag in this segment */
- fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
if (tag_is_closing(tag_info)) {
- offset += fTagHeaderTree (tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree (tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
}
}
}
@@ -9415,15 +9447,15 @@ fAtomicReadFileRequest(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guin
offset = fObjectIdentifier (tvb, pinfo, tree, offset);
- fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
if (tag_is_opening(tag_info)) {
tt = proto_tree_add_text(subtree, tvb, offset, 1, "%s", val_to_str(tag_no, BACnetFileAccessOption, "unknown access method"));
subtree = proto_item_add_subtree(tt, ett_bacapp_value);
- offset += fTagHeaderTree (tvb, subtree, offset, &tag_no, &tag_info, &lvt);
- offset = fSignedTag (tvb, subtree, offset, val_to_str(tag_no, BACnetFileStartOption, "unknown option"));
- offset = fUnsignedTag (tvb, subtree, offset, val_to_str(tag_no, BACnetFileRequestCount, "unknown option"));
- offset += fTagHeaderTree (tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree (tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset = fSignedTag (tvb, pinfo, subtree, offset, val_to_str(tag_no, BACnetFileStartOption, "unknown option"));
+ offset = fUnsignedTag (tvb, pinfo, subtree, offset, val_to_str(tag_no, BACnetFileRequestCount, "unknown option"));
+ offset += fTagHeaderTree (tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
}
return offset;
}
@@ -9439,10 +9471,10 @@ fAtomicWriteFileRequest(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gui
}
static guint
-fAtomicWriteFileAck (tvbuff_t *tvb, proto_tree *tree, guint offset)
+fAtomicWriteFileAck (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
guint tag_no = fTagNo(tvb, offset);
- return fSignedTag (tvb, tree, offset, val_to_str(tag_no, BACnetFileStartOption, "unknown option"));
+ return fSignedTag (tvb, pinfo, tree, offset, val_to_str(tag_no, BACnetFileStartOption, "unknown option"));
}
static guint
@@ -9526,7 +9558,7 @@ fConfirmedServiceRequest (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, g
offset = fWritePropertyMultipleRequest(tvb, pinfo, tree, offset);
break;
case 17:
- offset = fDeviceCommunicationControlRequest(tvb, tree, offset);
+ offset = fDeviceCommunicationControlRequest(tvb, pinfo, tree, offset);
break;
case 18:
offset = fConfirmedPrivateTransferRequest(tvb, pinfo, tree, offset);
@@ -9535,7 +9567,7 @@ fConfirmedServiceRequest (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, g
offset = fConfirmedTextMessageRequest(tvb, pinfo, tree, offset);
break;
case 20:
- offset = fReinitializeDeviceRequest(tvb, tree, offset);
+ offset = fReinitializeDeviceRequest(tvb, pinfo, tree, offset);
break;
case 21:
offset = fVtOpenRequest(tvb, pinfo, tree, offset);
@@ -9547,7 +9579,7 @@ fConfirmedServiceRequest (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, g
offset = fVtDataRequest (tvb, pinfo, tree, offset);
break;
case 24:
- offset = fAuthenticateRequest (tvb, tree, offset);
+ offset = fAuthenticateRequest (tvb, pinfo, tree, offset);
break;
case 25:
offset = fRequestKeyRequest (tvb, pinfo, tree, offset);
@@ -9587,7 +9619,7 @@ fConfirmedServiceAck (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint
offset = fAtomicReadFileAck (tvb, pinfo, tree, offset);
break;
case 7: /* atomicReadFileAck */
- offset = fAtomicWriteFileAck (tvb, tree, offset);
+ offset = fAtomicWriteFileAck (tvb, pinfo, tree, offset);
break;
case 10: /* createObject */
offset = fCreateObjectAck (tvb, pinfo, tree, offset);
@@ -9608,7 +9640,7 @@ fConfirmedServiceAck (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint
offset = fVtOpenAck (tvb, pinfo, tree, offset);
break;
case 23:
- offset = fVtDataAck (tvb, tree, offset);
+ offset = fVtDataAck (tvb, pinfo, tree, offset);
break;
case 24:
offset = fAuthenticateAck (tvb, pinfo, tree, offset);
@@ -9669,14 +9701,14 @@ fWhoIsRequest (tvbuff_t *tvb, packet_info* pinfo, proto_tree *tree, guint offse
while (tvb_reported_length_remaining(tvb, offset) > 0) { /* exit loop if nothing happens inside */
lastoffset = offset;
- tag_len = fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ tag_len = fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
switch (tag_no) {
case 0:
/* DeviceInstanceRangeLowLimit Optional */
if (col_get_writable(pinfo->cinfo) && fUnsigned32(tvb, offset+tag_len, lvt, &val))
col_append_fstr(pinfo->cinfo, COL_INFO, "%d ", val);
- offset = fDevice_Instance (tvb, tree, offset,
+ offset = fDevice_Instance (tvb, pinfo, tree, offset,
hf_Device_Instance_Range_Low_Limit);
break;
case 1:
@@ -9684,7 +9716,7 @@ fWhoIsRequest (tvbuff_t *tvb, packet_info* pinfo, proto_tree *tree, guint offse
required if DeviceInstanceRangeLowLimit is there */
if (col_get_writable(pinfo->cinfo) && fUnsigned32(tvb, offset+tag_len, lvt, &val))
col_append_fstr(pinfo->cinfo, COL_INFO, "%d ", val);
- offset = fDevice_Instance (tvb, tree, offset,
+ offset = fDevice_Instance (tvb, pinfo, tree, offset,
hf_Device_Instance_Range_High_Limit);
break;
default:
@@ -9721,7 +9753,7 @@ fUnconfirmedServiceRequest (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
offset = fUnconfirmedTextMessageRequest(tvb, pinfo, tree, offset);
break;
case 6: /* timeSynchronization */
- offset = fTimeSynchronizationRequest (tvb, tree, offset);
+ offset = fTimeSynchronizationRequest (tvb, pinfo, tree, offset);
break;
case 7: /* who-Has */
offset = fWhoHas (tvb, pinfo, tree, offset);
@@ -9730,7 +9762,7 @@ fUnconfirmedServiceRequest (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
offset = fWhoIsRequest (tvb, pinfo, tree, offset);
break;
case 9: /* utcTimeSynchronization */
- offset = fUTCTimeSynchronizationRequest (tvb, tree, offset);
+ offset = fUTCTimeSynchronizationRequest (tvb, pinfo, tree, offset);
break;
default:
break;
@@ -9884,9 +9916,9 @@ fContextTaggedError(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint o
guint8 parsed_tag = 0;
guint32 lvt = 0;
- offset += fTagHeaderTree(tvb, tree, offset, &parsed_tag, &tag_info, &lvt);
+ offset += fTagHeaderTree(tvb, pinfo, tree, offset, &parsed_tag, &tag_info, &lvt);
offset = fError(tvb, pinfo, tree, offset);
- return offset + fTagHeaderTree(tvb, tree, offset, &parsed_tag, &tag_info, &lvt);
+ return offset + fTagHeaderTree(tvb, pinfo, tree, offset, &parsed_tag, &tag_info, &lvt);
}
static guint
@@ -9905,7 +9937,7 @@ fConfirmedPrivateTransferError(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tr
while (tvb_reported_length_remaining(tvb, offset) > 0) {
/* exit loop if nothing happens inside */
lastoffset = offset;
- tag_len = fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
+ tag_len = fTagHeader (tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
switch (tag_no) {
case 0: /* errorType */
offset = fContextTaggedError(tvb, pinfo, subtree, offset);
@@ -9920,7 +9952,7 @@ fConfirmedPrivateTransferError(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tr
fUnsigned32(tvb, offset+tag_len, lvt, &service_number);
if (col_get_writable(pinfo->cinfo))
col_append_fstr(pinfo->cinfo, COL_INFO, "SN=%u ", service_number);
- offset = fUnsignedTag (tvb, subtree, offset, "service Number: ");
+ offset = fUnsignedTag (tvb, pinfo, subtree, offset, "service Number: ");
break;
case 3: /* errorParameters */
if (tag_is_opening(tag_info)) {
@@ -9928,10 +9960,10 @@ fConfirmedPrivateTransferError(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tr
"error Parameters");
subtree = proto_item_add_subtree(tt, ett_bacapp_value);
propertyIdentifier = -1;
- offset += fTagHeaderTree(tvb, subtree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree(tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
offset = fAbstractSyntaxNType (tvb, pinfo, subtree, offset);
} else if (tag_is_closing(tag_info)) {
- offset += fTagHeaderTree (tvb, subtree, offset,
+ offset += fTagHeaderTree (tvb, pinfo, subtree, offset,
&tag_no, &tag_info, &lvt);
subtree = tree;
} else {
@@ -9959,7 +9991,7 @@ fCreateObjectError(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint of
offset = fContextTaggedError(tvb, pinfo, tree, offset);
break;
case 1: /* firstFailedElementNumber */
- offset = fUnsignedTag (tvb,tree,offset,"first failed element number: ");
+ offset = fUnsignedTag (tvb,pinfo,tree,offset,"first failed element number: ");
break;
default:
return offset;
@@ -9987,9 +10019,9 @@ fVTCloseError(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
offset = fContextTaggedError(tvb, pinfo, tree,offset);
if (fTagNo(tvb, offset) == 1) {
/* listOfVTSessionIdentifiers [OPTIONAL] */
- offset += fTagHeaderTree(tvb, tree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree(tvb, pinfo, tree, offset, &tag_no, &tag_info, &lvt);
offset = fVtCloseRequest (tvb, pinfo, tree, offset);
- offset += fTagHeaderTree(tvb, tree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree(tvb, pinfo, tree, offset, &tag_no, &tag_info, &lvt);
}
}
/* should report bad packet if initial tag wasn't 0 */
@@ -10011,9 +10043,9 @@ fWritePropertyMultipleError(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
offset = fContextTaggedError(tvb, pinfo, tree, offset);
break;
case 1: /* firstFailedWriteAttempt */
- offset += fTagHeaderTree(tvb, tree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree(tvb, pinfo, tree, offset, &tag_no, &tag_info, &lvt);
offset = fBACnetObjectPropertyReference(tvb, pinfo, tree, offset);
- offset += fTagHeaderTree(tvb, tree, offset, &tag_no, &tag_info, &lvt);
+ offset += fTagHeaderTree(tvb, pinfo, tree, offset, &tag_no, &tag_info, &lvt);
break;
default:
return offset;