]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
lsa.idl: Backport changes from wireshark
authorStefan Metzmacher <metze@samba.org>
Fri, 18 Mar 2022 14:46:09 +0000 (15:46 +0100)
committerAndreas Schneider <asn@cryptomilk.org>
Tue, 21 Nov 2023 11:16:37 +0000 (11:16 +0000)
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
librpc/idl/lsa.idl
source4/rpc_server/lsa/dcesrv_lsa.c

index b80eb726062f8d0d507414d8a4a75245ba831a1b..ede27c9fae4877e753b40b927595800a7fd6e504 100644 (file)
@@ -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
                );
 
index 3d7e26ad2fbc35e1f6ff1460b4f2ccbcd34f397d..3b3ebb627b4a049c6a2a24a6e12a786dfe4917cb 100644 (file)
@@ -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);