mirror of
https://github.com/samba-team/samba.git
synced 2025-02-03 13:47:25 +03:00
r23129: Merge from 3_0:
* netr_DsRGetDCName_flags, netr_DsRGetDCNameInfo_AddressType and netr_DsR_DcFlags * the mask in netr_DsRGetDCNameEx2 turns out to be samr_AcctFlags Guenther (This used to be commit 9cdd6d9782a7a70f01d748228beb80c454d1468b)
This commit is contained in:
parent
c64358e339
commit
d875b7d620
@ -4,7 +4,7 @@
|
||||
who contributed!
|
||||
*/
|
||||
|
||||
import "lsa.idl", "samr.idl", "security.idl";
|
||||
import "lsa.idl", "samr.idl", "security.idl", "nbt.idl";
|
||||
|
||||
#include "idl_types.h"
|
||||
|
||||
@ -906,15 +906,59 @@ interface netlogon
|
||||
WERROR netr_NETRENUMERATETRUSTEDDOMAINS() ;
|
||||
|
||||
/*****************/
|
||||
/* Function 0x14 */
|
||||
/* Function 0x14 */
|
||||
|
||||
/* two unkown bits still: DS_IP_VERSION_AGNOSTIC and
|
||||
* DS_TRY_NEXTCLOSEST_SITE - Guenther */
|
||||
|
||||
typedef [bitmap32bit] bitmap {
|
||||
DS_FORCE_REDISCOVERY = 0x00000001,
|
||||
DS_DIRECTORY_SERVICE_REQUIRED = 0x00000010,
|
||||
DS_DIRECTORY_SERVICE_PREFERRED = 0x00000020,
|
||||
DS_GC_SERVER_REQUIRED = 0x00000040,
|
||||
DS_PDC_REQUIRED = 0x00000080,
|
||||
DS_BACKGROUND_ONLY = 0x00000100,
|
||||
DS_IP_REQUIRED = 0x00000200,
|
||||
DS_KDC_REQUIRED = 0x00000400,
|
||||
DS_TIMESERV_REQUIRED = 0x00000800,
|
||||
DS_WRITABLE_REQUIRED = 0x00001000,
|
||||
DS_GOOD_TIMESERV_PREFERRED = 0x00002000,
|
||||
DS_AVOID_SELF = 0x00004000,
|
||||
DS_ONLY_LDAP_NEEDED = 0x00008000,
|
||||
DS_IS_FLAT_NAME = 0x00010000,
|
||||
DS_IS_DNS_NAME = 0x00020000,
|
||||
DS_RETURN_DNS_NAME = 0x40000000,
|
||||
DS_RETURN_FLAT_NAME = 0x80000000
|
||||
} netr_DsRGetDCName_flags;
|
||||
|
||||
typedef [v1_enum] enum {
|
||||
DS_ADDRESS_TYPE_INET = 1,
|
||||
DS_ADDRESS_TYPE_NETBIOS = 2
|
||||
} netr_DsRGetDCNameInfo_AddressType;
|
||||
|
||||
typedef [bitmap32bit] bitmap {
|
||||
DS_SERVER_PDC = NBT_SERVER_PDC,
|
||||
DS_SERVER_GC = NBT_SERVER_GC,
|
||||
DS_SERVER_LDAP = NBT_SERVER_LDAP,
|
||||
DS_SERVER_DS = NBT_SERVER_DS,
|
||||
DS_SERVER_KDC = NBT_SERVER_KDC,
|
||||
DS_SERVER_TIMESERV = NBT_SERVER_TIMESERV,
|
||||
DS_SERVER_CLOSEST = NBT_SERVER_CLOSEST,
|
||||
DS_SERVER_WRITABLE = NBT_SERVER_WRITABLE,
|
||||
DS_SERVER_GOOD_TIMESERV = NBT_SERVER_GOOD_TIMESERV,
|
||||
DS_DNS_CONTROLLER = 0x20000000,
|
||||
DS_DNS_DOMAIN = 0x40000000,
|
||||
DS_DNS_FOREST = 0x80000000
|
||||
} netr_DsR_DcFlags;
|
||||
|
||||
typedef struct {
|
||||
[string,charset(UTF16)] uint16 *dc_unc;
|
||||
[string,charset(UTF16)] uint16 *dc_address;
|
||||
int32 dc_address_type;
|
||||
netr_DsRGetDCNameInfo_AddressType dc_address_type;
|
||||
GUID domain_guid;
|
||||
[string,charset(UTF16)] uint16 *domain_name;
|
||||
[string,charset(UTF16)] uint16 *forest_name;
|
||||
uint32 dc_flags;
|
||||
netr_DsR_DcFlags dc_flags;
|
||||
[string,charset(UTF16)] uint16 *dc_site_name;
|
||||
[string,charset(UTF16)] uint16 *client_site_name;
|
||||
} netr_DsRGetDCNameInfo;
|
||||
@ -924,7 +968,7 @@ interface netlogon
|
||||
[in] [string,charset(UTF16)] uint16 *domain_name,
|
||||
[in] GUID *domain_guid,
|
||||
[in] GUID *site_guid,
|
||||
[in] uint32 flags,
|
||||
[in] netr_DsRGetDCName_flags flags,
|
||||
[out] netr_DsRGetDCNameInfo *info
|
||||
);
|
||||
|
||||
@ -968,7 +1012,7 @@ interface netlogon
|
||||
[in] [string,charset(UTF16)] uint16 *domain_name,
|
||||
[in] GUID *domain_guid,
|
||||
[in] [string,charset(UTF16)] uint16 *site_name,
|
||||
[in] uint32 flags,
|
||||
[in] netr_DsRGetDCName_flags flags,
|
||||
[out] netr_DsRGetDCNameInfo *info
|
||||
);
|
||||
|
||||
@ -1079,11 +1123,11 @@ interface netlogon
|
||||
WERROR netr_DsRGetDCNameEx2(
|
||||
[in] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in] [string,charset(UTF16)] uint16 *client_account,
|
||||
[in] uint32 mask,
|
||||
[in] samr_AcctFlags mask,
|
||||
[in] [string,charset(UTF16)] uint16 *domain_name,
|
||||
[in] GUID *domain_guid,
|
||||
[in] [string,charset(UTF16)] uint16 *site_name,
|
||||
[in] uint32 flags,
|
||||
[in] netr_DsRGetDCName_flags flags,
|
||||
[out] netr_DsRGetDCNameInfo *info
|
||||
);
|
||||
|
||||
|
@ -1010,11 +1010,21 @@ static WERROR dcesrv_netr_DsRGetDCNameEx2(struct dcesrv_call_state *dce_call, TA
|
||||
W_ERROR_HAVE_NO_MEMORY(r->out.info->dc_unc);
|
||||
r->out.info->dc_address = talloc_strdup(mem_ctx, "\\\\0.0.0.0");
|
||||
W_ERROR_HAVE_NO_MEMORY(r->out.info->dc_address);
|
||||
r->out.info->dc_address_type = 1;
|
||||
r->out.info->dc_address_type = DS_ADDRESS_TYPE_INET;
|
||||
r->out.info->domain_guid = samdb_result_guid(res[0], "objectGUID");
|
||||
r->out.info->domain_name = samdb_result_string(res[0], "dnsDomain", NULL);
|
||||
r->out.info->forest_name = samdb_result_string(res[0], "dnsDomain", NULL);
|
||||
r->out.info->dc_flags = 0xE00001FD;
|
||||
r->out.info->dc_flags = DS_DNS_FOREST |
|
||||
DS_DNS_DOMAIN |
|
||||
DS_DNS_CONTROLLER |
|
||||
DS_SERVER_WRITABLE |
|
||||
DS_SERVER_CLOSEST |
|
||||
DS_SERVER_TIMESERV |
|
||||
DS_SERVER_KDC |
|
||||
DS_SERVER_DS |
|
||||
DS_SERVER_LDAP |
|
||||
DS_SERVER_GC |
|
||||
DS_SERVER_PDC;
|
||||
r->out.info->dc_site_name = talloc_strdup(mem_ctx, "Default-First-Site-Name");
|
||||
W_ERROR_HAVE_NO_MEMORY(r->out.info->dc_site_name);
|
||||
r->out.info->client_site_name = talloc_strdup(mem_ctx, "Default-First-Site-Name");
|
||||
|
@ -1224,7 +1224,7 @@ static BOOL test_netr_DsRGetDCName(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
|
||||
r.in.domain_name = talloc_asprintf(mem_ctx, "%s", lp_realm());
|
||||
r.in.domain_guid = NULL;
|
||||
r.in.site_guid = NULL;
|
||||
r.in.flags = 0x40000000;
|
||||
r.in.flags = DS_RETURN_DNS_NAME;
|
||||
|
||||
printf("Testing netr_DsRGetDCName\n");
|
||||
|
||||
@ -1255,7 +1255,7 @@ static BOOL test_netr_DsRGetDCNameEx(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
|
||||
r.in.domain_name = talloc_asprintf(mem_ctx, "%s", lp_realm());
|
||||
r.in.domain_guid = NULL;
|
||||
r.in.site_name = NULL;
|
||||
r.in.flags = 0x40000000;
|
||||
r.in.flags = DS_RETURN_DNS_NAME;
|
||||
|
||||
printf("Testing netr_DsRGetDCNameEx\n");
|
||||
|
||||
@ -1288,7 +1288,7 @@ static BOOL test_netr_DsRGetDCNameEx2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx
|
||||
r.in.domain_name = talloc_asprintf(mem_ctx, "%s", lp_realm());
|
||||
r.in.domain_guid = NULL;
|
||||
r.in.site_name = NULL;
|
||||
r.in.flags = 0x40000000;
|
||||
r.in.flags = DS_RETURN_DNS_NAME;
|
||||
|
||||
printf("Testing netr_DsRGetDCNameEx2 without client account\n");
|
||||
|
||||
@ -1301,8 +1301,8 @@ static BOOL test_netr_DsRGetDCNameEx2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx
|
||||
|
||||
printf("Testing netr_DsRGetDCNameEx2 with client acount\n");
|
||||
r.in.client_account = TEST_MACHINE_NAME"$";
|
||||
r.in.mask = 0x00002000;
|
||||
r.in.flags = 0x80000000;
|
||||
r.in.mask = ACB_SVRTRUST;
|
||||
r.in.flags = DS_RETURN_FLAT_NAME;
|
||||
|
||||
status = dcerpc_netr_DsRGetDCNameEx2(p, mem_ctx, &r);
|
||||
if (!NT_STATUS_IS_OK(status) || !W_ERROR_IS_OK(r.out.result)) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user