]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
s3:rpc_server/netlogon: implement netr_LogonGetCapabilities query_level=2
authorStefan Metzmacher <metze@samba.org>
Wed, 19 Jul 2023 16:03:09 +0000 (18:03 +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 484a046d8e179a3b21ead8b5bc3660095314e816)

source3/rpc_server/netlogon/srv_netlog_nt.c

index 384191f76e490a5e8dc7b41b4581910890ced68b..fb5894ffefb240a0c373187dfe6398f9cdd98137 100644 (file)
@@ -2307,12 +2307,7 @@ NTSTATUS _netr_LogonGetCapabilities(struct pipes_struct *p,
        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
@@ -2340,7 +2335,15 @@ NTSTATUS _netr_LogonGetCapabilities(struct pipes_struct *p,
                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;
 }