summaryrefslogtreecommitdiff
path: root/source4/librpc/idl/drsuapi.idl
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2005-05-13 12:22:21 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:16:43 -0500
commit6f760656907efde6f96bed0e97380b7da7eb045f (patch)
treec70e32a17a6a2501c2611a8951a9c18ddb6db1f0 /source4/librpc/idl/drsuapi.idl
parent0b8b29f070ea27ce3b9a7fe88bbe85927f7bd868 (diff)
downloadsamba-6f760656907efde6f96bed0e97380b7da7eb045f.tar.gz
samba-6f760656907efde6f96bed0e97380b7da7eb045f.tar.bz2
samba-6f760656907efde6f96bed0e97380b7da7eb045f.zip
r6781: -add some comments on how attributes and objectClasses are identified in DRSUAPI
-and some comments on what the attribute syntaxes matches what internal datatypes metze (This used to be commit 58c6887da48c2ebdec14529cb81e7589101f7aae)
Diffstat (limited to 'source4/librpc/idl/drsuapi.idl')
-rw-r--r--source4/librpc/idl/drsuapi.idl85
1 files changed, 83 insertions, 2 deletions
diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl
index 94ec5bf1bc..16b8da82b8 100644
--- a/source4/librpc/idl/drsuapi.idl
+++ b/source4/librpc/idl/drsuapi.idl
@@ -282,9 +282,90 @@ interface drsuapi
[size_is(count)] drsuapi_DsReplicaCoursor2 coursors[];
} drsuapi_DsReplicaCoursor2CtrEx;
+ /*
+ * In DRSUAPI the objectClasses and attributes
+ * are identified by uint32 values, but in the schema
+ * they are identified by the governsID (objectClasses)
+ * and attributeID (attributes)
+ *
+ * the following table shows the mapping used between the two representations
+ * e.g. - objectClass 'nTDSDSA' has governsID: 1.2.840.113556.1.5.7000.47
+ * and a UINT32-ID of '0x0017002F'.
+ * - so the OID 1.2.840.113556.1.5.7000.47 is splitted into a
+ * OID-prefix: 1.2.840.113556.1.5.7000
+ * and a value: 47 => 0x2F
+ * - the mapping table gives a UINT32-prefix: 0x00170000
+ * - and the UINT32-ID is 0x0017002F = 0x00170000 | 0x2F
+ *
+ * OID-prefix => UINT32-Id prefix
+ *
+ * 2.5.4.* => 0x00000000 (standard attributes RFC2256 core.schema)
+ * 2.5.6.* => 0x00010000 (standard object classes RFC2256 core.schema)
+ * 1.2.840.113556.1.2.* => 0x00020000
+ * 1.2.840.113556.1.3.* => 0x00030000
+ * 1.2.840.113556.1.4.* => 0x00090000
+ * 1.2.840.113556.1.5.* => 0x000A0000
+ * 2.16.840.1.113730.3.* => 0x00140000
+ * 0.9.2342.19200300.100.1.* => 0x00150000
+ * 2.16.840.1.113730.3.1.* => 0x00160000
+ * 1.2.840.113556.1.5.7000.* => 0x00170000
+ * 2.5.20.* => 0x001A0000
+ * 2.16.840.1.113730.3.2.* => 0x001C0000
+ * 1.3.6.1.4.1.250.1.* => 0x001D0000
+ * 0.9.2342.19200300.100.4.* => 0x001F0000
+ *
+ * 1.2.840.113549.1.9.* (unstructuredAddress,unstructuredName)
+ * 1.3.6.1.4.1.1466.101.119.2 (dynamicObject)
+ * 1.3.6.1.4.1.1466.101.119.3 (entryTTL)
+ * 2.5.18.* (createTimeStamp,modifyTimeStamp, SubSchema)
+ * 2.5.21.* (attrs for SubSchema)
+ *
+ * Here's a list of used 'attributeSyntax' OID's
+ *
+ * 2.5.5.1 => Object(DS-DN) string
+ * struct drsuapi_DsObjectIdentifier3
+ *
+ * 2.5.5.2 => OID-string
+ * => mayContain, mustContain... also have this syntax but have string values
+ *
+ * 2.5.5.4 => String(Teletex) case-insensitive string with teletex charset
+ *
+ * 2.5.5.5 => String(IA5) case-sensitive string
+ *
+ * 2.5.5.6 => String(Numeric)
+ * => eg. internationalISDNNumber
+ *
+ * 2.5.5.7 => Object(DN-Binary) B:<byte count>:<bytes>:<object DN>
+ * => e.g. wellKnownObjects
+ *
+ * 2.5.5.8 => BOOL
+ *
+ * 2.5.5.9 => int32
+ *
+ * 2.5.5.10 => DATA_BLOB
+ * => struct GUID
+ *
+ * 2.5.5.11 => LDAP timestring
+ * => NTTIME_1sec
+ *
+ * 2.5.5.12 => String(Unicode) case-insensitive string
+ * => 'standard strings'
+ *
+ * 2.5.5.13 => Object(Presentation-Address) string
+ * => used in objectClass applicationEntity
+ *
+ * 2.5.5.14 => Object(DN-String) S:<char count>:<string>:<object DN>
+ * => not used
+ *
+ * 2.5.5.15 => ntSecurityDescriptor
+ *
+ * 2.5.5.16 => int64
+ *
+ * 2.5.5.17 => dom_sid
+ */
+
typedef [v1_enum] enum {
- DRSUAPI_OBJECTCLASS_top = 0x00010000,
- DRSUAPI_OBJECTCLASS_test = 0x00000000
+ DRSUAPI_OBJECTCLASS_top = 0x00010000
} drsuapi_DsObjectClassId;
typedef [v1_enum,public] enum {