1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-23 17:34:34 +03:00

s4-netlogon: added IDL for netr_DsrUpdateReadOnlyServerDnsRecords

this is used by a RODC to do DNS updates, as TSIG updates are not
allowed by RODCs

Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
This commit is contained in:
Andrew Tridgell 2010-09-16 17:05:58 +10:00
parent 5958997a9b
commit dc59de5627
3 changed files with 94 additions and 0 deletions

View File

@ -1674,4 +1674,59 @@ interface netlogon
[out,ref] samr_Password *old_owf_password,
[out,ref] netr_TrustInfo **trust_info
);
/****************/
/* Function 0x2f */
NTSTATUS netr_Unused47(void);
/****************/
/* Function 0x30 */
typedef enum {
NlDnsLdapAtSite = 22,
NlDnsGcAtSite = 25,
NlDnsDsaCname = 28,
NlDnsKdcAtSite = 30,
NlDnsDcAtSite = 32,
NlDnsRfc1510KdcAtSite = 34,
NlDnsGenericGcAtSite = 36
} netr_DnsType;
typedef enum {
NlDnsInfoTypeNone = 0,
NlDnsDomainName = 1,
NlDnsDomainNameAlias = 2,
NlDnsForestName = 3,
NlDnsForestNameAlias = 4,
NlDnsNdncDomainName = 5,
NlDnsRecordName = 6
} netr_DnsDomainInfoType;
typedef struct {
netr_DnsType type;
[string,charset(UTF16)] uint16 *dns_domain_info;
netr_DnsDomainInfoType dns_domain_info_type;
uint32 priority;
uint32 weight;
uint32 port;
boolean32 dns_register;
uint32 status;
} NL_DNS_NAME_INFO;
typedef struct {
uint32 count;
[size_is(count)] NL_DNS_NAME_INFO *names;
} NL_DNS_NAME_INFO_ARRAY;
NTSTATUS netr_DsrUpdateReadOnlyServerDnsRecords(
[in,unique] [string,charset(UTF16)] uint16 *server_name,
[in,ref] [string,charset(UTF16)] uint16 *computer_name,
[in, ref] netr_Authenticator *credential,
[out,ref] netr_Authenticator *return_authenticator,
[in,unique] [string,charset(UTF16)] uint16 *site_name,
[in] uint32 dns_ttl,
[in,out,ref] NL_DNS_NAME_INFO_ARRAY *dns_names
);
}

View File

@ -2014,3 +2014,22 @@ NTSTATUS _netr_ServerGetTrustInfo(struct pipes_struct *p,
return NT_STATUS_NOT_IMPLEMENTED;
}
/****************************************************************
****************************************************************/
NTSTATUS _netr_Unused47(struct pipes_struct *p,
struct netr_Unused47 *r)
{
p->rng_fault_state = true;
return NT_STATUS_NOT_IMPLEMENTED;
}
/****************************************************************
****************************************************************/
NTSTATUS _netr_DsrUpdateReadOnlyServerDnsRecords(struct pipes_struct *p,
struct netr_DsrUpdateReadOnlyServerDnsRecords *r)
{
p->rng_fault_state = true;
return NT_STATUS_NOT_IMPLEMENTED;
}

View File

@ -35,6 +35,7 @@
#include "../libcli/ldap/ldap_ndr.h"
#include "cldap_server/cldap_server.h"
#include "lib/tsocket/tsocket.h"
#include "librpc/gen_ndr/ndr_netlogon.h"
struct netlogon_server_pipe_state {
struct netr_Credential client_challenge;
@ -2258,6 +2259,25 @@ static NTSTATUS dcesrv_netr_ServerGetTrustInfo(struct dcesrv_call_state *dce_cal
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
}
/*
netr_Unused47
*/
static NTSTATUS dcesrv_netr_Unused47(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
struct netr_Unused47 *r)
{
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
}
/*
netr_DsrUpdateReadOnlyServerDnsRecords
*/
static NTSTATUS dcesrv_netr_DsrUpdateReadOnlyServerDnsRecords(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
struct netr_DsrUpdateReadOnlyServerDnsRecords *r)
{
NDR_PRINT_FUNCTION_DEBUG(netr_DsrUpdateReadOnlyServerDnsRecords, NDR_IN, r);
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
}
/* include the generated boilerplate */
#include "librpc/gen_ndr/ndr_netlogon_s.c"