Ignore:
Timestamp:
Nov 14, 2012, 12:59:34 PM (13 years ago)
Author:
Silvan Scherrer
Message:

Samba Server: update vendor to 3.6.0

File:
1 edited

Legend:

Unmodified
Added
Removed
  • vendor/current/librpc/idl/drsblobs.idl

    r414 r740  
    11#include "idl_types.h"
    22
    3 import "drsuapi.idl", "misc.idl", "samr.idl", "lsa.idl";
     3import "drsuapi.idl", "misc.idl", "samr.idl", "lsa.idl", "security.idl";
    44
    55[
     
    1111]
    1212interface drsblobs {
    13         typedef bitmap drsuapi_DsReplicaSyncOptions drsuapi_DsReplicaSyncOptions;
    14         typedef bitmap drsuapi_DsReplicaNeighbourFlags drsuapi_DsReplicaNeighbourFlags;
     13        typedef bitmap drsuapi_DrsOptions drsuapi_DrsOptions;
    1514        typedef [v1_enum] enum drsuapi_DsAttributeId drsuapi_DsAttributeId;
    1615        typedef [v1_enum] enum lsa_TrustAuthType lsa_TrustAuthType;
     
    3130        typedef struct {
    3231                uint32 count;
    33                 uint32 reserved;
     32                [value(0)] uint32 reserved;
    3433                replPropertyMetaData1 array[count];
    3534        } replPropertyMetaDataCtr1;
     
    4140        typedef [public] struct {
    4241                uint32 version;
    43                 uint32 reserved;
     42                [value(0)] uint32 reserved;
    4443                [switch_is(version)] replPropertyMetaDataCtr ctr;
    4544        } replPropertyMetaDataBlob;
     
    5655        typedef struct {
    5756                uint32 count;
    58                 uint32 reserved;
     57                [value(0)] uint32 reserved;
    5958                drsuapi_DsReplicaCursor cursors[count];
    6059        } replUpToDateVectorCtr1;
     
    6261        typedef struct {
    6362                uint32 count;
    64                 uint32 reserved;
     63                [value(0)] uint32 reserved;
    6564                drsuapi_DsReplicaCursor2 cursors[count];
    6665        } replUpToDateVectorCtr2;
     
    7372        typedef [public] struct {
    7473                uint32 version;
    75                 uint32 reserved;
     74                [value(0)] uint32 reserved;
    7675                [switch_is(version)] replUpToDateVectorCtr ctr;
    7776        } replUpToDateVectorBlob;
     
    9493        typedef [public,gensize,flag(NDR_PAHEX)] struct {
    9594                /* this includes the 8 bytes of the repsFromToBlob header */
    96                 [value(ndr_size_repsFromTo1(this, ndr->iconv_convenience, ndr->flags)+8)] uint32 blobsize;
     95                [value(ndr_size_repsFromTo1(this, ndr->flags)+8)] uint32 blobsize;
    9796                uint32 consecutive_sync_failures;
    9897                NTTIME_1sec last_success;
     
    10099                WERROR result_last_attempt;
    101100                [relative] repsFromTo1OtherInfo *other_info;
    102                 [value(ndr_size_repsFromTo1OtherInfo(other_info, ndr->iconv_convenience, ndr->flags))] uint32 other_info_length;
    103                 drsuapi_DsReplicaNeighbourFlags replica_flags;
     101                [value(ndr_size_repsFromTo1OtherInfo(other_info, ndr->flags))] uint32 other_info_length;
     102                drsuapi_DrsOptions replica_flags;
    104103                uint8 schedule[84];
    105                 uint32 reserved;
     104                [value(0)] uint32 reserved;
    106105                drsuapi_DsReplicaHighWaterMark highwatermark;
    107106                GUID source_dsa_obj_guid; /* the 'objectGuid' field of the CN=NTDS Settings object */
     
    111110
    112111        typedef [public,relative_base,gensize] struct {
    113                 [value(ndr_size_repsFromTo2OtherInfo(this,ndr->iconv_convenience, ndr->flags))]
     112                [value(ndr_size_repsFromTo2OtherInfo(this,ndr->flags))]
    114113                        uint32 __ndr_size;
    115114                [relative] nstring *dns_name1;
     
    121120        typedef [public,gensize,flag(NDR_PAHEX)] struct {
    122121                /* this includes the 8 bytes of the repsFromToBlob header */
    123                 [value(ndr_size_repsFromTo2(this, ndr->iconv_convenience, ndr->flags)+8)] uint32 blobsize;
     122                [value(ndr_size_repsFromTo2(this, ndr->flags)+8)] uint32 blobsize;
    124123                uint32 consecutive_sync_failures;
    125124                NTTIME_1sec last_success;
     
    127126                WERROR result_last_attempt;
    128127                [relative] repsFromTo2OtherInfo *other_info;
    129                 [value(ndr_size_repsFromTo2OtherInfo(other_info, ndr->iconv_convenience, ndr->flags))] uint32 other_info_length;
    130                 drsuapi_DsReplicaNeighbourFlags replica_flags;
     128                [value(ndr_size_repsFromTo2OtherInfo(other_info, ndr->flags))] uint32 other_info_length;
     129                drsuapi_DrsOptions replica_flags;
    131130                uint8 schedule[84];
    132                 uint32 reserved;
     131                [value(0)] uint32 reserved;
    133132                drsuapi_DsReplicaHighWaterMark highwatermark;
    134133                GUID source_dsa_obj_guid; /* the 'objectGuid' field of the CN=NTDS Settings object */
     
    145144        typedef [public] struct {
    146145                uint32 version;
    147                 uint32 reserved;
     146                [value(0)] uint32 reserved;
    148147                [switch_is(version)] repsFromTo ctr;
    149148        } repsFromToBlob;
     
    169168        typedef [public] struct {
    170169                uint32 version;
    171                 uint32 reserved;
     170                [value(0)] uint32 reserved;
    172171                [switch_is(version)] partialAttributeSetCtr ctr;
    173172        } partialAttributeSetBlob;
     
    176175                [in] partialAttributeSetBlob blob
    177176                );
     177
     178
     179        /*
     180         * schemaInfo attribute
     181         *
     182         * Used as an attribute on Schema.
     183         * Also during replication as part of
     184         * prefixMap to identify what revision
     185         * of Schema source DC has
     186         */
     187        typedef [public,flag(NDR_NOALIGN)] struct {
     188                [value(0xFF)] uint8 marker;
     189                [flag(NDR_BIG_ENDIAN)] uint32 revision;
     190                GUID   invocation_id;
     191        } schemaInfoBlob;
     192
     193
     194        /*
     195         * MS w2k3 and w2k8 prefixMap format
     196         * There is no version number. Format is:
     197         *   uint32 - number of entries in the map
     198         *   uint32 - total bytes that structure occupies
     199         *   ENTRIES:
     200         *     uint16 - prefix ID (OID's last sub-id encoded. see prefixMap)
     201         *     uint16 - number of bytes in prefix N
     202         *     uint8[N] - BER encoded prefix
     203         */
     204        typedef [noprint,flag(NDR_NOALIGN)] struct {
     205                uint16 entryID;
     206                uint16 length;
     207                uint8 binary_oid[length];
     208        } drsuapi_MSPrefixMap_Entry;
     209
     210        typedef [public,gensize] struct {
     211                uint32 num_entries;
     212                [value(ndr_size_drsuapi_MSPrefixMap_Ctr(r, ndr->flags))] uint32 __ndr_size;
     213                drsuapi_MSPrefixMap_Entry entries[num_entries];
     214        } drsuapi_MSPrefixMap_Ctr;
    178215
    179216        /*
     
    197234        typedef [public] struct {
    198235                prefixMapVersion version;
    199                 uint32 reserved;
     236                [value(0)] uint32 reserved;
    200237                [switch_is(version)] prefixMapCtr ctr;
    201238        } prefixMapBlob;
     
    219256                uint32 u2;
    220257                uint32 u3;
    221                 [value(ndr_size_ldapControlDirSyncExtra(&extra, extra.uptodateness_vector.version, ndr->iconv_convenience, 0))]
     258                [value(ndr_size_ldapControlDirSyncExtra(&extra, extra.uptodateness_vector.version, 0))]
    222259                        uint32 extra_length;
    223260                drsuapi_DsReplicaHighWaterMark highwatermark;
     
    280317        typedef [public] struct {
    281318                [value(0)] uint32 unknown1;
    282                 [value(ndr_size_supplementalCredentialsSubBlob(&sub, ndr->iconv_convenience, ndr->flags))] uint32 __ndr_size;
     319                [value(ndr_size_supplementalCredentialsSubBlob(&sub, ndr->flags))] uint32 __ndr_size;
    283320                [value(0)] uint32 unknown2;
    284321                [subcontext(0),subcontext_size(__ndr_size)] supplementalCredentialsSubBlob sub;
     
    432469                NTTIME LastUpdateTime;
    433470                lsa_TrustAuthType AuthType;
    434                
    435471                [switch_is(AuthType)] AuthInfo AuthInfo;
    436472                [flag(NDR_ALIGN4)] DATA_BLOB _pad;
    437473        } AuthenticationInformation;
    438474
    439         typedef [nopull,nopush,noprint] struct {
    440                 /* sizeis here is bogus, but this is here just for the structure */
    441                 [size_is(1)] AuthenticationInformation array[];
     475        /* count is not on the wire */
     476        typedef [public,nopull,nopush,gensize] struct {
     477                uint32 count;
     478                AuthenticationInformation array[count];
    442479        } AuthenticationInformationArray;
    443480
    444         /* This is nopull,nopush because we pass count down to the
    445          * manual parser of AuthenticationInformationArray */
    446         typedef [public,nopull,nopush,noprint,gensize] struct {
     481        /* we cannot use [relative] pointers here because Windows expects the
     482         * previous_offset to match the total size of the struct in case
     483         * the previous array is empty, see MS-LSAD 2.2.7.16 - gd */
     484        typedef [public,gensize,nopush] struct {
    447485                uint32 count;
    448                 [relative] AuthenticationInformationArray *current;
    449                 [relative] AuthenticationInformationArray *previous;
     486                [value((count > 0) ? 12 : 0)] uint32 current_offset;
     487                [value((count > 0) ? 12 + ndr_size_AuthenticationInformationArray(&current, ndr->flags) : 0)] uint32 previous_offset;
     488                [subcontext(0),subcontext_size((previous_offset)-(current_offset))] AuthenticationInformationArray current;
     489                [subcontext(0)] [flag(NDR_REMAINING)] AuthenticationInformationArray previous;
    450490        } trustAuthInOutBlob;
    451491
    452         void decode_trustAuthInOut(
     492        [nopython] void decode_trustAuthInOut(
    453493                [in] trustAuthInOutBlob blob
    454494                );
    455 
    456         typedef [public,gensize] struct {
    457                 uint32 count;
    458                 [relative] AuthenticationInformation *current[count];
    459         } trustCurrentPasswords;
    460495
    461496        typedef [public,nopull] struct {
    462497                uint8 confounder[512];
    463                 [subcontext(0),subcontext_size(outgoing_size)] trustCurrentPasswords outgoing;
    464                 [subcontext(0),subcontext_size(incoming_size)] trustCurrentPasswords incoming;
    465                 [value(ndr_size_trustCurrentPasswords(&outgoing, ndr->iconv_convenience, ndr->flags))] uint32 outgoing_size;
    466                 [value(ndr_size_trustCurrentPasswords(&incoming, ndr->iconv_convenience, ndr->flags))] uint32 incoming_size;
     498                [subcontext(0),subcontext_size(outgoing_size)] trustAuthInOutBlob outgoing;
     499                [subcontext(0),subcontext_size(incoming_size)] trustAuthInOutBlob incoming;
     500                [value(ndr_size_trustAuthInOutBlob(&outgoing, ndr->flags))] uint32 outgoing_size;
     501                [value(ndr_size_trustAuthInOutBlob(&incoming, ndr->flags))] uint32 incoming_size;
    467502        } trustDomainPasswords;
    468503
    469         void decode_trustDomainPasswords(
     504        [nopython] void decode_trustDomainPasswords(
    470505                [in] trustDomainPasswords blob
    471506                );
     
    548583        } ExtendedErrorInfoPtr;
    549584
    550         void decode_ExtendedErrorInfo (
     585        [nopython] void decode_ExtendedErrorInfo (
    551586                [in,subcontext(0xFFFFFC01)] ExtendedErrorInfoPtr ptr
    552587                );
     588
     589        /* MS-ADTS 7.1.6.9.3 msDS-TrustForestTrustInfo Attribute */
     590
     591        typedef struct {
     592                [value(strlen_m(string))] uint32 size;
     593                [charset(UTF8)] uint8 string[size];
     594        } ForestTrustString;
     595
     596        typedef [flag(NDR_NOALIGN)] struct {
     597                [value(ndr_size_dom_sid0(&sid, ndr->flags))] uint32 sid_size;
     598                [subcontext(0),subcontext_size(sid_size)] dom_sid sid;
     599                ForestTrustString dns_name;
     600                ForestTrustString netbios_name;
     601        } ForestTrustDataDomainInfo;
     602
     603        typedef [flag(NDR_NOALIGN)] struct {
     604                uint32 size;
     605                uint8 data[size];
     606        } ForestTrustDataBinaryData;
     607
     608        typedef [nodiscriminant] union {
     609                [case(FOREST_TRUST_TOP_LEVEL_NAME)] ForestTrustString name;
     610                [case(FOREST_TRUST_TOP_LEVEL_NAME_EX)] ForestTrustString name;
     611                [case(FOREST_TRUST_DOMAIN_INFO)] ForestTrustDataDomainInfo info;
     612                [default] ForestTrustDataBinaryData data;
     613        } ForestTrustData;
     614
     615        /* same as lsa_ForestTrustRecordType */
     616        typedef [enum8bit] enum {
     617                FOREST_TRUST_TOP_LEVEL_NAME = 0,
     618                FOREST_TRUST_TOP_LEVEL_NAME_EX = 1,
     619                FOREST_TRUST_DOMAIN_INFO = 2
     620        } ForestTrustInfoRecordType;
     621
     622        /* meaning of flags depends on record type and values are
     623           the same as in lsa.idl, see collision record types */
     624        typedef [public,gensize,flag(NDR_NOALIGN)] struct {
     625                uint32 flags;
     626                NTTIME timestamp;
     627                ForestTrustInfoRecordType type;
     628                [switch_is(type)] ForestTrustData data;
     629        } ForestTrustInfoRecord;
     630
     631        typedef [flag(NDR_NOALIGN)] struct {
     632                [value(ndr_size_ForestTrustInfoRecord(&record, ndr->flags))] uint32 record_size;
     633                ForestTrustInfoRecord record;
     634        } ForestTrustInfoRecordArmor;
     635
     636        typedef [public,flag(NDR_NOALIGN)] struct {
     637                uint32 version;
     638                uint32 count;
     639                ForestTrustInfoRecordArmor records[count];
     640        } ForestTrustInfo;
     641
     642        [nopython] void decode_ForestTrustInfo(
     643                [in] ForestTrustInfo blob
     644                );
    553645}
Note: See TracChangeset for help on using the changeset viewer.