summaryrefslogtreecommitdiff
path: root/source4/build/pidl/packet-dcerpc-eparser.h
diff options
context:
space:
mode:
authorTim Potter <tpot@samba.org>2004-06-15 06:56:34 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 12:56:41 -0500
commit7c81205557cdf97f9da960148e68699f89e86918 (patch)
tree82cfcb31737ba085c6d47b03bf54c150e750a847 /source4/build/pidl/packet-dcerpc-eparser.h
parentf62fffb1c5ba9a9a27e5573500ee96a61e4e1841 (diff)
downloadsamba-7c81205557cdf97f9da960148e68699f89e86918.tar.gz
samba-7c81205557cdf97f9da960148e68699f89e86918.tar.bz2
samba-7c81205557cdf97f9da960148e68699f89e86918.zip
r1152: Checkin of workarea. The parser can now dissect a big chunk of the samr
operations. Security descriptors and unions are still left to do. (This used to be commit f29fb9a3fc3b9b36518c4bff49e9c030a8a921ba)
Diffstat (limited to 'source4/build/pidl/packet-dcerpc-eparser.h')
-rw-r--r--source4/build/pidl/packet-dcerpc-eparser.h41
1 files changed, 32 insertions, 9 deletions
diff --git a/source4/build/pidl/packet-dcerpc-eparser.h b/source4/build/pidl/packet-dcerpc-eparser.h
index 9e5dfdd3c8..2e3d557bf7 100644
--- a/source4/build/pidl/packet-dcerpc-eparser.h
+++ b/source4/build/pidl/packet-dcerpc-eparser.h
@@ -48,6 +48,11 @@ struct ndr_ofs_list {
struct ndr_ofs_list *next;
};
+typedef long long gNTTIME;
+typedef long long gHYPER_T;
+//typedef unsigned long long guint64;
+//typedef long long gint64;
+
#include "packet-dcerpc-proto.h"
/* Create a ndr_pull structure from data stored in a tvb at a given offset. */
@@ -56,11 +61,11 @@ struct e_ndr_pull *ndr_pull_init(tvbuff_t *tvb, int offset, packet_info *pinfo,
proto_tree *tree, guint8 *drep);
void ndr_pull_free(struct e_ndr_pull *ndr);
void ndr_pull_ptr(struct e_ndr_pull *ndr, int hf, guint32 *ptr);
-void ndr_pull_level(struct e_ndr_pull *ndr, int hf, int *ptr);
+void ndr_pull_level(struct e_ndr_pull *ndr, int hf, gint16 *data);
void ndr_pull_NTSTATUS(struct e_ndr_pull *ndr, int hf);
-void ndr_pull_uint8(struct e_ndr_pull *ndr, int hf);
-void ndr_pull_uint16(struct e_ndr_pull *ndr, int hf);
-void ndr_pull_uint32(struct e_ndr_pull *ndr, int hf);
+void ndr_pull_uint8(struct e_ndr_pull *ndr, int hf, guint8 *data);
+void ndr_pull_uint16(struct e_ndr_pull *ndr, int hf, guint16 *data);
+void ndr_pull_uint32(struct e_ndr_pull *ndr, int hf, guint32 *data);
void ndr_pull_policy_handle(struct e_ndr_pull *ndr, int hf);
void ndr_pull_advance(struct e_ndr_pull *ndr, int offset);
void ndr_pull_subcontext_flags_fn(struct e_ndr_pull *ndr, size_t sub_size,
@@ -72,16 +77,34 @@ void ndr_pull_subcontext_header(struct e_ndr_pull *ndr,
void ndr_pull_struct_start(struct e_ndr_pull *ndr);
void ndr_pull_struct_end(struct e_ndr_pull *ndr);
void ndr_pull_align(struct e_ndr_pull *ndr, int size);
-void ndr_pull_NTTIME(struct e_ndr_pull *e_ndr, int hf);
-void ndr_pull_HYPER_T(struct e_ndr_pull *e_ndr, int hf);
-void ndr_pull_int64(struct e_ndr_pull *e_ndr, int hf);
-void ndr_pull_uint64(struct e_ndr_pull *e_ndr, int hf);
+void ndr_pull_NTTIME(struct e_ndr_pull *e_ndr, int hf, gNTTIME *data);
+void ndr_pull_HYPER_T(struct e_ndr_pull *e_ndr, int hf, gHYPER_T *data);
+void ndr_pull_int64(struct e_ndr_pull *e_ndr, int hf, gint64 *data);
+void ndr_pull_uint64(struct e_ndr_pull *e_ndr, int hf, guint64 *data);
void ndr_pull_string(struct e_ndr_pull *e_ndr, int hf);
-void ndr_pull_dom_sid2(struct e_ndr_pull *e_ndr, int hf);
+void ndr_pull_dom_sid2(struct e_ndr_pull *e_ndr, int flags);
void ndr_pull_security_descriptor(struct e_ndr_pull *e_ndr, int hf);
void ndr_pull_relative(struct e_ndr_pull *ndr,
void (*fn)(struct e_ndr_pull *, int ndr_flags));
+int lsa_dissect_LSA_SECURITY_DESCRIPTOR(tvbuff_t tvb, int offset,
+ packet_info *pinfo, proto_tree *tree,
+ guint8 *drep);
+
+int lsa_dissect_LSA_SECURITY_DESCRIPTOR_data(tvbuff_t tvb, int offset,
+ packet_info *pinfo, proto_tree *tree,
+ guint8 *drep);
+
+int lsa_dissect_POLICY_DNS_DOMAIN_INFO(tvbuff_t tvb, int offset,
+ packet_info *pinfo, proto_tree *tree,
+ guint8 *drep);
+
+void ndr_pull_array_uint8(struct e_ndr_pull *ndr, int hf, int ndr_flags, guint32 n);
+void ndr_pull_array_uint32(struct e_ndr_pull *ndr, int hf, int ndr_flags, guint32 n);
+
+void ndr_pull_array(struct e_ndr_pull *ndr, int ndr_flags, guint32 n,
+ void (*fn)(struct e_ndr_pull *, int ndr_flags));
+
#endif /* _packet_dcerpc_eparser_h */