summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2003-11-22 01:27:40 +0000
committerAndrew Tridgell <tridge@samba.org>2003-11-22 01:27:40 +0000
commit2ca65a99c77d6d119617c330ce521a6137d71e35 (patch)
treea151ffdd02f08c27f77138532e65ad76cbad4a39
parent0a0f8b5e3a67b8577adf8ece28ed30a092d8f284 (diff)
downloadsamba-2ca65a99c77d6d119617c330ce521a6137d71e35.tar.gz
samba-2ca65a99c77d6d119617c330ce521a6137d71e35.tar.bz2
samba-2ca65a99c77d6d119617c330ce521a6137d71e35.zip
added some explanations for epmapper IDL and dom_sid2
(This used to be commit 5962f1cffa9273cc06c8a3c4a112f3ce94b84dae)
-rw-r--r--source4/librpc/idl/epmapper.idl13
-rw-r--r--source4/librpc/ndr/ndr_sec.h12
2 files changed, 24 insertions, 1 deletions
diff --git a/source4/librpc/idl/epmapper.idl b/source4/librpc/idl/epmapper.idl
index c58ceb1fc0..d2e34e4c31 100644
--- a/source4/librpc/idl/epmapper.idl
+++ b/source4/librpc/idl/epmapper.idl
@@ -12,6 +12,14 @@
interface epmapper
{
+ /*
+ note that the following IDL won't work in MIDL, and in fact
+ that the full towers/floors representation of epm cannot be
+ represented in MIDL at all. I decided to represent it using
+ the extended IDL syntax in pidl to make it easier to work
+ with.
+ */
+
typedef struct {
GUID uuid;
uint16 version;
@@ -36,6 +44,11 @@ interface epmapper
[subcontext(2)] epm_rhs rhs;
} epm_floor;
+ /* not that the NDR_NOALIGN flag is inherited by all nested
+ structures. All of the towers/floors stuff is
+ non-aligned. I wonder what sort of wicked substance these
+ guys were smoking?
+ */
typedef [flag(NDR_NOALIGN)] struct {
uint16 num_floors;
epm_floor floors[num_floors];
diff --git a/source4/librpc/ndr/ndr_sec.h b/source4/librpc/ndr/ndr_sec.h
index 27a1311adc..728d46535d 100644
--- a/source4/librpc/ndr/ndr_sec.h
+++ b/source4/librpc/ndr/ndr_sec.h
@@ -22,7 +22,17 @@
*/
-/* use the same structure for dom_sid2 as dom_sid */
+/*
+ use the same structure for dom_sid2 as dom_sid. A dom_sid2 is really
+ just a dom sid, but with the sub_auths represented as a conformant
+ array. As with all in-structure conformant arrays, the array length
+ is placed before the start of the structure. That's what gives rise
+ to the extra num_auths elemenent. We don't want the Samba code to
+ have to bother with such esoteric NDR details, so its easier to just
+ define it as a dom_sid and use pidl magic to make it all work. It
+ just means you need to mark a sid as a "dom_sid2" in the IDL when you
+ know it is of the conformant array variety
+*/
#define dom_sid2 dom_sid
/* query security descriptor */