diff options
author | Andrew Tridgell <tridge@samba.org> | 2003-11-17 02:18:11 +0000 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2003-11-17 02:18:11 +0000 |
commit | 657b4d2abdad5691fc37bafe819f75cc440354b9 (patch) | |
tree | a66c51ef8e39efa62e5b7a5f9e2e227bd3138935 /source4/librpc/ndr/libndr.h | |
parent | cc5f231e95b2a322a1f1f118b8a3a363a0e4d0cc (diff) | |
download | samba-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.h | 20 |
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 { |