From: Stefan Metzmacher Date: Fri, 18 Mar 2022 14:46:09 +0000 (+0100) Subject: lsa.idl: Backport changes from wireshark X-Git-Tag: talloc-2.4.2~607 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f5275ae3dcca0546ae73dcc16f3e68f314646915;p=thirdparty%2Fsamba.git lsa.idl: Backport changes from wireshark Signed-off-by: Stefan Metzmacher Reviewed-by: Andreas Schneider --- diff --git a/librpc/idl/lsa.idl b/librpc/idl/lsa.idl index b80eb726062..ede27c9fae4 100644 --- a/librpc/idl/lsa.idl +++ b/librpc/idl/lsa.idl @@ -113,9 +113,17 @@ import "misc.idl", "security.idl"; /******************/ /* Function: 0x06 */ + + typedef enum { + LSA_SECURITY_ANONYMOUS = 0, + LSA_SECURITY_IDENTIFICATION = 1, + LSA_SECURITY_IMPERSONATION = 2, + LSA_SECURITY_DELEGATION = 3 + } lsa_SecurityImpersonationLevel; + typedef struct { uint3264 len; /* ignored */ - uint16 impersonation_level; + lsa_SecurityImpersonationLevel impersonation_level; uint8 context_mode; uint8 effective_only; } lsa_QosInfo; @@ -412,7 +420,7 @@ import "misc.idl", "security.idl"; [case(LSA_POLICY_INFO_AUDIT_FULL_SET)] lsa_AuditFullSetInfo auditfullset; [case(LSA_POLICY_INFO_AUDIT_FULL_QUERY)] lsa_AuditFullQueryInfo auditfullquery; [case(LSA_POLICY_INFO_DNS)] lsa_DnsDomainInfo dns; - [case(LSA_POLICY_INFO_DNS_INT)] lsa_DnsDomainInfo dns; + [case(LSA_POLICY_INFO_DNS_INT)] lsa_DnsDomainInfo dns_int; [case(LSA_POLICY_INFO_L_ACCOUNT_DOMAIN)] lsa_DomainInfo l_account_domain; } lsa_PolicyInformation; @@ -1089,6 +1097,10 @@ import "misc.idl", "security.idl"; ); /* Function 0x35 */ + typedef struct { + uint32 quality_of_service; + } lsa_DomainInfoQoS; + typedef [bitmap32bit] bitmap { LSA_POLICY_KERBEROS_VALIDATE_CLIENT = 0x00000080 } lsa_krbAuthenticationOptions; @@ -1110,25 +1122,27 @@ import "misc.idl", "security.idl"; } lsa_DomainInfoEfs; typedef enum { + LSA_DOMAIN_INFO_POLICY_QOS=1, LSA_DOMAIN_INFO_POLICY_EFS=2, LSA_DOMAIN_INFO_POLICY_KERBEROS=3 } lsa_DomainInfoEnum; - typedef [switch_type(uint16)] union { + typedef [switch_type(lsa_DomainInfoEnum)] union { + [case(LSA_DOMAIN_INFO_POLICY_QOS)] lsa_DomainInfoQoS qos_info; [case(LSA_DOMAIN_INFO_POLICY_EFS)] lsa_DomainInfoEfs efs_info; [case(LSA_DOMAIN_INFO_POLICY_KERBEROS)] lsa_DomainInfoKerberos kerberos_info; } lsa_DomainInformationPolicy; NTSTATUS lsa_QueryDomainInformationPolicy( [in] policy_handle *handle, - [in] uint16 level, + [in] lsa_DomainInfoEnum level, [out,ref,switch_is(level)] lsa_DomainInformationPolicy **info ); /* Function 0x36 */ NTSTATUS lsa_SetDomainInformationPolicy( [in] policy_handle *handle, - [in] uint16 level, + [in] lsa_DomainInfoEnum level, [in,unique,switch_is(level)] lsa_DomainInformationPolicy *info ); diff --git a/source4/rpc_server/lsa/dcesrv_lsa.c b/source4/rpc_server/lsa/dcesrv_lsa.c index 3d7e26ad2fb..3b3ebb627b4 100644 --- a/source4/rpc_server/lsa/dcesrv_lsa.c +++ b/source4/rpc_server/lsa/dcesrv_lsa.c @@ -664,8 +664,9 @@ static NTSTATUS dcesrv_lsa_QueryInfoPolicy2(struct dcesrv_call_state *dce_call, return NT_STATUS_OK; case LSA_POLICY_INFO_DNS: - case LSA_POLICY_INFO_DNS_INT: return dcesrv_lsa_info_DNS(state, mem_ctx, &info->dns); + case LSA_POLICY_INFO_DNS_INT: + return dcesrv_lsa_info_DNS(state, mem_ctx, &info->dns_int); case LSA_POLICY_INFO_REPLICA: ZERO_STRUCT(info->replica);