diff options
-rw-r--r-- | source4/rpc_server/netlogon/dcerpc_netlogon.c | 9 | ||||
-rw-r--r-- | source4/torture/rpc/netlogon.c | 9 |
2 files changed, 16 insertions, 2 deletions
diff --git a/source4/rpc_server/netlogon/dcerpc_netlogon.c b/source4/rpc_server/netlogon/dcerpc_netlogon.c index 1ef50cd96f..3d9262b995 100644 --- a/source4/rpc_server/netlogon/dcerpc_netlogon.c +++ b/source4/rpc_server/netlogon/dcerpc_netlogon.c @@ -669,7 +669,8 @@ static NTSTATUS dcesrv_netr_DatabaseDeltas(struct dcesrv_call_state *dce_call, T static NTSTATUS dcesrv_netr_DatabaseSync(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct netr_DatabaseSync *r) { - DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR); + /* win2k3 native mode returns "NOT IMPLEMENTED" for this call */ + return NT_STATUS_NOT_IMPLEMENTED; } @@ -741,7 +742,8 @@ static WERROR dcesrv_netr_LogonControl2(struct dcesrv_call_state *dce_call, TALL static NTSTATUS dcesrv_netr_DatabaseSync2(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct netr_DatabaseSync2 *r) { - DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR); + /* win2k3 native mode returns "NOT IMPLEMENTED" for this call */ + return NT_STATUS_NOT_IMPLEMENTED; } @@ -867,6 +869,9 @@ static NTSTATUS fill_domain_trust_info(TALLOC_CTX *mem_ctx, /* netr_LogonGetDomainInfo this is called as part of the ADS domain logon procedure. + + It has an important role in convaying details about the client, such + as Operating System, Version, Service Pack etc. */ static NTSTATUS dcesrv_netr_LogonGetDomainInfo(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct netr_LogonGetDomainInfo *r) diff --git a/source4/torture/rpc/netlogon.c b/source4/torture/rpc/netlogon.c index 74bc3a2bf7..a13172b695 100644 --- a/source4/torture/rpc/netlogon.c +++ b/source4/torture/rpc/netlogon.c @@ -647,6 +647,10 @@ static bool test_DatabaseSync(struct torture_context *tctx, if (NT_STATUS_EQUAL(status, STATUS_MORE_ENTRIES)) break; + /* Native mode servers don't do this */ + if (NT_STATUS_EQUAL(status, NT_STATUS_NOT_SUPPORTED)) { + return true; + } torture_assert_ntstatus_ok(tctx, status, "DatabaseSync"); if (!creds_client_check(creds, &r.out.return_authenticator.cred)) { @@ -968,6 +972,11 @@ static bool test_DatabaseSync2(struct torture_context *tctx, if (NT_STATUS_EQUAL(status, STATUS_MORE_ENTRIES)) break; + /* Native mode servers don't do this */ + if (NT_STATUS_EQUAL(status, NT_STATUS_NOT_SUPPORTED)) { + return true; + } + torture_assert_ntstatus_ok(tctx, status, "DatabaseSync2"); if (!creds_client_check(creds, &r.out.return_authenticator.cred)) { |