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) ||