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:
parent
62038010e0
commit
c4a5fc72c7
@ -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;
|
||||
}
|
||||
|
@ -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_ */
|
||||
|
Loading…
Reference in New Issue
Block a user