]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
s4:rpc_server/netlogon: implement netr_LogonGetCapabilities query_level=2
authorStefan Metzmacher <metze@samba.org>
Wed, 19 Jul 2023 16:00:31 +0000 (18:00 +0200)
committerJule Anger <janger@samba.org>
Wed, 13 Nov 2024 10:39:12 +0000 (10:39 +0000)
BUG: https://bugzilla.samba.org/show_bug.cgi?id=15425

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
(cherry picked from commit fd4b027511b18615e215b66183f95b54bcab683e)

source4/rpc_server/netlogon/dcerpc_netlogon.c

index 4fb2a777404998c1a400cd3f0e55983bc3ff78bc..1e23c4450cd619e5448871cca24121c8d99355f2 100644 (file)
@@ -2400,12 +2400,7 @@ static NTSTATUS dcesrv_netr_LogonGetCapabilities(struct dcesrv_call_state *dce_c
        case 1:
                break;
        case 2:
-               /*
-                * Until we know the details behind KB5028166
-                * just return DCERPC_NCA_S_FAULT_INVALID_TAG
-                * like an unpatched Windows Server.
-                */
-               FALL_THROUGH;
+               break;
        default:
                /*
                 * There would not be a way to marshall the
@@ -2431,7 +2426,15 @@ static NTSTATUS dcesrv_netr_LogonGetCapabilities(struct dcesrv_call_state *dce_c
        }
        NT_STATUS_NOT_OK_RETURN(status);
 
-       r->out.capabilities->server_capabilities = creds->negotiate_flags;
+       switch (r->in.query_level) {
+       case 1:
+               r->out.capabilities->server_capabilities = creds->negotiate_flags;
+               break;
+       case 2:
+               r->out.capabilities->requested_flags =
+                                       creds->ex->client_requested_flags;
+               break;
+       }
 
        return NT_STATUS_OK;
 }