1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-12 09:18:10 +03:00

s3-winbind: Added a common rpc_sequence_number function.

This commit is contained in:
Andreas Schneider 2010-06-21 10:47:22 +02:00
parent 62038010e0
commit c4a5fc72c7
2 changed files with 56 additions and 0 deletions

View File

@ -783,3 +783,52 @@ NTSTATUS rpc_lookup_groupmem(TALLOC_CTX *mem_ctx,
return NT_STATUS_OK;
}
/* Find the sequence number for a domain */
NTSTATUS rpc_sequence_number(TALLOC_CTX *mem_ctx,
struct rpc_pipe_client *samr_pipe,
struct policy_handle *samr_policy,
const char *domain_name,
uint32_t *pseq)
{
union samr_DomainInfo *info = NULL;
bool got_seq_num = false;
NTSTATUS status;
/* query domain info */
status = rpccli_samr_QueryDomainInfo(samr_pipe,
mem_ctx,
samr_policy,
8,
&info);
if (NT_STATUS_IS_OK(status)) {
*pseq = info->info8.sequence_num;
got_seq_num = true;
goto seq_num;
}
/* retry with info-level 2 in case the dc does not support info-level 8
* (like all older samba2 and samba3 dc's) - Guenther */
status = rpccli_samr_QueryDomainInfo(samr_pipe,
mem_ctx,
samr_policy,
2,
&info);
if (NT_STATUS_IS_OK(status)) {
*pseq = info->general.sequence_num;
got_seq_num = true;
}
seq_num:
if (got_seq_num) {
DEBUG(10,("domain_sequence_number: for domain %s is %u\n",
domain_name, (unsigned) *pseq));
} else {
DEBUG(10,("domain_sequence_number: failed to get sequence "
"number (%u) for domain %s\n",
(unsigned) *pseq, domain_name ));
status = NT_STATUS_OK;
}
return status;
}

View File

@ -117,4 +117,11 @@ NTSTATUS rpc_lookup_groupmem(TALLOC_CTX *mem_ctx,
char ***pnames,
uint32_t **pname_types);
/* Find the sequence number for a domain */
NTSTATUS rpc_sequence_number(TALLOC_CTX *mem_ctx,
struct rpc_pipe_client *samr_pipe,
struct policy_handle *samr_policy,
const char *domain_name,
uint32_t *pseq);
#endif /* _WINBINDD_RPC_H_ */