summaryrefslogtreecommitdiffstats
path: root/source4/librpc/idl
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2008-12-12 19:52:06 +0100
committerJelmer Vernooij <jelmer@samba.org>2008-12-12 19:52:06 +0100
commitc4fc0b49f05f56174dc904a19d9e4dfc6d3ef523 (patch)
treea78940284a07c1b2f3d9f199f5c1f5a7a0ef556e /source4/librpc/idl
parent0727fbe87d0016a3b18dbdfedcd417126e1aa514 (diff)
downloadsamba-c4fc0b49f05f56174dc904a19d9e4dfc6d3ef523.tar.gz
samba-c4fc0b49f05f56174dc904a19d9e4dfc6d3ef523.tar.xz
samba-c4fc0b49f05f56174dc904a19d9e4dfc6d3ef523.zip
Manually marshall dom_sid, so we can use a fixed size array for
dom_sid.sub_auths rather than a dynamically allocated one. This makes it possible to use the same DCE/RPC object code for Samba 3 and Samba 4's DCE/RPC parsers and allows copying sids more easily (since they no longer contain any pointers). The cost of having additional manual marshalling code is limited (~35 additional lines of C code).
Diffstat (limited to 'source4/librpc/idl')
-rw-r--r--source4/librpc/idl/dom_sid.idl8
1 files changed, 2 insertions, 6 deletions
diff --git a/source4/librpc/idl/dom_sid.idl b/source4/librpc/idl/dom_sid.idl
index 1fc8ee21655..40712fc3711 100644
--- a/source4/librpc/idl/dom_sid.idl
+++ b/source4/librpc/idl/dom_sid.idl
@@ -22,13 +22,11 @@ cpp_quote("#define dom_sid0 dom_sid")
]
interface dom_sid
{
- /* a domain SID. Note that unlike Samba3 this contains a pointer,
- so you can't copy them using assignment */
- typedef [public,gensize,noprint,nosize] struct {
+ typedef [public,gensize,noprint,nosize,nopull,nopush] struct {
uint8 sid_rev_num; /**< SID revision number */
[range(0,15)] int8 num_auths; /**< Number of sub-authorities */
uint8 id_auth[6]; /**< Identifier Authority */
- uint32 sub_auths[num_auths];
+ uint32 sub_auths[15];
} dom_sid;
/* id used to identify a endpoint, possibly in a cluster */
@@ -37,6 +35,4 @@ interface dom_sid
uint32 id2;
uint32 node;
} server_id;
-
}
-