Generalize "cb_str_postprocess()" to allow the string to be appended to
authorguy <guy@f5534014-38df-0310-8fa8-9805f1628bb7>
Thu, 30 Jan 2003 08:19:39 +0000 (08:19 +0000)
committerguy <guy@f5534014-38df-0310-8fa8-9805f1628bb7>
Thu, 30 Jan 2003 08:19:39 +0000 (08:19 +0000)
items N levels up from the item being processed, and use that to
decorate the tree as it was decorated before.

git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@7043 f5534014-38df-0310-8fa8-9805f1628bb7

packet-dcerpc-browser.c
packet-dcerpc-lsa-ds.c
packet-dcerpc-lsa.c
packet-dcerpc-netlogon.c
packet-dcerpc-nt.c
packet-dcerpc-nt.h
packet-dcerpc-reg.c
packet-dcerpc-samr.c
packet-dcerpc-spoolss.c
packet-dcerpc-srvsvc.c
packet-dcerpc-tapi.c

index 185fb9569980f7c857ef6ea9e90946d2d23c5719..a6d8c75f778d2708311fbe4f3a086ec98e167dc9 100644 (file)
@@ -2,7 +2,7 @@
  * Routines for DCERPC Browser packet disassembly
  * Copyright 2001, Ronnie Sahlberg
  *
- * $Id: packet-dcerpc-browser.c,v 1.9 2003/01/28 06:39:39 tpot Exp $
+ * $Id: packet-dcerpc-browser.c,v 1.10 2003/01/30 08:19:37 guy Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -251,15 +251,15 @@ dissect_browser_UNKNOWN_00_rqst(tvbuff_t *tvb, int offset,
 {
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                        NDR_POINTER_UNIQUE, "unknown string", 
-                       hf_browser_unknown_string);
+                       hf_browser_unknown_string, 0);
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                        NDR_POINTER_UNIQUE, "unknown string", 
-                        hf_browser_unknown_string);
+                        hf_browser_unknown_string, 0);
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                        NDR_POINTER_UNIQUE, "unknown string", 
-                       hf_browser_unknown_string);
+                       hf_browser_unknown_string, 0);
 
        offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        dissect_browser_TYPE_1, NDR_POINTER_REF,
@@ -273,7 +273,7 @@ dissect_browser_UNKNOWN_00_rqst(tvbuff_t *tvb, int offset,
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                        NDR_POINTER_UNIQUE, "unknown string", 
-                       hf_browser_unknown_string);
+                       hf_browser_unknown_string, 0);
 
        offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        dissect_browser_long_pointer, NDR_POINTER_UNIQUE, 
@@ -317,7 +317,7 @@ dissect_browser_UNKNOWN_01_rqst(tvbuff_t *tvb, int offset,
 {
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                        NDR_POINTER_UNIQUE, "unknown string", 
-                       hf_browser_unknown_string);
+                       hf_browser_unknown_string, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                hf_browser_unknown_long, NULL);
@@ -353,7 +353,7 @@ dissect_browser_UNKNOWN_02_rqst(tvbuff_t *tvb, int offset,
 {
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                        NDR_POINTER_UNIQUE, "unknown string", 
-                       hf_browser_unknown_string);
+                       hf_browser_unknown_string, 0);
 
        offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        dissect_browser_TYPE_1, NDR_POINTER_REF,
@@ -388,7 +388,7 @@ dissect_browser_UNKNOWN_03_rqst(tvbuff_t *tvb, int offset,
 {
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                        NDR_POINTER_UNIQUE, "unknown string", 
-                       hf_browser_unknown_string);
+                       hf_browser_unknown_string, 0);
 
        return offset;
 }
@@ -417,11 +417,11 @@ dissect_browser_UNKNOWN_04_rqst(tvbuff_t *tvb, int offset,
 {
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                        NDR_POINTER_UNIQUE, "unknown string", 
-                       hf_browser_unknown_string);
+                       hf_browser_unknown_string, 0);
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                        NDR_POINTER_REF, "unknown string", 
-                       hf_browser_unknown_string);
+                       hf_browser_unknown_string, 0);
 
        return offset;
 }
@@ -544,7 +544,7 @@ dissect_browser_UNKNOWN_05_rqst(tvbuff_t *tvb, int offset,
 {
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                        NDR_POINTER_UNIQUE, "unknown string", 
-                       hf_browser_unknown_string);
+                       hf_browser_unknown_string, 0);
 
        return offset;
 }
@@ -576,7 +576,7 @@ dissect_browser_UNKNOWN_06_rqst(tvbuff_t *tvb, int offset,
 {
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                        NDR_POINTER_UNIQUE, "unknown string", 
-                       hf_browser_unknown_string);
+                       hf_browser_unknown_string, 0);
 
        return offset;
 }
@@ -604,7 +604,7 @@ dissect_browser_UNKNOWN_07_rqst(tvbuff_t *tvb, int offset,
 {
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                        NDR_POINTER_UNIQUE, "unknown string", 
-                       hf_browser_unknown_string);
+                       hf_browser_unknown_string, 0);
 
        return offset;
 }
@@ -847,7 +847,7 @@ dissect_browser_UNKNOWN_08_rqst(tvbuff_t *tvb, int offset,
 {
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                        NDR_POINTER_UNIQUE, "unknown string", 
-                       hf_browser_unknown_string);
+                       hf_browser_unknown_string, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                hf_browser_unknown_long, NULL);
@@ -889,15 +889,15 @@ dissect_browser_UNKNOWN_09_rqst(tvbuff_t *tvb, int offset,
 {
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                        NDR_POINTER_UNIQUE, "unknown string", 
-                       hf_browser_unknown_string);
+                       hf_browser_unknown_string, 0);
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                        NDR_POINTER_REF, "unknown string", 
-                        hf_browser_unknown_string);
+                        hf_browser_unknown_string, 0);
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                        NDR_POINTER_UNIQUE, "unknown string", 
-                       hf_browser_unknown_string);
+                       hf_browser_unknown_string, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                hf_browser_unknown_long, NULL);
@@ -979,7 +979,7 @@ dissect_browser_UNKNOWN_0a_rqst(tvbuff_t *tvb, int offset,
 {
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                        NDR_POINTER_UNIQUE, "unknown string", 
-                       hf_browser_unknown_string);
+                       hf_browser_unknown_string, 0);
 
        offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        dissect_browser_TYPE_12, NDR_POINTER_REF,
@@ -1023,15 +1023,15 @@ dissect_browser_UNKNOWN_0b_rqst(tvbuff_t *tvb, int offset,
 {
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                        NDR_POINTER_UNIQUE, "unknown string", 
-                       hf_browser_unknown_string);
+                       hf_browser_unknown_string, 0);
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                        NDR_POINTER_UNIQUE, "unknown string", 
-                       hf_browser_unknown_string);
+                       hf_browser_unknown_string, 0);
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                        NDR_POINTER_UNIQUE, "unknown string", 
-                       hf_browser_unknown_string);
+                       hf_browser_unknown_string, 0);
 
        offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        dissect_browser_TYPE_1, NDR_POINTER_REF,
@@ -1045,11 +1045,11 @@ dissect_browser_UNKNOWN_0b_rqst(tvbuff_t *tvb, int offset,
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                        NDR_POINTER_UNIQUE, "unknown string", 
-                       hf_browser_unknown_string);
+                       hf_browser_unknown_string, 0);
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                        NDR_POINTER_UNIQUE, "unknown string", 
-                       hf_browser_unknown_string);
+                       hf_browser_unknown_string, 0);
 
        return offset;
 }
index 74147125f5e2b4e557e6752e9cf5d002d14e0c2a..4f92a7f0378faacbdb6e1b736d5a6727dccf1e7c 100644 (file)
@@ -3,7 +3,7 @@
  * Copyright 2002-2003, Tim Potter <tpot@samba.org>
  * Copyright 2002, Jim McDonough <jmcd@samba.org>
  *
- * $Id: packet-dcerpc-lsa-ds.c,v 1.7 2003/01/28 06:39:39 tpot Exp $
+ * $Id: packet-dcerpc-lsa-ds.c,v 1.8 2003/01/30 08:19:37 guy Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -88,13 +88,13 @@ lsa_ds_dissect_DSROLE_BASIC_INFO(tvbuff_t *tvb, int offset,
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                NDR_POINTER_UNIQUE, "NetBIOS domain name pointer", 
-               hf_lsa_ds_dominfo_netb_name);
+               hf_lsa_ds_dominfo_netb_name, 0);
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                NDR_POINTER_UNIQUE, "DNS domain pointer", 
-               hf_lsa_ds_dominfo_dns_name);
+               hf_lsa_ds_dominfo_dns_name, 0);
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                NDR_POINTER_UNIQUE, "DNS forest name pointer", 
-               hf_lsa_ds_dominfo_forest_name);
+               hf_lsa_ds_dominfo_forest_name, 0);
 
        /* GUID */
        offset = dissect_nt_GUID(tvb, offset, pinfo, tree, drep);
index b34eb63dd5a3cbe098973bb97535697000364271..2574aaa5163fc7feff5c7162a565c6334870d1f4 100644 (file)
@@ -3,7 +3,7 @@
  * Copyright 2001,2003 Tim Potter <tpot@samba.org>
  *  2002  Added LSA command dissectors  Ronnie Sahlberg
  *
- * $Id: packet-dcerpc-lsa.c,v 1.62 2003/01/30 05:38:56 tpot Exp $
+ * $Id: packet-dcerpc-lsa.c,v 1.63 2003/01/30 08:19:38 guy Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -192,7 +192,7 @@ lsa_dissect_pointer_UNICODE_STRING(tvbuff_t *tvb, int offset,
        }
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-                       di->hf_index);
+                       di->hf_index, 0);
        return offset;
 }
 
@@ -611,7 +611,7 @@ lsa_dissect_lsaopenpolicy2_rqst(tvbuff_t *tvb, int offset,
        packet_info *pinfo, proto_tree *tree, char *drep)
 {
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-               NDR_POINTER_UNIQUE, "Server", hf_lsa_server);
+               NDR_POINTER_UNIQUE, "Server", hf_lsa_server, 0);
 
        offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                lsa_dissect_LSA_OBJECT_ATTRIBUTES, NDR_POINTER_REF,
@@ -783,7 +783,7 @@ lsa_dissect_POLICY_PRIMARY_DOMAIN_INFO(tvbuff_t *tvb, int offset,
 
        /* domain */
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_lsa_domain);
+               hf_lsa_domain, 0);
 
        /* sid */
        offset = dissect_ndr_nt_PSID(tvb, offset,
@@ -810,7 +810,7 @@ lsa_dissect_POLICY_ACCOUNT_DOMAIN_INFO(tvbuff_t *tvb, int offset,
 
        /* account */
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_lsa_acct);
+               hf_lsa_acct, 0);
 
        /* sid */
        offset = dissect_ndr_nt_PSID(tvb, offset,
@@ -866,11 +866,11 @@ lsa_dissect_POLICY_REPLICA_SOURCE_INFO(tvbuff_t *tvb, int offset,
 
        /* source */
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_lsa_source);
+               hf_lsa_source, 0);
 
        /* account */
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_lsa_acct);
+               hf_lsa_acct, 0);
 
        proto_item_set_len(item, offset-old_offset);
        return offset;
@@ -1013,15 +1013,15 @@ lsa_dissect_POLICY_DNS_DOMAIN_INFO(tvbuff_t *tvb, int offset,
 
        /* name */
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_lsa_name);
+               hf_lsa_name, 0);
 
        /* domain */
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_lsa_domain);
+               hf_lsa_domain, 0);
 
        /* forest */
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_lsa_forest);
+               hf_lsa_forest, 0);
 
        /* GUID */
        offset = dissect_nt_GUID(tvb, offset,
@@ -1068,7 +1068,7 @@ lsa_dissect_POLICY_INFORMATION(tvbuff_t *tvb, int offset,
                break;
        case 4:
                offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, 
-                       tree, drep, hf_lsa_acct);
+                       tree, drep, hf_lsa_acct, 0);
                break;
        case 5:
                offset = lsa_dissect_POLICY_ACCOUNT_DOMAIN_INFO(
@@ -1208,23 +1208,23 @@ lsa_dissect_lsachangepassword_rqst(tvbuff_t *tvb, int offset,
 {
        /* server */
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_lsa_server);
+               hf_lsa_server, 0);
 
        /* domain */
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_lsa_domain);
+               hf_lsa_domain, 0);
 
        /* account */
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_lsa_acct);
+               hf_lsa_acct, 0);
 
        /* old password */
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_lsa_old_pwd);
+               hf_lsa_old_pwd, 0);
 
        /* new password */
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_lsa_new_pwd);
+               hf_lsa_new_pwd, 0);
 
        return offset;
 }
@@ -1271,7 +1271,7 @@ lsa_dissect_LSA_TRANSLATED_NAME(tvbuff_t *tvb, int offset,
 
        /* name */
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_lsa_name);
+               hf_lsa_name, 0);
 
        /* index */
         offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
@@ -1359,7 +1359,7 @@ lsa_dissect_LSA_TRUST_INFORMATION(tvbuff_t *tvb, int offset,
 
        /* name */
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_lsa_name);
+               hf_lsa_name, 0);
 
        /* sid */
        offset = dissect_ndr_nt_PSID(tvb, offset,
@@ -1445,11 +1445,11 @@ lsa_dissect_LSA_TRUST_INFORMATION_EX(tvbuff_t *tvb, int offset,
 
        /* name */
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_lsa_name);
+               hf_lsa_name, 0);
 
        /* flat name */
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_lsa_flat_name);
+               hf_lsa_flat_name, 0);
 
        /* sid */
        offset = dissect_ndr_nt_PSID(tvb, offset,
@@ -1887,7 +1887,7 @@ lsa_dissect_LSA_PRIVILEGE(tvbuff_t *tvb, int offset,
 
        /* privilege name */
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-                       hf_lsa_privilege_name);
+                       hf_lsa_privilege_name, 0);
 
        /* LUID */
        offset = dissect_nt_LUID(tvb, offset, pinfo, tree, drep);
@@ -2280,7 +2280,7 @@ lsa_dissect_LSA_TRUSTED_DOMAIN(tvbuff_t *tvb, int offset,
 
        /* domain */
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_lsa_domain);
+               hf_lsa_domain, 0);
 
        /* sid */
        offset = dissect_ndr_nt_PSID(tvb, offset,
@@ -2359,7 +2359,7 @@ lsa_dissect_LSA_UNICODE_STRING_item(tvbuff_t *tvb, int offset,
        }
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-                       di->hf_index);
+                       di->hf_index, 0);
 
        return offset;
 }
@@ -2513,7 +2513,7 @@ lsa_dissect_lsacreatesecret_rqst(tvbuff_t *tvb, int offset,
 
        /* [in, ref] LSA_UNICODE_STRING *name */
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_lsa_name);
+               hf_lsa_name, 0);
 
        /* [in] ACCESS_MASK access */
        offset = lsa_dissect_ACCESS_MASK(tvb, offset,
@@ -2607,7 +2607,7 @@ lsa_dissect_TRUSTED_DOMAIN_INFORMATION(tvbuff_t *tvb, int offset,
        switch(level){
        case 1:
                offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-                       hf_lsa_domain);
+                       hf_lsa_domain, 0);
                break;
        case 2:
                offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
@@ -2732,7 +2732,7 @@ lsa_dissect_lsaopensecret_rqst(tvbuff_t *tvb, int offset,
        dissect_ndr_nt_UNICODE_STRING_cb(
                tvb, offset, pinfo, tree, drep, hf_lsa_name,
                cb_str_postprocess, 
-               GINT_TO_POINTER(CB_STR_ITEM | CB_STR_COL_INFO));
+               GINT_TO_POINTER(CB_STR_COL_INFO | 2));
 
        /* [in] ACCESS_MASK access */
        offset = lsa_dissect_ACCESS_MASK(tvb, offset,
@@ -3009,7 +3009,7 @@ lsa_dissect_lsaquerytrusteddomaininfobyname_rqst(tvbuff_t *tvb, int offset,
        /* [in, ref] LSA_UNICODE_STRING *name */
        /* domain */
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_lsa_domain);
+               hf_lsa_domain, 0);
 
        /* [in] TRUSTED_INFORMATION_CLASS level */
         offset = dissect_ndr_uint16 (tvb, offset, pinfo, tree, drep,
@@ -3046,7 +3046,7 @@ lsa_dissect_lsasettrusteddomaininfobyname_rqst(tvbuff_t *tvb, int offset,
        /* [in, ref] LSA_UNICODE_STRING *name */
        /* domain */
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_lsa_domain);
+               hf_lsa_domain, 0);
 
        /* [in] TRUSTED_INFORMATION_CLASS level */
         offset = dissect_ndr_uint16 (tvb, offset, pinfo, tree, drep,
@@ -3101,7 +3101,7 @@ lsa_dissect_lsaopentrusteddomainbyname_rqst(tvbuff_t *tvb, int offset,
        /* [in, ref] LSA_UNICODE_STRING *name */
        /* domain */
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_lsa_domain);
+               hf_lsa_domain, 0);
 
        /* [in] ACCESS_MASK access */
        offset = lsa_dissect_ACCESS_MASK(tvb, offset,
@@ -3398,7 +3398,7 @@ lsa_dissect_lsalookupprivilegedisplayname_rqst(tvbuff_t *tvb, int offset,
 
        /* [in, ref] LSA_UNICODE_STRING *name */
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_lsa_name);
+               hf_lsa_name, 0);
 
        /* [in] USHORT unknown */
        offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep,
@@ -3441,7 +3441,7 @@ lsa_dissect_lsastoreprivatedata_rqst(tvbuff_t *tvb, int offset,
 
        /* [in, ref] LSA_UNICODE_STRING *key */
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_lsa_key);
+               hf_lsa_key, 0);
 
        /* [in, unique] LSA_SECRET **data */
        offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
@@ -3472,7 +3472,7 @@ lsa_dissect_lsaretrieveprivatedata_rqst(tvbuff_t *tvb, int offset,
 
        /* [in, ref] LSA_UNICODE_STRING *key */
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_lsa_key);
+               hf_lsa_key, 0);
 
        /* [in, out, ref] LSA_SECRET **data */
        offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
@@ -3548,7 +3548,7 @@ lsa_dissect_LSA_TRANSLATED_NAME_EX(tvbuff_t *tvb, int offset,
 
        /* name */
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_lsa_name);
+               hf_lsa_name, 0);
 
        /* index */
         offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
index 63982c2de0141c8156ae3d06211d284046db8b5f..a921525fbf70379a0c3fecfb8fa81e8b2c1a8235 100644 (file)
@@ -3,7 +3,7 @@
  * Copyright 2001,2003 Tim Potter <tpot@samba.org>
  *  2002 structure and command dissectors by Ronnie Sahlberg
  *
- * $Id: packet-dcerpc-netlogon.c,v 1.67 2003/01/30 05:38:56 tpot Exp $
+ * $Id: packet-dcerpc-netlogon.c,v 1.68 2003/01/30 08:19:38 guy Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -263,7 +263,7 @@ netlogon_dissect_LOGONSRV_HANDLE(tvbuff_t *tvb, int offset,
 {
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                NDR_POINTER_UNIQUE, "Server Handle", 
-               hf_netlogon_logonsrv_handle);
+               hf_netlogon_logonsrv_handle, 0);
 
        return offset;
 }
@@ -302,7 +302,7 @@ netlogon_dissect_VALIDATION_UAS_INFO(tvbuff_t *tvb, int offset,
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                NDR_POINTER_UNIQUE, "Effective Account", 
-               hf_netlogon_acct_name);
+               hf_netlogon_acct_name, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                hf_netlogon_priv, NULL);
@@ -342,13 +342,13 @@ netlogon_dissect_VALIDATION_UAS_INFO(tvbuff_t *tvb, int offset,
        offset+= 4;
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-               NDR_POINTER_UNIQUE, "Computer", hf_netlogon_computer_name);
+               NDR_POINTER_UNIQUE, "Computer", hf_netlogon_computer_name, 0);
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-               NDR_POINTER_UNIQUE, "Domain", hf_netlogon_domain_name);
+               NDR_POINTER_UNIQUE, "Domain", hf_netlogon_domain_name, 0);
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-               NDR_POINTER_UNIQUE, "Script", hf_netlogon_logon_script);
+               NDR_POINTER_UNIQUE, "Script", hf_netlogon_logon_script, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                hf_netlogon_reserved, NULL);
@@ -372,10 +372,10 @@ netlogon_dissect_netlogonuaslogon_rqst(tvbuff_t *tvb, int offset,
                pinfo, tree, drep);
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-               NDR_POINTER_REF, "Account", hf_netlogon_acct_name);
+               NDR_POINTER_REF, "Account", hf_netlogon_acct_name, 0);
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-               NDR_POINTER_REF, "Workstation", hf_netlogon_workstation);
+               NDR_POINTER_REF, "Workstation", hf_netlogon_workstation, 0);
 
        return offset;
 }
@@ -439,10 +439,10 @@ netlogon_dissect_netlogonuaslogoff_rqst(tvbuff_t *tvb, int offset,
                pinfo, tree, drep);
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-               NDR_POINTER_REF, "Account", hf_netlogon_acct_name);
+               NDR_POINTER_REF, "Account", hf_netlogon_acct_name, 0);
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-               NDR_POINTER_REF, "Workstation", hf_netlogon_workstation);
+               NDR_POINTER_REF, "Workstation", hf_netlogon_workstation, 0);
 
        return offset;
 }
@@ -490,7 +490,7 @@ netlogon_dissect_LOGON_IDENTITY_INFO(tvbuff_t *tvb, int offset,
        }
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_logon_dom);
+               hf_netlogon_logon_dom, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                hf_netlogon_param_ctrl, NULL);
@@ -499,10 +499,10 @@ netlogon_dissect_LOGON_IDENTITY_INFO(tvbuff_t *tvb, int offset,
                hf_netlogon_logon_id, NULL);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_acct_name);
+               hf_netlogon_acct_name, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_workstation);
+               hf_netlogon_workstation, 0);
 
 #ifdef REMOVED
        /* NetMon does not recognize these bytes. Ill comment them out until someone complains */
@@ -911,22 +911,22 @@ netlogon_dissect_VALIDATION_SAM_INFO(tvbuff_t *tvb, int offset,
                hf_netlogon_pwd_must_change_time);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_acct_name);
+               hf_netlogon_acct_name, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_full_name);
+               hf_netlogon_full_name, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_logon_script);
+               hf_netlogon_logon_script, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_profile_path);
+               hf_netlogon_profile_path, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_home_dir);
+               hf_netlogon_home_dir, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_dir_drive);
+               hf_netlogon_dir_drive, 0);
 
        offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep,
                hf_netlogon_logon_count16, NULL);
@@ -954,10 +954,10 @@ netlogon_dissect_VALIDATION_SAM_INFO(tvbuff_t *tvb, int offset,
                pinfo, tree, drep);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_logon_srv);
+               hf_netlogon_logon_srv, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_logon_dom);
+               hf_netlogon_logon_dom, 0);
 
        offset = dissect_ndr_nt_PSID(tvb, offset,
                pinfo, tree, drep);
@@ -1028,22 +1028,22 @@ netlogon_dissect_VALIDATION_SAM_INFO2(tvbuff_t *tvb, int offset,
                hf_netlogon_pwd_must_change_time);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_acct_name);
+               hf_netlogon_acct_name, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_full_name);
+               hf_netlogon_full_name, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_logon_script);
+               hf_netlogon_logon_script, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_profile_path);
+               hf_netlogon_profile_path, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_home_dir);
+               hf_netlogon_home_dir, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_dir_drive);
+               hf_netlogon_dir_drive, 0);
 
        offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep,
                hf_netlogon_logon_count16, NULL);
@@ -1071,10 +1071,10 @@ netlogon_dissect_VALIDATION_SAM_INFO2(tvbuff_t *tvb, int offset,
                pinfo, tree, drep);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_logon_srv);
+               hf_netlogon_logon_srv, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_logon_dom);
+               hf_netlogon_logon_dom, 0);
 
        offset = dissect_ndr_nt_PSID(tvb, offset,
                pinfo, tree, drep);
@@ -1176,13 +1176,13 @@ netlogon_dissect_VALIDATION_PAC_INFO(tvbuff_t *tvb, int offset,
                netlogon_dissect_PAC, NDR_POINTER_UNIQUE, "PAC:", -1);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_logon_dom);
+               hf_netlogon_logon_dom, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_logon_srv);
+               hf_netlogon_logon_srv, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_principal);
+               hf_netlogon_principal, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                hf_netlogon_auth_size, NULL);
@@ -1199,16 +1199,16 @@ netlogon_dissect_VALIDATION_PAC_INFO(tvbuff_t *tvb, int offset,
        }
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_dummy);
+               hf_netlogon_dummy, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_dummy);
+               hf_netlogon_dummy, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_dummy);
+               hf_netlogon_dummy, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_dummy);
+               hf_netlogon_dummy, 0);
 
        return offset;
 }
@@ -1282,7 +1282,7 @@ netlogon_dissect_netlogonsamlogon_rqst(tvbuff_t *tvb, int offset,
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                NDR_POINTER_UNIQUE, "Computer Name", 
-               hf_netlogon_computer_name);
+               hf_netlogon_computer_name, 0);
 
        offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                netlogon_dissect_AUTHENTICATOR, NDR_POINTER_UNIQUE,
@@ -1346,7 +1346,7 @@ netlogon_dissect_netlogonsamlogoff_rqst(tvbuff_t *tvb, int offset,
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                NDR_POINTER_UNIQUE, "Computer Name", 
-               hf_netlogon_computer_name);
+               hf_netlogon_computer_name, 0);
 
        offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                netlogon_dissect_AUTHENTICATOR, NDR_POINTER_UNIQUE,
@@ -1401,7 +1401,7 @@ netlogon_dissect_netserverreqchallenge_rqst(tvbuff_t *tvb, int offset,
                dissect_ndr_nt_UNICODE_STRING_str, NDR_POINTER_REF, 
                "Computer Name", hf_netlogon_computer_name, 
                cb_str_postprocess, 
-               GINT_TO_POINTER(CB_STR_ITEM | CB_STR_COL_INFO));
+               GINT_TO_POINTER(CB_STR_COL_INFO | 1));
 
        offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                netlogon_dissect_CREDENTIAL, NDR_POINTER_REF,
@@ -1454,13 +1454,13 @@ netlogon_dissect_netserverauthenticate_rqst(tvbuff_t *tvb, int offset,
                pinfo, tree, drep);
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-               NDR_POINTER_REF, "User Name", hf_netlogon_acct_name);
+               NDR_POINTER_REF, "User Name", hf_netlogon_acct_name, 0);
 
        offset = netlogon_dissect_NETLOGON_SECURE_CHANNEL_TYPE(tvb, offset,
                pinfo, tree, drep);
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-               NDR_POINTER_REF, "Computer Name", hf_netlogon_computer_name);
+               NDR_POINTER_REF, "Computer Name", hf_netlogon_computer_name, 0);
 
        offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                netlogon_dissect_CREDENTIAL, NDR_POINTER_REF,
@@ -1528,13 +1528,13 @@ netlogon_dissect_netserverpasswordset_rqst(tvbuff_t *tvb, int offset,
                pinfo, tree, drep);
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-               NDR_POINTER_REF, "User Name", hf_netlogon_acct_name);
+               NDR_POINTER_REF, "User Name", hf_netlogon_acct_name, 0);
 
        offset = netlogon_dissect_NETLOGON_SECURE_CHANNEL_TYPE(tvb, offset,
                pinfo, tree, drep);
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-               NDR_POINTER_REF, "Computer Name", hf_netlogon_computer_name);
+               NDR_POINTER_REF, "Computer Name", hf_netlogon_computer_name, 0);
 
        offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                netlogon_dissect_AUTHENTICATOR, NDR_POINTER_REF,
@@ -1580,19 +1580,19 @@ netlogon_dissect_DELTA_DELETE_USER(tvbuff_t *tvb, int offset,
                        char *drep)
 {
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-               NDR_POINTER_UNIQUE, "Account Name", hf_netlogon_acct_name);
+               NDR_POINTER_UNIQUE, "Account Name", hf_netlogon_acct_name, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_dummy);
+               hf_netlogon_dummy, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_dummy);
+               hf_netlogon_dummy, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_dummy);
+               hf_netlogon_dummy, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_dummy);
+               hf_netlogon_dummy, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                hf_netlogon_reserved, NULL);
@@ -1705,10 +1705,10 @@ netlogon_dissect_DELTA_USER(tvbuff_t *tvb, int offset,
                        char *drep)
 {
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_acct_name);
+               hf_netlogon_acct_name, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_full_name);
+               hf_netlogon_full_name, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                hf_netlogon_user_rid, NULL);
@@ -1717,19 +1717,19 @@ netlogon_dissect_DELTA_USER(tvbuff_t *tvb, int offset,
                hf_netlogon_group_rid, NULL);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_home_dir);
+               hf_netlogon_home_dir, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_dir_drive);
+               hf_netlogon_dir_drive, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_logon_script);
+               hf_netlogon_logon_script, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_acct_desc);
+               hf_netlogon_acct_desc, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_workstations);
+               hf_netlogon_workstations, 0);
 
        offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep,
                hf_netlogon_logon_time);
@@ -1769,10 +1769,10 @@ netlogon_dissect_DELTA_USER(tvbuff_t *tvb, int offset,
                hf_netlogon_pwd_expired, NULL);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_comment);
+               hf_netlogon_comment, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_parameters);
+               hf_netlogon_parameters, 0);
 
        offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep,
                hf_netlogon_country, NULL);
@@ -1790,16 +1790,16 @@ netlogon_dissect_DELTA_USER(tvbuff_t *tvb, int offset,
                pinfo, tree, drep);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_dummy);
+               hf_netlogon_dummy, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_dummy);
+               hf_netlogon_dummy, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_dummy);
+               hf_netlogon_dummy, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_dummy);
+               hf_netlogon_dummy, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                hf_netlogon_reserved, NULL);
@@ -1846,10 +1846,10 @@ netlogon_dissect_DELTA_DOMAIN(tvbuff_t *tvb, int offset,
                        char *drep)
 {
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_domain_name);
+               hf_netlogon_domain_name, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_oem_info);
+               hf_netlogon_oem_info, 0);
 
        offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep,
                hf_netlogon_kickoff_time);
@@ -1879,16 +1879,16 @@ netlogon_dissect_DELTA_DOMAIN(tvbuff_t *tvb, int offset,
                pinfo, tree, drep);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_dummy);
+               hf_netlogon_dummy, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_dummy);
+               hf_netlogon_dummy, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_dummy);
+               hf_netlogon_dummy, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_dummy);
+               hf_netlogon_dummy, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                hf_netlogon_reserved, NULL);
@@ -1929,13 +1929,13 @@ netlogon_dissect_DELTA_GROUP(tvbuff_t *tvb, int offset,
                        char *drep)
 {
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_group_name);
+               hf_netlogon_group_name, 0);
 
        offset = netlogon_dissect_GROUP_MEMBERSHIP(tvb, offset,
                pinfo, tree, drep);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_group_desc);
+               hf_netlogon_group_desc, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                hf_netlogon_security_information, NULL);
@@ -1944,16 +1944,16 @@ netlogon_dissect_DELTA_GROUP(tvbuff_t *tvb, int offset,
                pinfo, tree, drep);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_dummy);
+               hf_netlogon_dummy, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_dummy);
+               hf_netlogon_dummy, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_dummy);
+               hf_netlogon_dummy, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_dummy);
+               hf_netlogon_dummy, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                hf_netlogon_reserved, NULL);
@@ -1995,22 +1995,22 @@ netlogon_dissect_DELTA_RENAME(tvbuff_t *tvb, int offset,
        di=pinfo->private_data;
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               di->hf_index);
+               di->hf_index, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               di->hf_index);
+               di->hf_index, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_dummy);
+               hf_netlogon_dummy, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_dummy);
+               hf_netlogon_dummy, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_dummy);
+               hf_netlogon_dummy, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_dummy);
+               hf_netlogon_dummy, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                hf_netlogon_reserved, NULL);
@@ -2137,7 +2137,7 @@ netlogon_dissect_DELTA_ALIAS(tvbuff_t *tvb, int offset,
                        char *drep)
 {
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_alias_name);
+               hf_netlogon_alias_name, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                hf_netlogon_alias_rid, NULL);
@@ -2149,16 +2149,16 @@ netlogon_dissect_DELTA_ALIAS(tvbuff_t *tvb, int offset,
                pinfo, tree, drep);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_dummy);
+               hf_netlogon_dummy, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_dummy);
+               hf_netlogon_dummy, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_dummy);
+               hf_netlogon_dummy, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_dummy);
+               hf_netlogon_dummy, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                hf_netlogon_reserved, NULL);
@@ -2325,7 +2325,7 @@ netlogon_dissect_DELTA_POLICY(tvbuff_t *tvb, int offset,
                "Event Audit Options:", -1);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_domain_name);
+               hf_netlogon_domain_name, 0);
 
        offset = dissect_ndr_nt_PSID(tvb, offset,
                pinfo, tree, drep);
@@ -2346,16 +2346,16 @@ netlogon_dissect_DELTA_POLICY(tvbuff_t *tvb, int offset,
                pinfo, tree, drep);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_dummy);
+               hf_netlogon_dummy, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_dummy);
+               hf_netlogon_dummy, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_dummy);
+               hf_netlogon_dummy, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_dummy);
+               hf_netlogon_dummy, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                hf_netlogon_reserved, NULL);
@@ -2379,7 +2379,7 @@ netlogon_dissect_CONTROLLER(tvbuff_t *tvb, int offset,
                        char *drep)
 {
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_dc_name);
+               hf_netlogon_dc_name, 0);
 
        return offset;
 }
@@ -2419,7 +2419,7 @@ netlogon_dissect_DELTA_TRUSTED_DOMAINS(tvbuff_t *tvb, int offset,
                        char *drep)
 {
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_domain_name);
+               hf_netlogon_domain_name, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                hf_netlogon_num_controllers, NULL);
@@ -2435,16 +2435,16 @@ netlogon_dissect_DELTA_TRUSTED_DOMAINS(tvbuff_t *tvb, int offset,
                pinfo, tree, drep);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_dummy);
+               hf_netlogon_dummy, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_dummy);
+               hf_netlogon_dummy, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_dummy);
+               hf_netlogon_dummy, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_dummy);
+               hf_netlogon_dummy, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                hf_netlogon_reserved, NULL);
@@ -2490,7 +2490,7 @@ netlogon_dissect_PRIV_NAME(tvbuff_t *tvb, int offset,
                        char *drep)
 {
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_privilege_name);
+               hf_netlogon_privilege_name, 0);
 
        return offset;
 }
@@ -2559,16 +2559,16 @@ netlogon_dissect_DELTA_ACCOUNTS(tvbuff_t *tvb, int offset,
                pinfo, tree, drep);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_dummy);
+               hf_netlogon_dummy, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_dummy);
+               hf_netlogon_dummy, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_dummy);
+               hf_netlogon_dummy, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_dummy);
+               hf_netlogon_dummy, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                hf_netlogon_reserved, NULL);
@@ -2696,16 +2696,16 @@ netlogon_dissect_DELTA_SECRET(tvbuff_t *tvb, int offset,
                pinfo, tree, drep);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_dummy);
+               hf_netlogon_dummy, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_dummy);
+               hf_netlogon_dummy, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_dummy);
+               hf_netlogon_dummy, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_dummy);
+               hf_netlogon_dummy, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                hf_netlogon_reserved, NULL);
@@ -3021,12 +3021,12 @@ netlogon_dissect_DELTA_ID_UNION(tvbuff_t *tvb, int offset,
        case 18:
                offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, 
                        tree, drep, NDR_POINTER_UNIQUE, "unknown", 
-                       hf_netlogon_unknown_string);
+                       hf_netlogon_unknown_string, 0);
                break;
        case 19:
                offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, 
                        tree, drep, NDR_POINTER_UNIQUE, "unknown", 
-                       hf_netlogon_unknown_string);
+                       hf_netlogon_unknown_string, 0);
                break;
        case 20:
                offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
@@ -3127,10 +3127,10 @@ netlogon_dissect_netsamdeltas_rqst(tvbuff_t *tvb, int offset,
        packet_info *pinfo, proto_tree *tree, char *drep)
 {
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-               NDR_POINTER_REF, "Server Handle", hf_netlogon_logonsrv_handle);
+               NDR_POINTER_REF, "Server Handle", hf_netlogon_logonsrv_handle, 0);
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-               NDR_POINTER_REF, "Computer Name", hf_netlogon_computer_name);
+               NDR_POINTER_REF, "Computer Name", hf_netlogon_computer_name, 0);
 
        offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                netlogon_dissect_AUTHENTICATOR, NDR_POINTER_REF,
@@ -3192,10 +3192,10 @@ netlogon_dissect_netlogondatabasesync_rqst(tvbuff_t *tvb, int offset,
        packet_info *pinfo, proto_tree *tree, char *drep)
 {
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-               NDR_POINTER_REF, "Server Handle", hf_netlogon_logonsrv_handle);
+               NDR_POINTER_REF, "Server Handle", hf_netlogon_logonsrv_handle, 0);
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-               NDR_POINTER_REF, "Computer Name", hf_netlogon_computer_name);
+               NDR_POINTER_REF, "Computer Name", hf_netlogon_computer_name, 0);
 
        offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                netlogon_dissect_AUTHENTICATOR, NDR_POINTER_REF,
@@ -3317,7 +3317,7 @@ netlogon_dissect_netlogonaccountdeltas_rqst(tvbuff_t *tvb, int offset,
                pinfo, tree, drep);
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-               NDR_POINTER_REF, "Computer Name", hf_netlogon_computer_name);
+               NDR_POINTER_REF, "Computer Name", hf_netlogon_computer_name, 0);
 
        offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                netlogon_dissect_AUTHENTICATOR, NDR_POINTER_REF,
@@ -3395,7 +3395,7 @@ netlogon_dissect_netlogonaccountsync_rqst(tvbuff_t *tvb, int offset,
                pinfo, tree, drep);
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-               NDR_POINTER_REF, "Computer Name", hf_netlogon_computer_name);
+               NDR_POINTER_REF, "Computer Name", hf_netlogon_computer_name, 0);
 
        offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                netlogon_dissect_AUTHENTICATOR, NDR_POINTER_REF,
@@ -3460,10 +3460,10 @@ netlogon_dissect_netlogongetdcname_rqst(tvbuff_t *tvb, int offset,
        packet_info *pinfo, proto_tree *tree, char *drep)
 {
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-               NDR_POINTER_REF, "Server Handle", hf_netlogon_logonsrv_handle);
+               NDR_POINTER_REF, "Server Handle", hf_netlogon_logonsrv_handle, 0);
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-               NDR_POINTER_UNIQUE, "Domain", hf_netlogon_domain_name);
+               NDR_POINTER_UNIQUE, "Domain", hf_netlogon_domain_name, 0);
 
        return offset;
 }
@@ -3472,7 +3472,7 @@ netlogon_dissect_netlogongetdcname_reply(tvbuff_t *tvb, int offset,
        packet_info *pinfo, proto_tree *tree, char *drep)
 {
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-               NDR_POINTER_UNIQUE, "Domain", hf_netlogon_dc_name);
+               NDR_POINTER_UNIQUE, "Domain", hf_netlogon_dc_name, 0);
 
        offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep,
                                  hf_netlogon_rc, NULL);
@@ -3524,7 +3524,7 @@ netlogon_dissect_NETLOGON_INFO_2(tvbuff_t *tvb, int offset,
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                NDR_POINTER_UNIQUE, "Trusted DC Name", 
-               hf_netlogon_trusted_dc_name);
+               hf_netlogon_trusted_dc_name, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                hf_netlogon_tc_connection_status, NULL);
@@ -3665,10 +3665,10 @@ netlogon_dissect_netlogongetanydcname_rqst(tvbuff_t *tvb, int offset,
 {
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                NDR_POINTER_UNIQUE, "Server Handle", 
-               hf_netlogon_logonsrv_handle);
+               hf_netlogon_logonsrv_handle, 0);
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-               NDR_POINTER_UNIQUE, "Domain", hf_netlogon_domain_name);
+               NDR_POINTER_UNIQUE, "Domain", hf_netlogon_domain_name, 0);
 
        return offset;
 }
@@ -3677,7 +3677,7 @@ netlogon_dissect_netlogongetanydcname_reply(tvbuff_t *tvb, int offset,
        packet_info *pinfo, proto_tree *tree, char *drep)
 {
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-               NDR_POINTER_UNIQUE, "Domain", hf_netlogon_dc_name);
+               NDR_POINTER_UNIQUE, "Domain", hf_netlogon_dc_name, 0);
 
        offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep,
                                  hf_netlogon_rc, NULL);
@@ -3716,12 +3716,12 @@ netlogon_dissect_CONTROL_DATA_INFORMATION(tvbuff_t *tvb, int offset,
        case 5:
                offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, 
                        tree, drep, NDR_POINTER_UNIQUE, "unknown", 
-                       hf_netlogon_unknown_string);
+                       hf_netlogon_unknown_string, 0);
                break;
        case 6:
                offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, 
                        tree, drep, NDR_POINTER_UNIQUE, "unknown", 
-                       hf_netlogon_unknown_string);
+                       hf_netlogon_unknown_string, 0);
                break;
        case 0xfffe:
                offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
@@ -3730,7 +3730,7 @@ netlogon_dissect_CONTROL_DATA_INFORMATION(tvbuff_t *tvb, int offset,
        case 8:
                offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, 
                        tree, drep, NDR_POINTER_UNIQUE, "unknown", 
-                       hf_netlogon_unknown_string);
+                       hf_netlogon_unknown_string, 0);
                break;
        }
 
@@ -3801,13 +3801,13 @@ netlogon_dissect_netserverauthenticate2_rqst(tvbuff_t *tvb, int offset,
                pinfo, tree, drep);
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-               NDR_POINTER_REF, "User Name", hf_netlogon_acct_name);
+               NDR_POINTER_REF, "User Name", hf_netlogon_acct_name, 0);
 
        offset = netlogon_dissect_NETLOGON_SECURE_CHANNEL_TYPE(tvb, offset,
                pinfo, tree, drep);
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-               NDR_POINTER_REF, "Computer Name", hf_netlogon_computer_name);
+               NDR_POINTER_REF, "Computer Name", hf_netlogon_computer_name, 0);
 
        offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                netlogon_dissect_CREDENTIAL, NDR_POINTER_REF,
@@ -3855,10 +3855,10 @@ netlogon_dissect_netdatabasesync2_rqst(tvbuff_t *tvb, int offset,
        packet_info *pinfo, proto_tree *tree, char *drep)
 {
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-               NDR_POINTER_REF, "Server Handle", hf_netlogon_logonsrv_handle);
+               NDR_POINTER_REF, "Server Handle", hf_netlogon_logonsrv_handle, 0);
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-               NDR_POINTER_REF, "Computer Name", hf_netlogon_computer_name);
+               NDR_POINTER_REF, "Computer Name", hf_netlogon_computer_name, 0);
 
        offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                netlogon_dissect_AUTHENTICATOR, NDR_POINTER_REF,
@@ -3921,10 +3921,10 @@ netlogon_dissect_netlogondatabaseredo_rqst(tvbuff_t *tvb, int offset,
        packet_info *pinfo, proto_tree *tree, char *drep)
 {
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-               NDR_POINTER_REF, "Server Handle", hf_netlogon_logonsrv_handle);
+               NDR_POINTER_REF, "Server Handle", hf_netlogon_logonsrv_handle, 0);
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-               NDR_POINTER_REF, "Computer Name", hf_netlogon_computer_name);
+               NDR_POINTER_REF, "Computer Name", hf_netlogon_computer_name, 0);
 
        offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                netlogon_dissect_AUTHENTICATOR, NDR_POINTER_REF,
@@ -4506,10 +4506,10 @@ netlogon_dissect_DOMAIN_CONTROLLER_INFO(tvbuff_t *tvb, int offset,
        }
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-               NDR_POINTER_UNIQUE, "DC Name", hf_netlogon_dc_name);
+               NDR_POINTER_UNIQUE, "DC Name", hf_netlogon_dc_name, 0);
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-               NDR_POINTER_UNIQUE, "DC Address", hf_netlogon_dc_address);
+               NDR_POINTER_UNIQUE, "DC Address", hf_netlogon_dc_address, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                hf_netlogon_dc_address_type, NULL);
@@ -4518,19 +4518,19 @@ netlogon_dissect_DOMAIN_CONTROLLER_INFO(tvbuff_t *tvb, int offset,
                pinfo, tree, drep);
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-               NDR_POINTER_UNIQUE, "Logon Domain", hf_netlogon_logon_dom);
+               NDR_POINTER_UNIQUE, "Logon Domain", hf_netlogon_logon_dom, 0);
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-               NDR_POINTER_UNIQUE, "DNS Forest", hf_netlogon_dns_forest_name);
+               NDR_POINTER_UNIQUE, "DNS Forest", hf_netlogon_dns_forest_name, 0);
 
        offset = netlogon_dissect_DC_FLAGS(tvb, offset, pinfo, tree, drep);
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-               NDR_POINTER_UNIQUE, "DC Site", hf_netlogon_dc_site_name);
+               NDR_POINTER_UNIQUE, "DC Site", hf_netlogon_dc_site_name, 0);
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                NDR_POINTER_UNIQUE, "Client Site", 
-               hf_netlogon_client_site_name);
+               hf_netlogon_client_site_name, 0);
 
        proto_item_set_len(item, offset-old_offset);
        return offset;
@@ -4604,16 +4604,16 @@ netlogon_dissect_DOMAIN_TRUST_INFO(tvbuff_t *tvb, int offset,
 
        /* Guesses at best. */
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_unknown_string);
+               hf_netlogon_unknown_string, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_unknown_string);
+               hf_netlogon_unknown_string, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_unknown_string);
+               hf_netlogon_unknown_string, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_unknown_string);
+               hf_netlogon_unknown_string, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                hf_netlogon_unknown_long, NULL);
@@ -4652,35 +4652,35 @@ netlogon_dissect_DOMAIN_QUERY_1(tvbuff_t *tvb, int offset,
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                NDR_POINTER_UNIQUE, "Workstation FQDN", 
-               hf_netlogon_workstation_fqdn);
+               hf_netlogon_workstation_fqdn, 0);
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                NDR_POINTER_UNIQUE, "Workstation Site", 
-               hf_netlogon_workstation_site_name);
+               hf_netlogon_workstation_site_name, 0);
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-               NDR_POINTER_UNIQUE, "unknown", hf_netlogon_unknown_string);
+               NDR_POINTER_UNIQUE, "unknown", hf_netlogon_unknown_string, 0);
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-               NDR_POINTER_UNIQUE, "unknown", hf_netlogon_unknown_string);
+               NDR_POINTER_UNIQUE, "unknown", hf_netlogon_unknown_string, 0);
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-               NDR_POINTER_UNIQUE, "unknown", hf_netlogon_unknown_string);
+               NDR_POINTER_UNIQUE, "unknown", hf_netlogon_unknown_string, 0);
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-               NDR_POINTER_UNIQUE, "unknown", hf_netlogon_unknown_string);
+               NDR_POINTER_UNIQUE, "unknown", hf_netlogon_unknown_string, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_unknown_string);
+               hf_netlogon_unknown_string, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_workstation_os);
+               hf_netlogon_workstation_os, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_unknown_string);
+               hf_netlogon_unknown_string, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_unknown_string);
+               hf_netlogon_unknown_string, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                hf_netlogon_unknown_long, NULL);
@@ -4719,16 +4719,16 @@ netlogon_dissect_DOMAIN_INFO_1(tvbuff_t *tvb, int offset,
                "DOMAIN_TRUST_ARRAY:", -1);
  
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_dns_domain_name);
+               hf_netlogon_dns_domain_name, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_unknown_string);
+               hf_netlogon_unknown_string, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_unknown_string);
+               hf_netlogon_unknown_string, 0);
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-               hf_netlogon_unknown_string);
+               hf_netlogon_unknown_string, 0);
 
        /* These four integers appear to mirror the last four in the query. */
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
@@ -4875,12 +4875,12 @@ netlogon_dissect_DS_DOMAIN_TRUSTS(tvbuff_t *tvb, int offset,
        /* name */
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                NDR_POINTER_UNIQUE, "NetBIOS Name", 
-               hf_netlogon_downlevel_domain_name);
+               hf_netlogon_downlevel_domain_name, 0);
 
        /* domain */
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                NDR_POINTER_UNIQUE, "DNS Domain Name", 
-               hf_netlogon_dns_domain_name);
+               hf_netlogon_dns_domain_name, 0);
 
        offset = netlogon_dissect_DOMAIN_TRUST_FLAGS(tvb, offset, pinfo, tree, drep);
 
@@ -5091,7 +5091,7 @@ netlogon_dissect_dsrgetdcname2_rqst(tvbuff_t *tvb, int offset,
                pinfo, tree, drep);
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-               NDR_POINTER_UNIQUE, "Domain", hf_netlogon_logon_dom);
+               NDR_POINTER_UNIQUE, "Domain", hf_netlogon_logon_dom, 0);
 
        offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                dissect_nt_GUID, NDR_POINTER_UNIQUE,
@@ -5131,7 +5131,7 @@ netlogon_dissect_function_15_rqst(tvbuff_t *tvb, int offset,
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                NDR_POINTER_UNIQUE, "unknown string", 
-               hf_netlogon_unknown_string);
+               hf_netlogon_unknown_string, 0);
 
        offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                netlogon_dissect_AUTHENTICATOR, NDR_POINTER_REF,
@@ -5202,7 +5202,7 @@ netlogon_dissect_function_17_rqst(tvbuff_t *tvb, int offset,
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                NDR_POINTER_UNIQUE, "unknown string", 
-               hf_netlogon_unknown_string);
+               hf_netlogon_unknown_string, 0);
 
        return offset;
 }
@@ -5279,7 +5279,7 @@ netlogon_dissect_function_19_rqst(tvbuff_t *tvb, int offset,
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                NDR_POINTER_UNIQUE, "unknown string", 
-               hf_netlogon_unknown_string);
+               hf_netlogon_unknown_string, 0);
 
        offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                netlogon_dissect_BYTE_array, NDR_POINTER_UNIQUE,
@@ -5314,13 +5314,13 @@ netlogon_dissect_netserverauthenticate3_rqst(tvbuff_t *tvb, int offset,
                pinfo, tree, drep);
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-               NDR_POINTER_REF, "Acct Name", hf_netlogon_acct_name);
+               NDR_POINTER_REF, "Acct Name", hf_netlogon_acct_name, 0);
 
        offset = netlogon_dissect_NETLOGON_SECURE_CHANNEL_TYPE(tvb, offset,
                pinfo, tree, drep);
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-               NDR_POINTER_REF, "Computer Name", hf_netlogon_computer_name);
+               NDR_POINTER_REF, "Computer Name", hf_netlogon_computer_name, 0);
 
        offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                netlogon_dissect_CREDENTIAL, NDR_POINTER_REF,
@@ -5362,14 +5362,14 @@ netlogon_dissect_dsrgetdcname_rqst(tvbuff_t *tvb, int offset,
                pinfo, tree, drep);
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-               NDR_POINTER_UNIQUE, "Domain", hf_netlogon_logon_dom);
+               NDR_POINTER_UNIQUE, "Domain", hf_netlogon_logon_dom, 0);
 
        offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                dissect_nt_GUID, NDR_POINTER_UNIQUE,
                "GUID pointer: domain_guid", -1);
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-               NDR_POINTER_UNIQUE, "Site Name", hf_netlogon_site_name);
+               NDR_POINTER_UNIQUE, "Site Name", hf_netlogon_site_name, 0);
 
        offset = netlogon_dissect_GET_DCNAME_REQUEST_FLAGS(tvb, offset, pinfo, tree, drep);
 
@@ -5422,11 +5422,11 @@ netlogon_dissect_netrlogongetdomaininfo_rqst(tvbuff_t *tvb, int offset,
 {
        /* Unlike the other NETLOGON RPCs, this is not a unique pointer. */
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-               NDR_POINTER_REF, "Server Handle", hf_netlogon_computer_name);
+               NDR_POINTER_REF, "Server Handle", hf_netlogon_computer_name, 0);
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                NDR_POINTER_UNIQUE, "Computer Name", 
-               hf_netlogon_computer_name);
+               hf_netlogon_computer_name, 0);
 
        offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                netlogon_dissect_AUTHENTICATOR, NDR_POINTER_REF,
@@ -5474,14 +5474,14 @@ netlogon_dissect_function_1e_rqst(tvbuff_t *tvb, int offset,
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                NDR_POINTER_UNIQUE, "unknown string", 
-               hf_netlogon_unknown_string);
+               hf_netlogon_unknown_string, 0);
 
        offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep,
                hf_netlogon_unknown_short, NULL);
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                NDR_POINTER_UNIQUE, "unknown string", 
-               hf_netlogon_unknown_string);
+               hf_netlogon_unknown_string, 0);
 
        offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                netlogon_dissect_AUTHENTICATOR, NDR_POINTER_REF,
@@ -5516,14 +5516,14 @@ netlogon_dissect_netserverpasswordset2_rqst(tvbuff_t *tvb, int offset,
                pinfo, tree, drep);
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-               NDR_POINTER_UNIQUE, "Acct Name", hf_netlogon_acct_name);
+               NDR_POINTER_UNIQUE, "Acct Name", hf_netlogon_acct_name, 0);
 
        offset = netlogon_dissect_NETLOGON_SECURE_CHANNEL_TYPE(tvb, offset,
                pinfo, tree, drep);
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                NDR_POINTER_UNIQUE, "Computer Name", 
-               hf_netlogon_computer_name);
+               hf_netlogon_computer_name, 0);
 
        offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                netlogon_dissect_AUTHENTICATOR, NDR_POINTER_REF,
@@ -5560,7 +5560,7 @@ netlogon_dissect_function_20_rqst(tvbuff_t *tvb, int offset,
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                NDR_POINTER_UNIQUE, "unknown string", 
-               hf_netlogon_unknown_string);
+               hf_netlogon_unknown_string, 0);
 
        offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                netlogon_dissect_AUTHENTICATOR, NDR_POINTER_REF,
@@ -5632,14 +5632,14 @@ netlogon_dissect_function_22_rqst(tvbuff_t *tvb, int offset,
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                NDR_POINTER_UNIQUE, "unknown string", 
-               hf_netlogon_unknown_string);
+               hf_netlogon_unknown_string, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                hf_netlogon_unknown_long, NULL);
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                NDR_POINTER_UNIQUE, "unknown string", 
-               hf_netlogon_unknown_string);
+               hf_netlogon_unknown_string, 0);
 
        offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                dissect_nt_GUID, NDR_POINTER_UNIQUE,
@@ -5647,7 +5647,7 @@ netlogon_dissect_function_22_rqst(tvbuff_t *tvb, int offset,
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                NDR_POINTER_UNIQUE, "unknown string", 
-               hf_netlogon_unknown_string);
+               hf_netlogon_unknown_string, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                hf_netlogon_unknown_long, NULL);
@@ -5687,7 +5687,7 @@ netlogon_dissect_function_23_reply(tvbuff_t *tvb, int offset,
 {
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                NDR_POINTER_UNIQUE, "unknown string", 
-               hf_netlogon_unknown_string);
+               hf_netlogon_unknown_string, 0);
 
        offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                netlogon_dissect_pointer_long, NDR_POINTER_UNIQUE,
@@ -5765,7 +5765,7 @@ netlogon_dissect_function_26_rqst(tvbuff_t *tvb, int offset,
 {
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                NDR_POINTER_UNIQUE, "unknown string", 
-               hf_netlogon_unknown_string);
+               hf_netlogon_unknown_string, 0);
 
        return offset;
 }
@@ -5791,11 +5791,11 @@ netlogon_dissect_logonsamlogonex_rqst(tvbuff_t *tvb, int offset,
 {
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                NDR_POINTER_UNIQUE, "unknown string", 
-               hf_netlogon_unknown_string);
+               hf_netlogon_unknown_string, 0);
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                NDR_POINTER_UNIQUE, "unknown string", 
-               hf_netlogon_unknown_string);
+               hf_netlogon_unknown_string, 0);
 
        offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep,
                hf_netlogon_unknown_short, NULL);
@@ -5875,7 +5875,7 @@ netlogon_dissect_dsrderegisterdnshostrecords_rqst(tvbuff_t *tvb, int offset,
                pinfo, tree, drep);
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-               NDR_POINTER_UNIQUE, "Domain", hf_netlogon_logon_dom);
+               NDR_POINTER_UNIQUE, "Domain", hf_netlogon_logon_dom, 0);
 
        offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                dissect_nt_GUID, NDR_POINTER_UNIQUE,
@@ -5886,7 +5886,7 @@ netlogon_dissect_dsrderegisterdnshostrecords_rqst(tvbuff_t *tvb, int offset,
                "GUID pointer: dsa_guid", -1);
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-               NDR_POINTER_UNIQUE, "dns_host", hf_netlogon_dns_host);
+               NDR_POINTER_UNIQUE, "dns_host", hf_netlogon_dns_host, 0);
 
        return offset;
 }
index b818ef3bfdafe65f0acd9026b4644474ebb51e0e..fbcd71fa695ec75d69f6af3743e9c9b3664627a1 100644 (file)
@@ -2,7 +2,7 @@
  * Routines for DCERPC over SMB packet disassembly
  * Copyright 2001-2003, Tim Potter <tpot@samba.org>
  *
- * $Id: packet-dcerpc-nt.c,v 1.58 2003/01/30 06:08:10 guy Exp $
+ * $Id: packet-dcerpc-nt.c,v 1.59 2003/01/30 08:19:38 guy Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -196,11 +196,11 @@ dissect_ndr_nt_UNICODE_STRING_cb(tvbuff_t *tvb, int offset,
 int
 dissect_ndr_nt_UNICODE_STRING(tvbuff_t *tvb, int offset,
                              packet_info *pinfo, proto_tree *parent_tree,
-                             char *drep, int hf_index)
+                             char *drep, int hf_index, int levels)
 {
        return dissect_ndr_nt_UNICODE_STRING_cb(
                tvb, offset, pinfo, parent_tree, drep, hf_index,
-               cb_str_postprocess, GINT_TO_POINTER(CB_STR_ITEM));
+               cb_str_postprocess, GINT_TO_POINTER(2 + levels));
 }
 
 /* functions to dissect a STRING structure, common to many
@@ -300,7 +300,7 @@ dissect_ndr_nt_STRING(tvbuff_t *tvb, int offset,
 {
        return dissect_ndr_nt_STRING_cb(
                tvb, offset, pinfo, parent_tree, drep, hf_index,
-               cb_str_postprocess, GINT_TO_POINTER(CB_STR_ITEM));
+               cb_str_postprocess, GINT_TO_POINTER(1));
 }
 
 /* This function is used to dissect a DCERPC encoded 64 bit time value.
@@ -978,6 +978,7 @@ void cb_str_postprocess(packet_info *pinfo, proto_tree *tree _U_,
                        void *callback_args)
 {
        gint options = GPOINTER_TO_INT(callback_args);
+       gint levels = CB_STR_ITEM_LEVELS(options);
        char *s;
 
        /* Align start_offset on 4-byte boundary. */
@@ -1000,10 +1001,22 @@ void cb_str_postprocess(packet_info *pinfo, proto_tree *tree _U_,
                        col_append_fstr(pinfo->cinfo, COL_INFO, ", %s", s);
        }
 
-       /* Append string to top level pointer proto_item */
-
-       if (options & CB_STR_ITEM)
+       /* Append string to upper-level proto_items */
+       if (levels > 0) {
                proto_item_append_text(item, ": %s", s);
+               item = item->parent;
+               levels--;
+               if (levels > 0) {
+                       proto_item_append_text(item, ": %s", s);
+                       item = item->parent;
+                       levels--;
+                       while (levels > 0) {
+                               proto_item_append_text(item, " %s", s);
+                               item = item->parent;
+                               levels--;
+                       }
+               }
+       }
 
        /* Save string to dcv->private_data */
 
@@ -1023,12 +1036,12 @@ void cb_str_postprocess(packet_info *pinfo, proto_tree *tree _U_,
 int dissect_ndr_str_pointer_item(tvbuff_t *tvb, gint offset, 
                                 packet_info *pinfo, proto_tree *tree, 
                                 char *drep, int type, char *text, 
-                                int hf_index)
+                                int hf_index, int levels)
 {
        return dissect_ndr_pointer_cb(
                tvb, offset, pinfo, tree, drep, 
                dissect_ndr_nt_UNICODE_STRING_str, type, text, hf_index, 
-               cb_str_postprocess, GINT_TO_POINTER(CB_STR_ITEM));
+               cb_str_postprocess, GINT_TO_POINTER(levels + 1));
 }
 
 /*
index a5acc3f3ad73a2ea43804d41e0dcf2dc91fb8321..b3b8eb554b3ee78f189d1676a5e596ae5e52ef81 100644 (file)
@@ -2,7 +2,7 @@
  * Routines for DCERPC over SMB packet disassembly
  * Copyright 2001-2003 Tim Potter <tpot@samba.org>
  *
- * $Id: packet-dcerpc-nt.h,v 1.36 2003/01/28 06:27:01 tpot Exp $
+ * $Id: packet-dcerpc-nt.h,v 1.37 2003/01/30 08:19:38 guy Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -61,7 +61,7 @@ dissect_ndr_nt_UNICODE_STRING_cb(tvbuff_t *tvb, int offset,
 int
 dissect_ndr_nt_UNICODE_STRING(tvbuff_t *tvb, int offset,
                              packet_info *pinfo, proto_tree *parent_tree,
-                             char *drep, int hf_index);
+                             char *drep, int hf_index, int levels);
 
 int
 dissect_ndr_nt_STRING_string(tvbuff_t *tvb, int offset,
@@ -198,15 +198,16 @@ dissect_nt_access_mask(tvbuff_t *tvb, gint offset, packet_info *pinfo,
 int dissect_ndr_str_pointer_item(tvbuff_t *tvb, gint offset, 
                                 packet_info *pinfo, proto_tree *tree, 
                                 char *drep, int type, char *text, 
-                                int hf_index);
+                                int hf_index, int levels);
 
 /*
  * Helper routines for dissecting NDR strings
  */
 
-#define CB_STR_COL_INFO 1      /* Append string to COL_INFO */
-#define CB_STR_ITEM     2      /* Append string to pointer item */
-#define CB_STR_SAVE     4      /* Save string to dcv->private_data */
+/* Number of levels to go up appending string to pointer item */
+#define CB_STR_ITEM_LEVELS(x)  ((x) & 0xFFFF)
+#define CB_STR_COL_INFO 0x10000        /* Append string to COL_INFO */
+#define CB_STR_SAVE     0x20000        /* Save string to dcv->private_data */
 
 void cb_str_postprocess(packet_info *pinfo, proto_tree *tree _U_,
                        proto_item *item, tvbuff_t *tvb, 
index be18b6e8cdcfa728ef8eeb73ad3a1918299c96fe..2a3af7dcfd023f0d7fba22ef6806d5615a7df4e6 100644 (file)
@@ -2,7 +2,7 @@
  * Routines for SMB \PIPE\winreg packet disassembly
  * Copyright 2001-2003 Tim Potter <tpot@samba.org>
  *
- * $Id: packet-dcerpc-reg.c,v 1.13 2003/01/28 06:39:40 tpot Exp $
+ * $Id: packet-dcerpc-reg.c,v 1.14 2003/01/30 08:19:38 guy Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -325,7 +325,7 @@ RegQueryKey_q(tvbuff_t *tvb, int offset, packet_info *pinfo,
                hf_hnd, NULL, FALSE, FALSE);
 
        offset = dissect_ndr_nt_UNICODE_STRING(
-               tvb, offset, pinfo, tree, drep, hf_querykey_class);
+               tvb, offset, pinfo, tree, drep, hf_querykey_class, 0);
 
        dcerpc_smb_check_long_frame(tvb, offset, pinfo, tree);
 
@@ -346,7 +346,7 @@ RegQueryKey_r(tvbuff_t *tvb, int offset, packet_info *pinfo,
        /* Parse packet */
 
        offset = dissect_ndr_nt_UNICODE_STRING(
-               tvb, offset, pinfo, tree, drep, hf_querykey_class);
+               tvb, offset, pinfo, tree, drep, hf_querykey_class, 0);
 
        offset = dissect_ndr_uint32(
                tvb, offset, pinfo, tree, drep,
@@ -409,7 +409,7 @@ RegOpenEntry_q(tvbuff_t *tvb, int offset, packet_info *pinfo,
                hf_hnd, NULL, FALSE, FALSE);
 
        offset = dissect_ndr_nt_UNICODE_STRING(
-               tvb, offset, pinfo, tree, drep, hf_querykey_class);
+               tvb, offset, pinfo, tree, drep, hf_querykey_class, 0);
 
        offset = dissect_ndr_uint32(
                tvb, offset, pinfo, tree, drep,
index f8ddf5c310305d524d398d8a1e2b895abaf289cc..37d0f11537b77a1269a6077824c16da8b00a4c27 100644 (file)
@@ -3,7 +3,7 @@
  * Copyright 2001,2003 Tim Potter <tpot@samba.org>
  *   2002 Added all command dissectors  Ronnie Sahlberg
  *
- * $Id: packet-dcerpc-samr.c,v 1.68 2003/01/30 05:38:56 tpot Exp $
+ * $Id: packet-dcerpc-samr.c,v 1.69 2003/01/30 08:19:38 guy Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -669,7 +669,7 @@ samr_dissect_pointer_UNICODE_STRING(tvbuff_t *tvb, int offset,
        }
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-                       di->hf_index);
+                       di->hf_index, 0);
        return offset;
 }
 
@@ -736,11 +736,11 @@ samr_dissect_USER_DISPINFO_1(tvbuff_t *tvb, int offset,
                                hf_samr_rid, NULL);
        offset = dissect_ndr_nt_acct_ctrl(tvb, offset, pinfo, tree, drep);
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-                               hf_samr_acct_name);
+                               hf_samr_acct_name, 0);
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-                               hf_samr_full_name);
+                               hf_samr_full_name, 0);
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-                               hf_samr_acct_desc);
+                               hf_samr_acct_desc, 0);
 
        proto_item_set_len(item, offset-old_offset);
        return offset;
@@ -807,9 +807,9 @@ samr_dissect_USER_DISPINFO_2(tvbuff_t *tvb, int offset,
                        hf_samr_rid, NULL);
        offset = dissect_ndr_nt_acct_ctrl(tvb, offset, pinfo, tree, drep);
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-                       hf_samr_acct_name);
+                       hf_samr_acct_name, 0);
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-                       hf_samr_acct_desc);
+                       hf_samr_acct_desc, 0);
 
        proto_item_set_len(item, offset-old_offset);
        return offset;
@@ -879,9 +879,9 @@ samr_dissect_GROUP_DISPINFO(tvbuff_t *tvb, int offset,
                        hf_samr_rid, NULL);
        offset = dissect_ndr_nt_acct_ctrl(tvb, offset, pinfo, tree, drep);
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-                       hf_samr_acct_name);
+                       hf_samr_acct_name, 0);
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-                       hf_samr_acct_desc);
+                       hf_samr_acct_desc, 0);
 
        proto_item_set_len(item, offset-old_offset);
        return offset;
@@ -1156,7 +1156,7 @@ samr_dissect_connect2_rqst(tvbuff_t *tvb, int offset,
                tvb, offset, pinfo, tree, drep,
                dissect_ndr_nt_UNICODE_STRING_str, NDR_POINTER_UNIQUE,
                "Server", hf_samr_server, cb_str_postprocess,
-               GINT_TO_POINTER(CB_STR_COL_INFO | CB_STR_ITEM | CB_STR_SAVE));
+               GINT_TO_POINTER(CB_STR_COL_INFO | CB_STR_SAVE | 1));
 
        offset = dissect_nt_access_mask(
                tvb, offset, pinfo, tree, drep, hf_samr_access,
@@ -1174,7 +1174,7 @@ samr_dissect_connect4_rqst(tvbuff_t *tvb, int offset,
                tvb, offset, pinfo, tree, drep,
                dissect_ndr_nt_UNICODE_STRING_str, NDR_POINTER_UNIQUE,
                "Server", hf_samr_server, cb_str_postprocess,
-               GINT_TO_POINTER(CB_STR_COL_INFO | CB_STR_ITEM));
+               GINT_TO_POINTER(CB_STR_COL_INFO | 1));
 
        offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
                                     hf_samr_unknown_long, NULL);
@@ -1517,11 +1517,11 @@ samr_dissect_ALIAS_INFO_1 (tvbuff_t *tvb, int offset,
                              char *drep)
 {
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo,
-               tree, drep, hf_samr_acct_name);
+               tree, drep, hf_samr_acct_name, 0);
         offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
                                      hf_samr_rid, NULL);
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo,
-               tree, drep, hf_samr_acct_desc);
+               tree, drep, hf_samr_acct_desc, 0);
        return offset;
 }
 
@@ -1550,11 +1550,11 @@ samr_dissect_ALIAS_INFO(tvbuff_t *tvb, int offset,
                break;
        case 2:
                offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo,
-                       tree, drep, hf_samr_acct_name);
+                       tree, drep, hf_samr_acct_name, 0);
                break;
        case 3:
                offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo,
-                       tree, drep, hf_samr_acct_desc);
+                       tree, drep, hf_samr_acct_desc, 0);
                break;
        }
 
@@ -1918,7 +1918,7 @@ samr_dissect_unicode_change_password_user2_rqst(tvbuff_t *tvb, int offset,
                        "PASSWORD_INFO:", -1);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Server", hf_samr_server);
+                       NDR_POINTER_UNIQUE, "Server", hf_samr_server, 0);
 
         offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        samr_dissect_pointer_UNICODE_STRING, NDR_POINTER_REF,
@@ -2135,13 +2135,13 @@ samr_dissect_GROUP_INFO_1 (tvbuff_t *tvb, int offset,
                              char *drep)
 {
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo,
-               tree, drep, hf_samr_acct_name);
+               tree, drep, hf_samr_acct_name, 0);
         offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
                                      hf_samr_rid, NULL);
         offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
                                        hf_samr_attrib, NULL);
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo,
-               tree, drep, hf_samr_acct_desc);
+               tree, drep, hf_samr_acct_desc, 0);
        return offset;
 }
 
@@ -2170,7 +2170,7 @@ samr_dissect_GROUP_INFO(tvbuff_t *tvb, int offset,
                break;
        case 2:
                offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo,
-                       tree, drep, hf_samr_acct_name);
+                       tree, drep, hf_samr_acct_name, 0);
                break;
        case 3:
                offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
@@ -2178,7 +2178,7 @@ samr_dissect_GROUP_INFO(tvbuff_t *tvb, int offset,
                break;
        case 4:
                offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo,
-                       tree, drep, hf_samr_acct_desc);
+                       tree, drep, hf_samr_acct_desc, 0);
                break;
        }
 
@@ -2263,7 +2263,7 @@ samr_dissect_get_domain_password_information_rqst(tvbuff_t *tvb, int offset,
                        "PASSWORD_INFO:", -1);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Domain", hf_samr_domain);
+                       NDR_POINTER_UNIQUE, "Domain", hf_samr_domain, 0);
        return offset;
 }
 
@@ -2332,11 +2332,11 @@ samr_dissect_DOMAIN_INFO_2(tvbuff_t *tvb, int offset,
        offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep,
                        hf_samr_unknown_time);
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-                       hf_samr_unknown_string);
+                       hf_samr_unknown_string, 0);
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-                       hf_samr_domain);
+                       hf_samr_domain, 0);
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-                       hf_samr_controller);
+                       hf_samr_controller, 0);
        offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep,
                        hf_samr_unknown_time);
        offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
@@ -2493,17 +2493,17 @@ samr_dissect_DOMAIN_INFO(tvbuff_t *tvb, int offset,
                break;
        case 4:
                offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo,
-                       tree, drep, hf_samr_unknown_string);
+                       tree, drep, hf_samr_unknown_string, 0);
                break;
 
        case 5:
                offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo,
-                       tree, drep, hf_samr_domain);
+                       tree, drep, hf_samr_domain, 0);
                break;
 
        case 6:
                offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo,
-                       tree, drep, hf_samr_controller);
+                       tree, drep, hf_samr_controller, 0);
                break;
 
        case 7:
@@ -2831,7 +2831,7 @@ samr_dissect_IDX_AND_NAME(tvbuff_t *tvb, int offset,
         offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
                        hf_samr_index, NULL);
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo,
-                       tree, drep, di->hf_index);
+                       tree, drep, di->hf_index, 4);
 
        proto_item_set_len(item, offset-old_offset);
        return offset;
@@ -3136,14 +3136,14 @@ samr_dissect_USER_INFO_1(tvbuff_t *tvb, int offset,
        }
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-                               hf_samr_acct_name);
+                               hf_samr_acct_name, 1);
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-                               hf_samr_full_name);
+                               hf_samr_full_name, 0);
        offset = dissect_ndr_nt_acct_ctrl(tvb, offset, pinfo, tree, drep);
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-                               hf_samr_home);
+                               hf_samr_home, 0);
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-                               hf_samr_script);
+                               hf_samr_script, 0);
 
        proto_item_set_len(item, offset-old_offset);
        return offset;
@@ -3165,9 +3165,9 @@ samr_dissect_USER_INFO_2(tvbuff_t *tvb, int offset,
        }
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-                               hf_samr_acct_name);
+                               hf_samr_acct_name, 0);
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-                               hf_samr_full_name);
+                               hf_samr_full_name, 0);
        offset = dissect_ndr_uint16 (tvb, offset, pinfo, tree, drep,
                                hf_samr_bad_pwd_count, NULL);
        offset = dissect_ndr_uint16 (tvb, offset, pinfo, tree, drep,
@@ -3193,23 +3193,23 @@ samr_dissect_USER_INFO_3(tvbuff_t *tvb, int offset,
        }
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-                               hf_samr_acct_name);
+                               hf_samr_acct_name, 0);
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-                               hf_samr_full_name);
+                               hf_samr_full_name, 0);
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                                hf_samr_rid, NULL);
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                                hf_samr_group, NULL);
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-                               hf_samr_home);
+                               hf_samr_home, 0);
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-                               hf_samr_home_drive);
+                               hf_samr_home_drive, 0);
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-                               hf_samr_script);
+                               hf_samr_script, 0);
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-                               hf_samr_acct_desc);
+                               hf_samr_acct_desc, 0);
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-                               hf_samr_workstations);
+                               hf_samr_workstations, 0);
        offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep,
                                hf_samr_logon_time);
        offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep,
@@ -3247,9 +3247,9 @@ samr_dissect_USER_INFO_5(tvbuff_t *tvb, int offset,
        }
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-                               hf_samr_acct_name);
+                               hf_samr_acct_name, 0);
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-                               hf_samr_full_name);
+                               hf_samr_full_name, 0);
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                                hf_samr_rid, NULL);
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
@@ -3259,15 +3259,15 @@ samr_dissect_USER_INFO_5(tvbuff_t *tvb, int offset,
        offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep,
                                hf_samr_codepage, NULL);
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-                               hf_samr_home);
+                               hf_samr_home, 0);
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-                               hf_samr_home_drive);
+                               hf_samr_home_drive, 0);
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-                               hf_samr_script);
+                               hf_samr_script, 0);
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-                               hf_samr_acct_desc);
+                               hf_samr_acct_desc, 0);
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-                               hf_samr_workstations);
+                               hf_samr_workstations, 0);
        offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep,
                                hf_samr_logon_time);
        offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep,
@@ -3303,9 +3303,9 @@ samr_dissect_USER_INFO_6(tvbuff_t *tvb, int offset,
        }
 
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-                               hf_samr_acct_name);
+                               hf_samr_acct_name, 0);
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-                               hf_samr_full_name);
+                               hf_samr_full_name, 0);
 
        proto_item_set_len(item, offset-old_offset);
        return offset;
@@ -3455,31 +3455,31 @@ samr_dissect_USER_INFO_21(tvbuff_t *tvb, int offset,
        offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep,
                                hf_samr_pwd_must_change_time);
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-                               hf_samr_acct_name);
+                               hf_samr_acct_name, 2);
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-                               hf_samr_full_name);
+                               hf_samr_full_name, 0);
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-                               hf_samr_home);
+                               hf_samr_home, 0);
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-                               hf_samr_home_drive);
+                               hf_samr_home_drive, 0);
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-                               hf_samr_script);
+                               hf_samr_script, 0);
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-                               hf_samr_profile);
+                               hf_samr_profile, 0);
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-                               hf_samr_acct_desc);
+                               hf_samr_acct_desc, 0);
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-                               hf_samr_workstations);
+                               hf_samr_workstations, 0);
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-                               hf_samr_comment);
+                               hf_samr_comment, 0);
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-                               hf_samr_parameters);
+                               hf_samr_parameters, 0);
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-                               hf_samr_unknown_string);
+                               hf_samr_unknown_string, 0);
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-                               hf_samr_unknown_string);
+                               hf_samr_unknown_string, 0);
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-                               hf_samr_unknown_string);
+                               hf_samr_unknown_string, 0);
        offset = samr_dissect_BUFFER(tvb, offset, pinfo, tree, drep);
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                                hf_samr_rid, NULL);
@@ -3623,11 +3623,11 @@ samr_dissect_USER_INFO (tvbuff_t *tvb, int offset,
                break;
        case 7:
                offset = dissect_ndr_nt_UNICODE_STRING(
-                       tvb, offset, pinfo, tree, drep, hf_samr_full_name);
+                       tvb, offset, pinfo, tree, drep, hf_samr_full_name, 0);
                break;
        case 8:
                offset = dissect_ndr_nt_UNICODE_STRING(
-                       tvb, offset, pinfo, tree, drep, hf_samr_acct_desc);
+                       tvb, offset, pinfo, tree, drep, hf_samr_acct_desc, 0);
                break;
        case 9:
                offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
@@ -3639,19 +3639,19 @@ samr_dissect_USER_INFO (tvbuff_t *tvb, int offset,
                break;
        case 11:
                offset = dissect_ndr_nt_UNICODE_STRING(
-                       tvb, offset, pinfo, tree, drep, hf_samr_home);
+                       tvb, offset, pinfo, tree, drep, hf_samr_home, 0);
                break;
        case 12:
                offset = dissect_ndr_nt_UNICODE_STRING(
-                       tvb, offset, pinfo, tree, drep, hf_samr_home_drive);
+                       tvb, offset, pinfo, tree, drep, hf_samr_home_drive, 0);
                break;
        case 13:
                offset = dissect_ndr_nt_UNICODE_STRING(
-                       tvb, offset, pinfo, tree, drep, hf_samr_script);
+                       tvb, offset, pinfo, tree, drep, hf_samr_script, 0);
                break;
        case 14:
                offset = dissect_ndr_nt_UNICODE_STRING(
-                       tvb, offset, pinfo, tree, drep, hf_samr_workstations);
+                       tvb, offset, pinfo, tree, drep, hf_samr_workstations, 0);
                break;
        case 16:
                offset = dissect_ndr_nt_acct_ctrl(tvb, offset, pinfo, tree,
@@ -3671,7 +3671,7 @@ samr_dissect_USER_INFO (tvbuff_t *tvb, int offset,
                break;
        case 20:
                offset = dissect_ndr_nt_UNICODE_STRING(
-                       tvb, offset, pinfo, tree, drep, hf_samr_profile);
+                       tvb, offset, pinfo, tree, drep, hf_samr_profile, 0);
                break;
        case 21:
                offset = samr_dissect_USER_INFO_21(
@@ -3976,7 +3976,7 @@ samr_dissect_LOOKUP_NAMES_name(tvbuff_t *tvb, int offset,
                        char *drep)
 {
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-                               hf_samr_acct_name);
+                               hf_samr_acct_name, 1);
        return offset;
 }
 
@@ -4097,7 +4097,7 @@ samr_dissect_UNICODE_STRING_ARRAY_name(tvbuff_t *tvb, int offset,
                        char *drep)
 {
        offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
-                               hf_samr_acct_name);
+                               hf_samr_acct_name, 0);
        return offset;
 }
 
index a53bfd97f1564c99f8318af6ac6ab0252c5a8e46..f379155945f1fbe132a6e95d5c097d4b37ff572c 100644 (file)
@@ -2,7 +2,7 @@
  * Routines for SMB \PIPE\spoolss packet disassembly
  * Copyright 2001-2003, Tim Potter <tpot@samba.org>
  *
- * $Id: packet-dcerpc-spoolss.c,v 1.75 2003/01/30 05:11:33 tpot Exp $
+ * $Id: packet-dcerpc-spoolss.c,v 1.76 2003/01/30 08:19:39 guy Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -2663,11 +2663,11 @@ static int dissect_USER_LEVEL_1(tvbuff_t *tvb, int offset,
 
         offset = dissect_ndr_str_pointer_item(
                 tvb, offset, pinfo, tree, drep, NDR_POINTER_UNIQUE,
-                "Client", hf_spoolss_userlevel_client);
+                "Client", hf_spoolss_userlevel_client, 0);
 
         offset = dissect_ndr_str_pointer_item(
                 tvb, offset, pinfo, tree, drep, NDR_POINTER_UNIQUE,
-                "User", hf_spoolss_userlevel_user);
+                "User", hf_spoolss_userlevel_user, 0);
 
         offset = dissect_ndr_uint32(
                 tvb, offset, pinfo, tree, drep, 
@@ -2751,7 +2751,7 @@ static int SpoolssOpenPrinterEx_q(tvbuff_t *tvb, int offset,
                tvb, offset, pinfo, tree, drep,
                dissect_ndr_nt_UNICODE_STRING_str, NDR_POINTER_UNIQUE,
                "Printer name", hf_spoolss_printername, cb_str_postprocess,
-               GINT_TO_POINTER(CB_STR_COL_INFO | CB_STR_ITEM | CB_STR_SAVE));
+               GINT_TO_POINTER(CB_STR_COL_INFO | CB_STR_SAVE | 1));
 
        offset = dissect_ndr_pointer(
                tvb, offset, pinfo, tree, drep,
@@ -3322,7 +3322,7 @@ static int SpoolssRFFPCNEX_q(tvbuff_t *tvb, int offset,
 
        offset = dissect_ndr_str_pointer_item(
                tvb, offset, pinfo, tree, drep, NDR_POINTER_UNIQUE,
-               "Server", hf_spoolss_servername);
+               "Server", hf_spoolss_servername, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                                    hf_spoolss_printerlocal, NULL);
@@ -4153,7 +4153,7 @@ static int SpoolssEnumPrinters_q(tvbuff_t *tvb, int offset, packet_info *pinfo,
 
        offset = dissect_ndr_str_pointer_item(
                tvb, offset, pinfo, tree, drep,
-               NDR_POINTER_UNIQUE, "Server name", hf_spoolss_servername);
+               NDR_POINTER_UNIQUE, "Server name", hf_spoolss_servername, 0);
 
         offset = dissect_ndr_uint32(
                 tvb, offset, pinfo, tree, drep,
@@ -4223,7 +4223,7 @@ static int SpoolssAddPrinterDriver_q(tvbuff_t *tvb, int offset,
 
        offset = dissect_ndr_str_pointer_item(
                tvb, offset, pinfo, tree, drep, NDR_POINTER_UNIQUE,
-               "Server", hf_spoolss_servername);
+               "Server", hf_spoolss_servername, 0);
 
        offset = dissect_spoolss_DRIVER_INFO_CTR(
                tvb, offset, pinfo, tree, drep);
@@ -4273,7 +4273,7 @@ static int dissect_FORM_1(tvbuff_t *tvb, int offset, packet_info *pinfo,
 
        offset = dissect_ndr_str_pointer_item(
                tvb, offset, pinfo, subtree, drep, NDR_POINTER_UNIQUE,
-               "Name", hf_spoolss_form_name);
+               "Name", hf_spoolss_form_name, 0);
 
        /* Eek - we need to know whether this pointer was NULL or not.
           Currently there is not any way to do this. */
@@ -5135,15 +5135,15 @@ dissect_spoolss_doc_info_1(tvbuff_t *tvb, int offset, packet_info *pinfo,
 
        offset = dissect_ndr_str_pointer_item(
                tvb, offset, pinfo, subtree, drep, NDR_POINTER_UNIQUE,
-               "Document name", hf_spoolss_documentname);
+               "Document name", hf_spoolss_documentname, 0);
 
        offset = dissect_ndr_str_pointer_item(
                tvb, offset, pinfo, subtree, drep, NDR_POINTER_UNIQUE,
-               "Output file", hf_spoolss_outputfile);
+               "Output file", hf_spoolss_outputfile, 0);
 
        offset = dissect_ndr_str_pointer_item(
                tvb, offset, pinfo, subtree, drep, NDR_POINTER_UNIQUE,
-               "Data type", hf_spoolss_datatype);
+               "Data type", hf_spoolss_datatype, 0);
 
        return offset;
 }
@@ -5594,11 +5594,11 @@ static int SpoolssEnumPrinterDrivers_q(tvbuff_t *tvb, int offset,
 
        offset = dissect_ndr_str_pointer_item(
                tvb, offset, pinfo, tree, drep, NDR_POINTER_UNIQUE,
-               "Name", hf_spoolss_servername);
+               "Name", hf_spoolss_servername, 0);
 
        offset = dissect_ndr_str_pointer_item(
                tvb, offset, pinfo, tree, drep, NDR_POINTER_UNIQUE,
-               "Environment", hf_spoolss_servername);
+               "Environment", hf_spoolss_servername, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                                    hf_spoolss_level, &level);
@@ -5708,7 +5708,7 @@ static int SpoolssGetPrinterDriver2_q(tvbuff_t *tvb, int offset,
 
        offset = dissect_ndr_str_pointer_item(
                tvb, offset, pinfo, tree, drep, NDR_POINTER_UNIQUE,
-               "Architecture", hf_spoolss_architecture);
+               "Architecture", hf_spoolss_architecture, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                                    hf_spoolss_level, &level);
index 536e0b6b4edbcdc2808f26beca3fba5a9df08c2d..721d6f329ec604ba5723370e026567f7d14bdf4e 100644 (file)
@@ -9,7 +9,7 @@
  * 2002, some share information levels implemented based on samba
  * sources.
  *
- * $Id: packet-dcerpc-srvsvc.c,v 1.47 2003/01/30 05:35:10 tpot Exp $
+ * $Id: packet-dcerpc-srvsvc.c,v 1.48 2003/01/30 08:19:39 guy Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -290,7 +290,7 @@ srvsvc_dissect_CHARDEV_INFO_0(tvbuff_t *tvb, int offset,
 {
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                        NDR_POINTER_UNIQUE, "Char Device", 
-                       hf_srvsvc_chrdev);
+                       hf_srvsvc_chrdev, 0);
 
        return offset;
 }
@@ -342,13 +342,13 @@ srvsvc_dissect_CHARDEV_INFO_1(tvbuff_t *tvb, int offset,
 {
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                        NDR_POINTER_UNIQUE, "Char Device", 
-                       hf_srvsvc_chrdev);
+                       hf_srvsvc_chrdev, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                hf_srvsvc_chrdev_status, 0);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "User", hf_srvsvc_user);
+                       NDR_POINTER_UNIQUE, "User", hf_srvsvc_user, 0);
 
        /* XXX dont know how to decode this time field */
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
@@ -488,7 +488,7 @@ srvsvc_dissect_netrchardevenum_rqst(tvbuff_t *tvb, int offset,
                                     char *drep)
 {
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server);
+                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server, 0);
 
        offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_CHARDEV_ENUM_STRUCT,
@@ -540,10 +540,10 @@ srvsvc_dissect_netrchardevgetinfo_rqst(tvbuff_t *tvb, int offset,
                                     char *drep)
 {
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server);
+                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server, 0);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_REF, "Char Device", hf_srvsvc_chrdev);
+                       NDR_POINTER_REF, "Char Device", hf_srvsvc_chrdev, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_info_level, 0);
@@ -578,10 +578,10 @@ srvsvc_dissect_netrchardevcontrol_rqst(tvbuff_t *tvb, int offset,
                                     char *drep)
 {
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server);
+                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server, 0);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_REF, "Char Device", hf_srvsvc_chrdev);
+                       NDR_POINTER_REF, "Char Device", hf_srvsvc_chrdev, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_chrdev_opcode, 0);
@@ -612,7 +612,7 @@ srvsvc_dissect_CHARDEVQ_INFO_0(tvbuff_t *tvb, int offset,
                                     char *drep)
 {
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Char QDevice", hf_srvsvc_chrdev);
+                       NDR_POINTER_UNIQUE, "Char QDevice", hf_srvsvc_chrdev, 0);
 
        return offset;
 }
@@ -664,13 +664,13 @@ srvsvc_dissect_CHARDEVQ_INFO_1(tvbuff_t *tvb, int offset,
                                     char *drep)
 {
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Char Device", hf_srvsvc_chrdev);
+                       NDR_POINTER_UNIQUE, "Char Device", hf_srvsvc_chrdev, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                hf_srvsvc_chrqpri, 0);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Char Devices", hf_srvsvc_chrdevq);
+                       NDR_POINTER_UNIQUE, "Char Devices", hf_srvsvc_chrdevq, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                hf_srvsvc_chrqnumusers, 0);
@@ -814,10 +814,10 @@ srvsvc_dissect_netrchardevqenum_rqst(tvbuff_t *tvb, int offset,
                                     char *drep)
 {
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server);
+                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server, 0);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "User", hf_srvsvc_user);
+                       NDR_POINTER_UNIQUE, "User", hf_srvsvc_user, 0);
 
        offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_CHARDEVQ_ENUM_STRUCT,
@@ -869,13 +869,13 @@ srvsvc_dissect_netrchardevqgetinfo_rqst(tvbuff_t *tvb, int offset,
                                     char *drep)
 {
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server);
+                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server, 0);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_REF, "Device Queue", hf_srvsvc_chrdevq);
+                       NDR_POINTER_REF, "Device Queue", hf_srvsvc_chrdevq, 0);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_REF, "User", hf_srvsvc_user);
+                       NDR_POINTER_REF, "User", hf_srvsvc_user, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                hf_srvsvc_info_level, NULL);
@@ -912,10 +912,10 @@ srvsvc_dissect_netrchardevqsetinfo_rqst(tvbuff_t *tvb, int offset,
                                     char *drep)
 {
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server);
+                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server, 0);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_REF, "Device Queue", hf_srvsvc_chrdevq);
+                       NDR_POINTER_REF, "Device Queue", hf_srvsvc_chrdevq, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                hf_srvsvc_info_level, NULL);
@@ -957,10 +957,10 @@ srvsvc_dissect_netrchardevqpurge_rqst(tvbuff_t *tvb, int offset,
                                     char *drep)
 {
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server);
+                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server, 0);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_REF, "Device Queue", hf_srvsvc_chrdevq);
+                       NDR_POINTER_REF, "Device Queue", hf_srvsvc_chrdevq, 0);
 
        return offset;
 }
@@ -988,13 +988,13 @@ srvsvc_dissect_netrchardevqpurgeself_rqst(tvbuff_t *tvb, int offset,
                                     char *drep)
 {
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server);
+                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server, 0);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_REF, "Device Queue", hf_srvsvc_chrdevq);
+                       NDR_POINTER_REF, "Device Queue", hf_srvsvc_chrdevq, 0);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_REF, "Computer", hf_srvsvc_computer);
+                       NDR_POINTER_REF, "Computer", hf_srvsvc_computer, 0);
 
        return offset;
 }
@@ -1091,10 +1091,10 @@ srvsvc_dissect_CONNECT_INFO_1(tvbuff_t *tvb, int offset,
                                      hf_srvsvc_con_time, NULL);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "User", hf_srvsvc_user);
+                       NDR_POINTER_UNIQUE, "User", hf_srvsvc_user, 0);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Share", hf_srvsvc_share);
+                       NDR_POINTER_UNIQUE, "Share", hf_srvsvc_share, 0);
 
        return offset;
 }
@@ -1201,10 +1201,10 @@ srvsvc_dissect_netrconnectionenum_rqst(tvbuff_t *tvb, int offset,
                                     char *drep)
 {
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server);
+                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server, 0);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Qualifier", hf_srvsvc_qualifier);
+                       NDR_POINTER_UNIQUE, "Qualifier", hf_srvsvc_qualifier, 0);
 
        offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_CONNECT_ENUM_STRUCT,
@@ -1313,10 +1313,10 @@ srvsvc_dissect_FILE_INFO_3(tvbuff_t *tvb, int offset,
                                      hf_srvsvc_file_num_locks, NULL);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Path", hf_srvsvc_path);
+                       NDR_POINTER_UNIQUE, "Path", hf_srvsvc_path, 0);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "User", hf_srvsvc_user);
+                       NDR_POINTER_UNIQUE, "User", hf_srvsvc_user, 0);
 
        return offset;
 }
@@ -1457,13 +1457,13 @@ srvsvc_dissect_netrfileenum_rqst(tvbuff_t *tvb, int offset,
                                     char *drep)
 {
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server);
+                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server, 0);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Path", hf_srvsvc_path);
+                       NDR_POINTER_UNIQUE, "Path", hf_srvsvc_path, 0);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "User", hf_srvsvc_user);
+                       NDR_POINTER_UNIQUE, "User", hf_srvsvc_user, 0);
 
        offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_FILE_ENUM_STRUCT,
@@ -1515,7 +1515,7 @@ srvsvc_dissect_netrfilegetinfo_rqst(tvbuff_t *tvb, int offset,
                                     char *drep)
 {
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server);
+                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server, 0);
 
         offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
                                      hf_srvsvc_file_id, NULL);
@@ -1553,7 +1553,7 @@ srvsvc_dissect_netrfileclose_rqst(tvbuff_t *tvb, int offset,
                                     char *drep)
 {
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server);
+                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server, 0);
 
         offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
                                      hf_srvsvc_file_id, NULL);
@@ -1582,7 +1582,7 @@ srvsvc_dissect_SESSION_INFO_0(tvbuff_t *tvb, int offset,
                                     char *drep)
 {
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Session", hf_srvsvc_session);
+                       NDR_POINTER_UNIQUE, "Session", hf_srvsvc_session, 0);
 
        return offset;
 }
@@ -1634,10 +1634,10 @@ srvsvc_dissect_SESSION_INFO_1(tvbuff_t *tvb, int offset,
                                     char *drep)
 {
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Session", hf_srvsvc_session);
+                       NDR_POINTER_UNIQUE, "Session", hf_srvsvc_session, 0);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "User", hf_srvsvc_user);
+                       NDR_POINTER_UNIQUE, "User", hf_srvsvc_user, 0);
 
         offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
                                      hf_srvsvc_session_num_opens, NULL);
@@ -1702,10 +1702,10 @@ srvsvc_dissect_SESSION_INFO_2(tvbuff_t *tvb, int offset,
                                     char *drep)
 {
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Session", hf_srvsvc_session);
+                       NDR_POINTER_UNIQUE, "Session", hf_srvsvc_session, 0);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "User", hf_srvsvc_user);
+                       NDR_POINTER_UNIQUE, "User", hf_srvsvc_user, 0);
 
         offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
                                      hf_srvsvc_session_num_opens, NULL);
@@ -1721,7 +1721,7 @@ srvsvc_dissect_SESSION_INFO_2(tvbuff_t *tvb, int offset,
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                        NDR_POINTER_UNIQUE, "Client Type", 
-                       hf_srvsvc_client_type);
+                       hf_srvsvc_client_type, 0);
 
        return offset;
 }
@@ -1771,10 +1771,10 @@ srvsvc_dissect_SESSION_INFO_10(tvbuff_t *tvb, int offset,
                                     char *drep)
 {
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Session", hf_srvsvc_session);
+                       NDR_POINTER_UNIQUE, "Session", hf_srvsvc_session, 0);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "User", hf_srvsvc_user);
+                       NDR_POINTER_UNIQUE, "User", hf_srvsvc_user, 0);
 
         offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
                                      hf_srvsvc_session_time, NULL);
@@ -1834,10 +1834,10 @@ srvsvc_dissect_SESSION_INFO_502(tvbuff_t *tvb, int offset,
                                     char *drep)
 {
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Session", hf_srvsvc_session);
+                       NDR_POINTER_UNIQUE, "Session", hf_srvsvc_session, 0);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "User", hf_srvsvc_user);
+                       NDR_POINTER_UNIQUE, "User", hf_srvsvc_user, 0);
 
         offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
                                      hf_srvsvc_session_num_opens, NULL);
@@ -1853,10 +1853,10 @@ srvsvc_dissect_SESSION_INFO_502(tvbuff_t *tvb, int offset,
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                        NDR_POINTER_UNIQUE, "Client Type", 
-                       hf_srvsvc_client_type);
+                       hf_srvsvc_client_type, 0);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Transport", hf_srvsvc_transport);
+                       NDR_POINTER_UNIQUE, "Transport", hf_srvsvc_transport, 0);
 
        return offset;
 }
@@ -1980,13 +1980,13 @@ srvsvc_dissect_netrsessionenum_rqst(tvbuff_t *tvb, int offset,
                                     char *drep)
 {
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server);
+                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server, 0);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Computer", hf_srvsvc_computer);
+                       NDR_POINTER_UNIQUE, "Computer", hf_srvsvc_computer, 0);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "User", hf_srvsvc_user);
+                       NDR_POINTER_UNIQUE, "User", hf_srvsvc_user, 0);
 
        offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                srvsvc_dissect_SESSION_ENUM_STRUCT,
@@ -2037,13 +2037,13 @@ srvsvc_dissect_netrsessiondel_rqst(tvbuff_t *tvb, int offset,
                                     char *drep)
 {
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server);
+                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server, 0);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_REF, "Computer", hf_srvsvc_computer);
+                       NDR_POINTER_REF, "Computer", hf_srvsvc_computer, 0);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_REF, "User", hf_srvsvc_user);
+                       NDR_POINTER_REF, "User", hf_srvsvc_user, 0);
 
        return offset;
 }
@@ -2070,7 +2070,7 @@ srvsvc_dissect_SHARE_INFO_0(tvbuff_t *tvb, int offset,
                                     char *drep)
 {
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Share", hf_srvsvc_share);
+                       NDR_POINTER_UNIQUE, "Share", hf_srvsvc_share, 0);
 
        return offset;
 }
@@ -2128,13 +2128,13 @@ srvsvc_dissect_SHARE_INFO_1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto
        }
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Share", hf_srvsvc_share);
+                       NDR_POINTER_UNIQUE, "Share", hf_srvsvc_share, 3);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                hf_srvsvc_share_type, NULL);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Comment", hf_srvsvc_comment);
+                       NDR_POINTER_UNIQUE, "Comment", hf_srvsvc_comment, 0);
 
        return offset;
 }
@@ -2197,13 +2197,13 @@ srvsvc_dissect_SHARE_INFO_2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto
        }
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Share", hf_srvsvc_share);
+                       NDR_POINTER_UNIQUE, "Share", hf_srvsvc_share, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                hf_srvsvc_share_type, NULL);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Comment", hf_srvsvc_comment);
+                       NDR_POINTER_UNIQUE, "Comment", hf_srvsvc_comment, 0);
 
         offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
                                      hf_srvsvc_perm, NULL);
@@ -2215,11 +2215,11 @@ srvsvc_dissect_SHARE_INFO_2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto
                                      hf_srvsvc_cur_uses, NULL);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Path", hf_srvsvc_path);
+                       NDR_POINTER_UNIQUE, "Path", hf_srvsvc_path, 0);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                        NDR_POINTER_UNIQUE, "Password", 
-                       hf_srvsvc_share_passwd);
+                       hf_srvsvc_share_passwd, 0);
 
        return offset;
 }
@@ -2278,13 +2278,13 @@ srvsvc_dissect_SHARE_INFO_501(tvbuff_t *tvb, int offset, packet_info *pinfo, pro
        }
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Share", hf_srvsvc_share);
+                       NDR_POINTER_UNIQUE, "Share", hf_srvsvc_share, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                hf_srvsvc_share_type, NULL);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Comment", hf_srvsvc_comment);
+                       NDR_POINTER_UNIQUE, "Comment", hf_srvsvc_comment, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                hf_srvsvc_policy, NULL);
@@ -2353,13 +2353,13 @@ srvsvc_dissect_SHARE_INFO_502(tvbuff_t *tvb, int offset, packet_info *pinfo, pro
        }
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Share", hf_srvsvc_share);
+                       NDR_POINTER_UNIQUE, "Share", hf_srvsvc_share, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                hf_srvsvc_share_type, NULL);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Comment", hf_srvsvc_comment);
+                       NDR_POINTER_UNIQUE, "Comment", hf_srvsvc_comment, 0);
 
         offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
                                      hf_srvsvc_perm, NULL);
@@ -2371,11 +2371,11 @@ srvsvc_dissect_SHARE_INFO_502(tvbuff_t *tvb, int offset, packet_info *pinfo, pro
                                      hf_srvsvc_cur_uses, NULL);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Path", hf_srvsvc_path);
+                       NDR_POINTER_UNIQUE, "Path", hf_srvsvc_path, 0);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                        NDR_POINTER_UNIQUE, "Password", 
-                       hf_srvsvc_share_passwd);
+                       hf_srvsvc_share_passwd, 0);
 
         offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
                                      hf_srvsvc_reserved, NULL);
@@ -2427,7 +2427,7 @@ static int
 srvsvc_dissect_SHARE_INFO_1004(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, char *drep)
 {
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Comment", hf_srvsvc_comment);
+                       NDR_POINTER_UNIQUE, "Comment", hf_srvsvc_comment, 0);
 
        return offset;
 }
@@ -2569,7 +2569,7 @@ srvsvc_dissect_SHARE_INFO_1007(tvbuff_t *tvb, int offset, packet_info *pinfo, pr
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                        NDR_POINTER_UNIQUE, "Alternate Name", 
-                       hf_srvsvc_share_alternate_name);
+                       hf_srvsvc_share_alternate_name, 0);
 
        return offset;
 }
@@ -2748,7 +2748,7 @@ srvsvc_dissect_netrshareadd_rqst(tvbuff_t *tvb, int offset,
                                     char *drep)
 {
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server);
+                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_info_level, 0);
@@ -2894,7 +2894,7 @@ srvsvc_dissect_netrshareenum_rqst(tvbuff_t *tvb, int offset,
                                     char *drep)
 {
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server);
+                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server, 0);
 
        offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_SHARE_ENUM_STRUCT,
@@ -2946,10 +2946,10 @@ srvsvc_dissect_netrsharegetinfo_rqst(tvbuff_t *tvb, int offset,
                                     char *drep)
 {
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server);
+                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server, 0);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_REF, "Share", hf_srvsvc_share);
+                       NDR_POINTER_REF, "Share", hf_srvsvc_share, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_info_level, 0);
@@ -2987,10 +2987,10 @@ srvsvc_dissect_netrsharesetinfo_rqst(tvbuff_t *tvb, int offset,
                                     char *drep)
 {
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server);
+                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server, 0);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_REF, "Share", hf_srvsvc_share);
+                       NDR_POINTER_REF, "Share", hf_srvsvc_share, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_info_level, 0);
@@ -3033,10 +3033,10 @@ srvsvc_dissect_netrsharedel_rqst(tvbuff_t *tvb, int offset,
                                     char *drep)
 {
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server);
+                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server, 0);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_REF, "Share", hf_srvsvc_share);
+                       NDR_POINTER_REF, "Share", hf_srvsvc_share, 0);
 
         offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
                                      hf_srvsvc_reserved, NULL);
@@ -3067,10 +3067,10 @@ srvsvc_dissect_netrsharedelsticky_rqst(tvbuff_t *tvb, int offset,
                                     char *drep)
 {
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server);
+                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server, 0);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_REF, "Share", hf_srvsvc_share);
+                       NDR_POINTER_REF, "Share", hf_srvsvc_share, 0);
 
         offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
                                      hf_srvsvc_reserved, NULL);
@@ -3101,10 +3101,10 @@ srvsvc_dissect_netrsharecheck_rqst(tvbuff_t *tvb, int offset,
                                     char *drep)
 {
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server);
+                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server, 0);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Char Device", hf_srvsvc_chrdev);
+                       NDR_POINTER_UNIQUE, "Char Device", hf_srvsvc_chrdev, 0);
 
        return offset;
 }
@@ -3137,7 +3137,7 @@ srvsvc_dissect_SERVER_INFO_100(tvbuff_t *tvb, int offset,
                        hf_srvsvc_platform_id, NULL);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server);
+                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server, 0);
 
        return offset;
 }
@@ -3161,7 +3161,7 @@ srvsvc_dissect_SERVER_INFO_101(tvbuff_t *tvb, int offset,
                        hf_srvsvc_platform_id, NULL);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server);
+                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_ver_major, NULL);
@@ -3173,7 +3173,7 @@ srvsvc_dissect_SERVER_INFO_101(tvbuff_t *tvb, int offset,
                        hf_srvsvc_server_type, NULL);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Comment", hf_srvsvc_comment);
+                       NDR_POINTER_UNIQUE, "Comment", hf_srvsvc_comment, 0);
 
        return offset;
 }
@@ -3204,7 +3204,7 @@ srvsvc_dissect_SERVER_INFO_102(tvbuff_t *tvb, int offset,
                        hf_srvsvc_platform_id, NULL);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server);
+                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_ver_major, NULL);
@@ -3216,7 +3216,7 @@ srvsvc_dissect_SERVER_INFO_102(tvbuff_t *tvb, int offset,
                        hf_srvsvc_server_type, NULL);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Comment", hf_srvsvc_comment);
+                       NDR_POINTER_UNIQUE, "Comment", hf_srvsvc_comment, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_users, NULL);
@@ -3237,7 +3237,7 @@ srvsvc_dissect_SERVER_INFO_102(tvbuff_t *tvb, int offset,
                        hf_srvsvc_licences, NULL);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "User Path", hf_srvsvc_user_path);
+                       NDR_POINTER_UNIQUE, "User Path", hf_srvsvc_user_path, 0);
 
        return offset;
 }
@@ -3291,7 +3291,7 @@ srvsvc_dissect_SERVER_INFO_402(tvbuff_t *tvb, int offset,
                        hf_srvsvc_alist_mtime, NULL);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Alerts", hf_srvsvc_alerts);
+                       NDR_POINTER_UNIQUE, "Alerts", hf_srvsvc_alerts, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_security, NULL);
@@ -3303,7 +3303,7 @@ srvsvc_dissect_SERVER_INFO_402(tvbuff_t *tvb, int offset,
                        hf_srvsvc_lanmask, NULL);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Guest", hf_srvsvc_guest);
+                       NDR_POINTER_UNIQUE, "Guest", hf_srvsvc_guest, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_chdevs, NULL);
@@ -3370,7 +3370,7 @@ srvsvc_dissect_SERVER_INFO_402(tvbuff_t *tvb, int offset,
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                        NDR_POINTER_UNIQUE, "Server Heuristics", 
-                       hf_srvsvc_srvheuristics);
+                       hf_srvsvc_srvheuristics, 0);
 
        return offset;
 }
@@ -3427,7 +3427,7 @@ srvsvc_dissect_SERVER_INFO_403(tvbuff_t *tvb, int offset,
                        hf_srvsvc_alist_mtime, NULL);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Alerts", hf_srvsvc_alerts);
+                       NDR_POINTER_UNIQUE, "Alerts", hf_srvsvc_alerts, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_security, NULL);
@@ -3439,7 +3439,7 @@ srvsvc_dissect_SERVER_INFO_403(tvbuff_t *tvb, int offset,
                        hf_srvsvc_lanmask, NULL);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Guest", hf_srvsvc_guest);
+                       NDR_POINTER_UNIQUE, "Guest", hf_srvsvc_guest, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_chdevs, NULL);
@@ -3506,7 +3506,7 @@ srvsvc_dissect_SERVER_INFO_403(tvbuff_t *tvb, int offset,
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                        NDR_POINTER_UNIQUE, "Server Heuristics", 
-                       hf_srvsvc_srvheuristics);
+                       hf_srvsvc_srvheuristics, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_auditedevents, NULL);
@@ -3515,7 +3515,7 @@ srvsvc_dissect_SERVER_INFO_403(tvbuff_t *tvb, int offset,
                        hf_srvsvc_auditprofile, NULL);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Autopath", hf_srvsvc_autopath);
+                       NDR_POINTER_UNIQUE, "Autopath", hf_srvsvc_autopath, 0);
 
        return offset;
 }
@@ -3710,7 +3710,7 @@ srvsvc_dissect_SERVER_INFO_503(tvbuff_t *tvb, int offset,
                        hf_srvsvc_lmannounce, NULL);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Domain", hf_srvsvc_domain);
+                       NDR_POINTER_UNIQUE, "Domain", hf_srvsvc_domain, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_maxcopyreadlen, NULL);
@@ -3905,7 +3905,7 @@ srvsvc_dissect_SERVER_INFO_599(tvbuff_t *tvb, int offset,
                        hf_srvsvc_lmannounce, NULL);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Domain", hf_srvsvc_domain);
+                       NDR_POINTER_UNIQUE, "Domain", hf_srvsvc_domain, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_maxcopyreadlen, NULL);
@@ -4035,7 +4035,7 @@ srvsvc_dissect_SERVER_INFO_1005(tvbuff_t *tvb, int offset,
                                   char *drep)
 {
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Comment", hf_srvsvc_comment);
+                       NDR_POINTER_UNIQUE, "Comment", hf_srvsvc_comment, 0);
 
        return offset;
 }
@@ -5290,7 +5290,7 @@ srvsvc_dissect_netrservergetinfo_rqst(tvbuff_t *tvb, int offset,
                tvb, offset, pinfo, tree, drep,
                dissect_ndr_nt_UNICODE_STRING_str, NDR_POINTER_UNIQUE,
                "Server", hf_srvsvc_server, cb_str_postprocess,
-               GINT_TO_POINTER(CB_STR_COL_INFO | CB_STR_ITEM));
+               GINT_TO_POINTER(CB_STR_COL_INFO | 1));
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_info_level, 0);
@@ -5326,7 +5326,7 @@ srvsvc_dissect_netrserversetinfo_rqst(tvbuff_t *tvb, int offset,
                                     char *drep)
 {
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server);
+                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_info_level, 0);
@@ -5434,7 +5434,7 @@ srvsvc_dissect_netrserverdiskenum_rqst(tvbuff_t *tvb, int offset,
                                     char *drep)
 {
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server);
+                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_info_level, 0);
@@ -5561,10 +5561,10 @@ srvsvc_dissect_netrserverstatisticsget_rqst(tvbuff_t *tvb, int offset,
                                     char *drep)
 {
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server);
+                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server, 0);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Service", hf_srvsvc_service);
+                       NDR_POINTER_UNIQUE, "Service", hf_srvsvc_service, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                hf_srvsvc_info_level, 0);
@@ -5637,7 +5637,7 @@ srvsvc_dissect_TRANSPORT_INFO_0(tvbuff_t *tvb, int offset,
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                        NDR_POINTER_UNIQUE, "Name", 
-                       hf_srvsvc_transport_name);
+                       hf_srvsvc_transport_name, 0);
 
        offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_TRANSPORT_ADDRESS,
@@ -5648,7 +5648,7 @@ srvsvc_dissect_TRANSPORT_INFO_0(tvbuff_t *tvb, int offset,
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                        NDR_POINTER_UNIQUE, "Network Address", 
-                       hf_srvsvc_transport_networkaddress);
+                       hf_srvsvc_transport_networkaddress, 0);
 
        return offset;
 }
@@ -5703,7 +5703,7 @@ srvsvc_dissect_TRANSPORT_INFO_1(tvbuff_t *tvb, int offset,
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                        NDR_POINTER_UNIQUE, "Name", 
-                       hf_srvsvc_transport_name);
+                       hf_srvsvc_transport_name, 0);
 
        offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_TRANSPORT_ADDRESS,
@@ -5714,10 +5714,10 @@ srvsvc_dissect_TRANSPORT_INFO_1(tvbuff_t *tvb, int offset,
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                        NDR_POINTER_UNIQUE, "Network Address", 
-                       hf_srvsvc_transport_networkaddress);
+                       hf_srvsvc_transport_networkaddress, 0);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Domain", hf_srvsvc_domain);
+                       NDR_POINTER_UNIQUE, "Domain", hf_srvsvc_domain, 0);
 
        return offset;
 }
@@ -5823,7 +5823,7 @@ srvsvc_dissect_netrservertransportadd_rqst(tvbuff_t *tvb, int offset,
                                     char *drep)
 {
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server);
+                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                hf_srvsvc_info_level, 0);
@@ -5860,7 +5860,7 @@ srvsvc_dissect_netrservertransportenum_rqst(tvbuff_t *tvb, int offset,
                                     char *drep)
 {
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server);
+                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server, 0);
 
        offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_SERVER_XPORT_ENUM_STRUCT,
@@ -5911,7 +5911,7 @@ srvsvc_dissect_netrservertransportdel_rqst(tvbuff_t *tvb, int offset,
                                     char *drep)
 {
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server);
+                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                hf_srvsvc_info_level, 0);
@@ -6006,7 +6006,7 @@ srvsvc_dissect_netrremotetod_rqst(tvbuff_t *tvb, int offset,
                                     char *drep)
 {
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server);
+                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server, 0);
 
        return offset;
 }
@@ -6039,10 +6039,10 @@ srvsvc_dissect_netrsetserverservicebits_rqst(tvbuff_t *tvb, int offset,
                                     char *drep)
 {
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server);
+                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server, 0);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Transport", hf_srvsvc_transport);
+                       NDR_POINTER_UNIQUE, "Transport", hf_srvsvc_transport, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                hf_srvsvc_service_bits, NULL);
@@ -6077,10 +6077,10 @@ srvsvc_dissect_netrpathtype_rqst(tvbuff_t *tvb, int offset,
                                     char *drep)
 {
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server);
+                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server, 0);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_REF, "Path", hf_srvsvc_path);
+                       NDR_POINTER_REF, "Path", hf_srvsvc_path, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_path_flags, NULL);
@@ -6117,16 +6117,16 @@ srvsvc_dissect_netrpathcanonicalize_rqst(tvbuff_t *tvb, int offset,
                                     char *drep)
 {
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server);
+                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server, 0);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_REF, "Path", hf_srvsvc_path);
+                       NDR_POINTER_REF, "Path", hf_srvsvc_path, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_outbuflen, NULL);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_REF, "Prefix", hf_srvsvc_prefix);
+                       NDR_POINTER_REF, "Prefix", hf_srvsvc_prefix, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_path_type, NULL);
@@ -6182,13 +6182,13 @@ srvsvc_dissect_netrpathcompare_rqst(tvbuff_t *tvb, int offset,
                                     char *drep)
 {
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server);
+                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server, 0);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_REF, "Path 1", hf_srvsvc_path);
+                       NDR_POINTER_REF, "Path 1", hf_srvsvc_path, 0);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_REF, "Path 2", hf_srvsvc_path);
+                       NDR_POINTER_REF, "Path 2", hf_srvsvc_path, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_path_type, NULL);
@@ -6224,10 +6224,10 @@ srvsvc_dissect_netrnamevalidate_rqst(tvbuff_t *tvb, int offset,
                                     char *drep)
 {
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server);
+                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server, 0);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_REF, "Path", hf_srvsvc_path);
+                       NDR_POINTER_REF, "Path", hf_srvsvc_path, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_path_type, NULL);
@@ -6264,10 +6264,10 @@ srvsvc_dissect_netrnamecanonicalize_rqst(tvbuff_t *tvb, int offset,
                                     char *drep)
 {
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server);
+                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server, 0);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_REF, "Path", hf_srvsvc_path);
+                       NDR_POINTER_REF, "Path", hf_srvsvc_path, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_outbuflen, NULL);
@@ -6323,13 +6323,13 @@ srvsvc_dissect_netrnamecompare_rqst(tvbuff_t *tvb, int offset,
                                     char *drep)
 {
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server);
+                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server, 0);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_REF, "Path 1", hf_srvsvc_path);
+                       NDR_POINTER_REF, "Path 1", hf_srvsvc_path, 0);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_REF, "Path 2", hf_srvsvc_path);
+                       NDR_POINTER_REF, "Path 2", hf_srvsvc_path, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_path_type, NULL);
@@ -6366,7 +6366,7 @@ srvsvc_dissect_netrshareenumsticky_rqst(tvbuff_t *tvb, int offset,
                                     char *drep)
 {
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server);
+                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server, 0);
 
        offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
                        srvsvc_dissect_SHARE_ENUM_STRUCT,
@@ -6418,10 +6418,10 @@ srvsvc_dissect_netrsharedelstart_rqst(tvbuff_t *tvb, int offset,
                                     char *drep)
 {
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server);
+                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server, 0);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_REF, "Share", hf_srvsvc_share);
+                       NDR_POINTER_REF, "Share", hf_srvsvc_share, 0);
 
         offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
                                      hf_srvsvc_reserved, NULL);
@@ -6488,13 +6488,13 @@ srvsvc_dissect_netrgetfilesecurity_rqst(tvbuff_t *tvb, int offset,
                                     char *drep)
 {
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server);
+                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server, 0);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Share", hf_srvsvc_share);
+                       NDR_POINTER_UNIQUE, "Share", hf_srvsvc_share, 0);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_REF, "Path", hf_srvsvc_path);
+                       NDR_POINTER_REF, "Path", hf_srvsvc_path, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_info_level, 0);
@@ -6532,13 +6532,13 @@ srvsvc_dissect_netrsetfilesecurity_rqst(tvbuff_t *tvb, int offset,
                                     char *drep)
 {
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server);
+                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server, 0);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Share", hf_srvsvc_share);
+                       NDR_POINTER_UNIQUE, "Share", hf_srvsvc_share, 0);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_REF, "Path", hf_srvsvc_path);
+                       NDR_POINTER_REF, "Path", hf_srvsvc_path, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_info_level, 0);
@@ -6574,7 +6574,7 @@ srvsvc_dissect_netrservertransportaddex_rqst(tvbuff_t *tvb, int offset,
                                     char *drep)
 {
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server);
+                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_info_level, 0);
@@ -6613,14 +6613,14 @@ srvsvc_dissect_netrserversetservicebits2_rqst(tvbuff_t *tvb, int offset,
                                     char *drep)
 {
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server);
+                       NDR_POINTER_UNIQUE, "Server", hf_srvsvc_server, 0);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                        NDR_POINTER_UNIQUE, "Emulated Server", 
-                       hf_srvsvc_emulated_server);
+                       hf_srvsvc_emulated_server, 0);
 
         offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
-                       NDR_POINTER_UNIQUE, "Transport", hf_srvsvc_transport);
+                       NDR_POINTER_UNIQUE, "Transport", hf_srvsvc_transport, 0);
 
        offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
                        hf_srvsvc_service_bits_of_interest, NULL);
index 2b0df3e2e5352251548dc74c74ef21103a63ba39..6256fcea8780bbfee9c2f775559f62d1cf5df0fd 100644 (file)
@@ -2,7 +2,7 @@
  * Routines for DCERPC TAPI packet disassembly
  * Copyright 2002, Ronnie Sahlberg
  *
- * $Id: packet-dcerpc-tapi.c,v 1.4 2003/01/28 06:39:41 tpot Exp $
+ * $Id: packet-dcerpc-tapi.c,v 1.5 2003/01/30 08:19:39 guy Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -79,11 +79,11 @@ dissect_tapi_UNKNOWN_00_rqst(tvbuff_t *tvb, int offset,
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                        NDR_POINTER_REF, "unknown string", 
-                        hf_tapi_unknown_string);
+                        hf_tapi_unknown_string, 0);
 
        offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep,
                        NDR_POINTER_REF, "unknown string", 
-                        hf_tapi_unknown_string);
+                        hf_tapi_unknown_string, 0);
 
        return offset;
 }