diff options
author | Tim Potter <tpot@samba.org> | 2004-06-15 06:56:34 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 12:56:41 -0500 |
commit | 7c81205557cdf97f9da960148e68699f89e86918 (patch) | |
tree | 82cfcb31737ba085c6d47b03bf54c150e750a847 /source4/build/pidl/packet-dcerpc-eparser.h | |
parent | f62fffb1c5ba9a9a27e5573500ee96a61e4e1841 (diff) | |
download | samba-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.h | 41 |
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 */ |