diff options
author | Jeremy Allison <jra@samba.org> | 2009-10-17 10:36:33 -0700 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2009-10-17 10:36:33 -0700 |
commit | 7c51fa6d699a653cafa90df8e44911b576118ebd (patch) | |
tree | 543bf9ca698e03eff81104898b33e77f1abed319 /librpc/idl | |
parent | cc3a6770c77ec8fe1cd63bf4c682853c56201f0c (diff) | |
parent | 3e3214fd91471bca5b6c4d3782e922d252d588fb (diff) | |
download | samba-7c51fa6d699a653cafa90df8e44911b576118ebd.tar.gz samba-7c51fa6d699a653cafa90df8e44911b576118ebd.tar.bz2 samba-7c51fa6d699a653cafa90df8e44911b576118ebd.zip |
Merge branch 'master' of ssh://jra@git.samba.org/data/git/samba
Diffstat (limited to 'librpc/idl')
-rw-r--r-- | librpc/idl/drsuapi.idl | 42 | ||||
-rw-r--r-- | librpc/idl/lsa.idl | 10 | ||||
-rw-r--r-- | librpc/idl/misc.idl | 26 | ||||
-rw-r--r-- | librpc/idl/nbt.idl | 5 | ||||
-rw-r--r-- | librpc/idl/netlogon.idl | 18 | ||||
-rw-r--r-- | librpc/idl/ntsvcs.idl | 2 | ||||
-rw-r--r-- | librpc/idl/samr.idl | 30 | ||||
-rw-r--r-- | librpc/idl/security.idl | 15 | ||||
-rw-r--r-- | librpc/idl/winreg.idl | 17 |
9 files changed, 121 insertions, 44 deletions
diff --git a/librpc/idl/drsuapi.idl b/librpc/idl/drsuapi.idl index 9d2d153418..f53db00f5b 100644 --- a/librpc/idl/drsuapi.idl +++ b/librpc/idl/drsuapi.idl @@ -15,6 +15,40 @@ interface drsuapi { typedef bitmap samr_GroupAttrs samr_GroupAttrs; + /* see MS-DRSR section 5.37 */ + typedef [public,bitmap32bit] bitmap { + DRSUAPI_DRS_ASYNC_OP = 0x00000001, + DRSUAPI_DRS_GETCHG_CHECK = 0x00000002, + DRSUAPI_DRS_ADD_REF = 0x00000004, + DRSUAPI_DRS_SYNC_ALL = 0x00000008, + DRSUAPI_DRS_DEL_REF = 0x00000008, + DRSUAPI_DRS_WRIT_REP = 0x00000010, + DRSUAPI_DRS_INIT_SYNC = 0x00000020, + DRSUAPI_DRS_PER_SYNC = 0x00000040, + DRSUAPI_DRS_MAIL_REP = 0x00000080, + DRSUAPI_DRS_ASYNC_REP = 0x00000100, + DRSUAPI_DRS_IGNORE_ERROR = 0x00000100, + DRSUAPI_DRS_TWOWAY_SYNC = 0x00000200, + DRSUAPI_DRS_CRITICAL_ONLY = 0x00000400, + DRSUAPI_DRS_GET_ANC = 0x00000800, + DRSUAPI_DRS_GET_NC_SIZE = 0x00001000, + DRSUAPI_DRS_LOCAL_ONLY = 0x00001000, + DRSUAPI_DRS_SYNC_BYNAME = 0x00004000, + DRSUAPI_DRS_REF_OK = 0x00004000, + DRSUAPI_DRS_FULL_SYNC_NOW = 0x00008000, + DRSUAPI_DRS_NO_SOURCE = 0x00008000, + DRSUAPI_DRS_FULL_SYNC_PACKET = 0x00020000, + DRSUAPI_DRS_REF_GCSPN = 0x00100000, + DRSUAPI_DRS_SPECIAL_SECRET_PROCESSING = 0x00800000, + DRSUAPI_DRS_SYNC_FORCED = 0x02000000, + DRSUAPI_DRS_DISABLE_AUTO_SYNC = 0x04000000, + DRSUAPI_DRS_DISABLE_PERIODIC_SYNC = 0x08000000, + DRSUAPI_DRS_USE_COMPRESSION = 0x10000000, + DRSUAPI_DRS_NEVER_NOTIFY = 0x20000000, + DRSUAPI_DRS_SYNC_PAS = 0x40000000, + DRSUAPI_DRS_GET_ALL_GROUP_MEMBERSHIP = 0x80000000 + } drsuapi_DrsOptions; + /*****************/ /* Function 0x00 */ typedef [bitmap32bit] bitmap { @@ -219,6 +253,8 @@ interface drsuapi /* the _WRITEABLE flag indicates a replication with all attributes * * --metze + * + * See drsuapi_DrsOptions for the WSPP bit names */ DRSUAPI_DS_REPLICA_NEIGHBOUR_WRITEABLE = 0x00000010, DRSUAPI_DS_REPLICA_NEIGHBOUR_SYNC_ON_STARTUP = 0x00000020, @@ -378,9 +414,9 @@ interface drsuapi * * 2.5.5.17 => dom_sid */ - typedef [nopush,nopull] struct { - [range(0,10000),value(ndr_size_drsuapi_DsReplicaOID_oid(oid, 0))] uint32 __ndr_size; - [size_is(__ndr_size),charset(DOS)] uint8 *oid; /* it's encoded with asn1_write_OID_String() */ + typedef [noprint] struct { + [range(0,10000)] uint32 length; + [size_is(length)] uint8 *binary_oid; /* partial-binary-OID encoded with asn1_write_partial_OID_String() */ } drsuapi_DsReplicaOID; typedef struct { diff --git a/librpc/idl/lsa.idl b/librpc/idl/lsa.idl index 253b6d780c..58e0ea9e26 100644 --- a/librpc/idl/lsa.idl +++ b/librpc/idl/lsa.idl @@ -113,14 +113,14 @@ import "misc.idl", "security.idl"; /******************/ /* Function: 0x06 */ typedef struct { - uint32 len; /* ignored */ + uint3264 len; /* ignored */ uint16 impersonation_level; uint8 context_mode; uint8 effective_only; } lsa_QosInfo; typedef struct { - uint32 len; /* ignored */ + uint3264 len; /* ignored */ uint8 *root_dir; [string,charset(UTF16)] uint16 *object_name; uint32 attributes; @@ -628,8 +628,8 @@ import "misc.idl", "security.idl"; ); typedef [flag(NDR_PAHEX)] struct { - uint32 length; - uint32 size; + uint3264 length; + uint3264 size; [size_is(size),length_is(length)] uint8 *data; } lsa_DATA_BUF; @@ -1220,7 +1220,7 @@ import "misc.idl", "security.idl"; /* Function 0x49 */ typedef struct { - [range(0,131072)] uint32 length; + [range(0,131072)] uint3264 length; [size_is(length)] uint8 *data; } lsa_ForestTrustBinaryData; diff --git a/librpc/idl/misc.idl b/librpc/idl/misc.idl index 5bc3c9f976..5a2bf75a74 100644 --- a/librpc/idl/misc.idl +++ b/librpc/idl/misc.idl @@ -1,3 +1,5 @@ +#include "idl_types.h" + /* miscellaneous IDL structures */ @@ -43,4 +45,28 @@ interface misc uint32 unknown1; uint32 unknown2; /* 0x00000001 */ } KRB5_EDATA_NTSTATUS; + + typedef [public,v1_enum] enum { + REG_NONE = 0, + REG_SZ = 1, + REG_EXPAND_SZ = 2, + REG_BINARY = 3, + REG_DWORD = 4, + REG_DWORD_BIG_ENDIAN = 5, + REG_LINK = 6, + REG_MULTI_SZ = 7, + REG_RESOURCE_LIST = 8, + REG_FULL_RESOURCE_DESCRIPTOR = 9, + REG_RESOURCE_REQUIREMENTS_LIST = 10, + REG_QWORD = 11 + } winreg_Type; + + typedef [nodiscriminant,public] union { + [case(REG_NONE)]; + [case(REG_SZ)] nstring string; + [case(REG_BINARY),flag(NDR_REMAINING)] DATA_BLOB binary; + [case(REG_DWORD)] uint32 value; + [case(REG_MULTI_SZ)] nstring_array string_array; + [default,flag(NDR_REMAINING)] DATA_BLOB data; + } winreg_Data; } diff --git a/librpc/idl/nbt.idl b/librpc/idl/nbt.idl index fc82b1c897..a51132c4d4 100644 --- a/librpc/idl/nbt.idl +++ b/librpc/idl/nbt.idl @@ -357,7 +357,10 @@ interface nbt NBT_SERVER_NDNC = 0x00000400, NBT_SERVER_SELECT_SECRET_DOMAIN_6 = 0x00000800, NBT_SERVER_FULL_SECRET_DOMAIN_6 = 0x00001000, - NBT_SERVER_DNS_FOREST = 0x01000000 + NBT_SERVER_ADS_WEB_SERVICE = 0x00002000, + NBT_SERVER_HAS_DNS_NAME = 0x20000000, + NBT_SERVER_IS_DEFAULT_NC = 0x40000000, + NBT_SERVER_FOREST_ROOT = 0x80000000 } nbt_server_type; typedef [bitmap32bit,public] bitmap { diff --git a/librpc/idl/netlogon.idl b/librpc/idl/netlogon.idl index ef2c8a4721..82a60c7c3e 100644 --- a/librpc/idl/netlogon.idl +++ b/librpc/idl/netlogon.idl @@ -1142,9 +1142,9 @@ interface netlogon DS_SERVER_NDNC = NBT_SERVER_NDNC, DS_SERVER_SELECT_SECRET_DOMAIN_6 = NBT_SERVER_SELECT_SECRET_DOMAIN_6, DS_SERVER_FULL_SECRET_DOMAIN_6 = NBT_SERVER_FULL_SECRET_DOMAIN_6, - DS_DNS_CONTROLLER = 0x20000000, - DS_DNS_DOMAIN = 0x40000000, - DS_DNS_FOREST = 0x80000000 + DS_DNS_CONTROLLER = NBT_SERVER_HAS_DNS_NAME, + DS_DNS_DOMAIN = NBT_SERVER_IS_DEFAULT_NC, + DS_DNS_FOREST_ROOT = NBT_SERVER_FOREST_ROOT } netr_DsR_DcFlags; typedef [public] struct { @@ -1412,6 +1412,18 @@ interface netlogon /*****************/ /* Function 0x1e */ + + /* [MS-NRPC] 2.2.1.3.8 NL_PASSWORD_VERSION */ + + /* someone's birthday ? */ + const int NETLOGON_PASSWORD_VERSION_NUMBER_PRESENT = 0x02231968; + + typedef struct { + uint32 ReservedField; + uint32 PasswordVersionNumber; + uint32 PasswordVersionPresent; + } NL_PASSWORD_VERSION; + typedef [flag(NDR_PAHEX)] struct { uint8 data[512]; uint32 length; diff --git a/librpc/idl/ntsvcs.idl b/librpc/idl/ntsvcs.idl index b1a3b78c34..91a85b96b9 100644 --- a/librpc/idl/ntsvcs.idl +++ b/librpc/idl/ntsvcs.idl @@ -2,7 +2,7 @@ plug and play services */ -import "winreg.idl"; +import "misc.idl"; [ uuid("8d9f4e40-a03d-11ce-8f69-08003e30051b"), diff --git a/librpc/idl/samr.idl b/librpc/idl/samr.idl index 8a5692fe17..da7b1aa82e 100644 --- a/librpc/idl/samr.idl +++ b/librpc/idl/samr.idl @@ -24,15 +24,6 @@ import "misc.idl", "lsa.idl", "security.idl"; SAM_DATABASE_PRIVS = 2 /* Privileges */ } netr_SamDatabaseID; - typedef [public,v1_enum] enum { - SAMR_REJECT_OTHER = 0, - SAMR_REJECT_TOO_SHORT = 1, - SAMR_REJECT_IN_HISTORY = 2, - SAMR_REJECT_COMPLEXITY = 5 - } samr_RejectReason; - - - /* account control (acct_flags) bits */ typedef [public,bitmap32bit] bitmap { ACB_DISABLED = 0x00000001, /* 1 = User account disabled */ @@ -1447,13 +1438,22 @@ import "misc.idl", "lsa.idl", "security.idl"; /************************/ /* Function 0x3f */ - typedef enum samr_RejectReason samr_RejectReason; + typedef [public,v1_enum] enum { + SAM_PWD_CHANGE_NO_ERROR = 0, + SAM_PWD_CHANGE_PASSWORD_TOO_SHORT = 1, + SAM_PWD_CHANGE_PWD_IN_HISTORY = 2, + SAM_PWD_CHANGE_USERNAME_IN_PASSWORD = 3, + SAM_PWD_CHANGE_FULLNAME_IN_PASSWORD = 4, + SAM_PWD_CHANGE_NOT_COMPLEX = 5, + SAM_PWD_CHANGE_MACHINE_NOT_DEFAULT = 6, + SAM_PWD_CHANGE_FAILED_BY_FILTER = 7, + SAM_PWD_CHANGE_PASSWORD_TOO_LONG = 8 + } samPwdChangeReason; typedef struct { - samr_RejectReason reason; - uint32 unknown1; - uint32 unknown2; - } samr_ChangeReject; + samPwdChangeReason extendedFailureReason; + [string,charset(UTF16)] uint16 *filterModuleName; + } userPwdChangeFailureInformation; NTSTATUS samr_ChangePasswordUser3( [in,unique] lsa_String *server, @@ -1465,7 +1465,7 @@ import "misc.idl", "lsa.idl", "security.idl"; [in,unique] samr_Password *lm_verifier, [in,unique] samr_CryptPassword *password3, [out,ref] samr_DomInfo1 **dominfo, - [out,ref] samr_ChangeReject **reject + [out,ref] userPwdChangeFailureInformation **reject ); /************************/ diff --git a/librpc/idl/security.idl b/librpc/idl/security.idl index 96d24b6685..c24dc64bd7 100644 --- a/librpc/idl/security.idl +++ b/librpc/idl/security.idl @@ -144,6 +144,21 @@ interface security const int SEC_RIGHTS_DIR_EXECUTE = SEC_RIGHTS_FILE_EXECUTE; const int SEC_RIGHTS_DIR_ALL = SEC_RIGHTS_FILE_ALL; + /* rights granted by some specific privileges */ + const int SEC_RIGHTS_PRIV_BACKUP = SEC_STD_READ_CONTROL | + SEC_FLAG_SYSTEM_SECURITY | + SEC_GENERIC_READ; + const int SEC_RIGHTS_DIR_PRIV_BACKUP = SEC_RIGHTS_PRIV_BACKUP + | SEC_DIR_TRAVERSE; + + const int SEC_RIGHTS_PRIV_RESTORE = SEC_STD_WRITE_DAC | + SEC_STD_WRITE_OWNER | + SEC_FLAG_SYSTEM_SECURITY | + SEC_STD_DELETE; + const int SEC_RIGHTS_DIR_PRIV_RESTORE = SEC_RIGHTS_PRIV_RESTORE | + SEC_DIR_ADD_FILE | + SEC_DIR_ADD_SUBDIR; + /* combinations of standard masks. */ const int STANDARD_RIGHTS_ALL_ACCESS = SEC_STD_ALL; /* 0x001f0000 */ const int STANDARD_RIGHTS_MODIFY_ACCESS = SEC_STD_READ_CONTROL; /* 0x00020000 */ diff --git a/librpc/idl/winreg.idl b/librpc/idl/winreg.idl index 18b5edcb5d..f1f4dfb719 100644 --- a/librpc/idl/winreg.idl +++ b/librpc/idl/winreg.idl @@ -2,7 +2,7 @@ winreg interface definition */ -import "lsa.idl", "security.idl"; +import "lsa.idl", "security.idl", "misc.idl"; [ uuid("338cd001-2244-31f1-aaaa-900038001003"), @@ -45,21 +45,6 @@ import "lsa.idl", "security.idl"; REG_KEY_WRITE | KEY_CREATE_LINK); - typedef [public,v1_enum] enum { - REG_NONE = 0, - REG_SZ = 1, - REG_EXPAND_SZ = 2, - REG_BINARY = 3, - REG_DWORD = 4, - REG_DWORD_BIG_ENDIAN = 5, - REG_LINK = 6, - REG_MULTI_SZ = 7, - REG_RESOURCE_LIST = 8, - REG_FULL_RESOURCE_DESCRIPTOR = 9, - REG_RESOURCE_REQUIREMENTS_LIST = 10, - REG_QWORD = 11 - } winreg_Type; - typedef [public] struct { [value(strlen_m_term(name)*2)] uint16 name_len; [value(strlen_m_term(name)*2)] uint16 name_size; |