Revert "Revert "TODO/LATER: source3/libads/cldap.c PAUSE not state->num_good_received...
authorStefan Metzmacher <metze@samba.org>
Tue, 4 Jul 2023 16:09:11 +0000 (18:09 +0200)
committerStefan Metzmacher <metze@samba.org>
Mon, 16 Oct 2023 08:23:17 +0000 (10:23 +0200)
This reverts commit 841662580fb0fa959b314ed91d749ae35789b128.

source3/libads/cldap.c

index 56c2537ffa985d736dbe8129078932b642bc585a..c9a97cebfeae69b334008f44e1f1ab518585b1bc 100644 (file)
@@ -264,10 +264,33 @@ static void cldap_multi_netlogon_done(struct tevent_req *subreq)
        state->num_received += 1;
 
        if (NT_STATUS_IS_OK(status)) {
+               enum netlogon_command resp_cmd = LOGON_REQUEST;
+
                *response = state->ios[i].out.netlogon;
+
+               switch (response->ntver) {
+               case NETLOGON_NT_VERSION_5EX:
+                       resp_cmd = response->data.nt5_ex.command;
+                       break;
+               case NETLOGON_NT_VERSION_5:
+                       resp_cmd = response->data.nt5.command;
+                       break;
+               case NETLOGON_NT_VERSION_1:
+                       resp_cmd = response->data.nt4.command;
+                       break;
+               }
+
                state->responses[i] = talloc_move(state->responses,
                                                  &response);
-               state->num_good_received += 1;
+
+               switch (resp_cmd) {
+               case LOGON_SAM_LOGON_RESPONSE:
+               case LOGON_SAM_LOGON_RESPONSE_EX:
+                       state->num_good_received += 1;
+                       break;
+               default:
+                       break;
+               }
        }
 
        if ((state->num_received == state->num_servers) ||