diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2008-12-12 19:52:06 +0100 |
---|---|---|
committer | Jelmer Vernooij <jelmer@samba.org> | 2008-12-12 19:52:06 +0100 |
commit | c4fc0b49f05f56174dc904a19d9e4dfc6d3ef523 (patch) | |
tree | a78940284a07c1b2f3d9f199f5c1f5a7a0ef556e /source4/librpc/idl | |
parent | 0727fbe87d0016a3b18dbdfedcd417126e1aa514 (diff) | |
download | samba-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.idl | 8 |
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; - } - |