summaryrefslogtreecommitdiff
path: root/source4/librpc/ndr/libndr.h
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2003-11-17 02:18:11 +0000
committerAndrew Tridgell <tridge@samba.org>2003-11-17 02:18:11 +0000
commit657b4d2abdad5691fc37bafe819f75cc440354b9 (patch)
treea66c51ef8e39efa62e5b7a5f9e2e227bd3138935 /source4/librpc/ndr/libndr.h
parentcc5f231e95b2a322a1f1f118b8a3a363a0e4d0cc (diff)
downloadsamba-657b4d2abdad5691fc37bafe819f75cc440354b9.tar.gz
samba-657b4d2abdad5691fc37bafe819f75cc440354b9.tar.bz2
samba-657b4d2abdad5691fc37bafe819f75cc440354b9.zip
nicer method of handling spoolss EnumPrinters
this also handles the return of several printers (an array of relative subcontexts) (This used to be commit 060421c7dc9aa611fe4160843a4f76498ab16bf4)
Diffstat (limited to 'source4/librpc/ndr/libndr.h')
-rw-r--r--source4/librpc/ndr/libndr.h20
1 files changed, 18 insertions, 2 deletions
diff --git a/source4/librpc/ndr/libndr.h b/source4/librpc/ndr/libndr.h
index f5e64ec872..b826e024f9 100644
--- a/source4/librpc/ndr/libndr.h
+++ b/source4/librpc/ndr/libndr.h
@@ -23,6 +23,14 @@
*/
+/* offset lists are used to allow a push/pull function to find the
+ start of an encapsulating structure */
+struct ndr_ofs_list {
+ uint32 offset;
+ struct ndr_ofs_list *next;
+};
+
+
/* this is the base structure passed to routines that
parse MSRPC formatted data
@@ -37,14 +45,18 @@ struct ndr_pull {
uint32 data_size;
uint32 offset;
TALLOC_CTX *mem_ctx;
+
+ /* this points at a list of offsets to the structures being processed.
+ The first element in the list is the current structure */
+ struct ndr_ofs_list *ofs_list;
};
struct ndr_pull_save {
uint32 data_size;
uint32 offset;
+ struct ndr_pull_save *next;
};
-
/* structure passed to functions that generate NDR formatted data */
struct ndr_push {
uint32 flags; /* LIBNDR_FLAG_* */
@@ -53,8 +65,12 @@ struct ndr_push {
uint32 offset;
TALLOC_CTX *mem_ctx;
+ /* this points at a list of offsets to the structures being processed.
+ The first element in the list is the current structure */
+ struct ndr_ofs_list *ofs_list;
+
/* this list is used by the [relative] code to find the offsets */
- struct ndr_push_save *relative_list;
+ struct ndr_ofs_list *relative_list;
};
struct ndr_push_save {