1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-14 19:24:43 +03:00
samba-mirror/librpc/gen_ndr/cli_netlogon.c
Simo Sorce d4b8be513c s4:netlogon GetTrustedDomainInformation
start implementing calls related to trusted domain information
2010-02-22 18:49:16 -05:00

7621 lines
209 KiB
C

/*
* Unix SMB/CIFS implementation.
* client auto-generated by pidl. DO NOT MODIFY!
*/
#include "includes.h"
#include "../librpc/gen_ndr/cli_netlogon.h"
struct rpccli_netr_LogonUasLogon_state {
struct netr_LogonUasLogon orig;
struct netr_LogonUasLogon tmp;
TALLOC_CTX *out_mem_ctx;
NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
};
static void rpccli_netr_LogonUasLogon_done(struct tevent_req *subreq);
struct tevent_req *rpccli_netr_LogonUasLogon_send(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
struct rpc_pipe_client *cli,
const char *_server_name /* [in] [unique,charset(UTF16)] */,
const char *_account_name /* [in] [ref,charset(UTF16)] */,
const char *_workstation /* [in] [ref,charset(UTF16)] */,
struct netr_UasInfo **_info /* [out] [ref] */)
{
struct tevent_req *req;
struct rpccli_netr_LogonUasLogon_state *state;
struct tevent_req *subreq;
req = tevent_req_create(mem_ctx, &state,
struct rpccli_netr_LogonUasLogon_state);
if (req == NULL) {
return NULL;
}
state->out_mem_ctx = NULL;
state->dispatch_recv = cli->dispatch_recv;
/* In parameters */
state->orig.in.server_name = _server_name;
state->orig.in.account_name = _account_name;
state->orig.in.workstation = _workstation;
/* Out parameters */
state->orig.out.info = _info;
/* Result */
ZERO_STRUCT(state->orig.out.result);
state->out_mem_ctx = talloc_named_const(state, 0,
"rpccli_netr_LogonUasLogon_out_memory");
if (tevent_req_nomem(state->out_mem_ctx, req)) {
return tevent_req_post(req, ev);
}
/* make a temporary copy, that we pass to the dispatch function */
state->tmp = state->orig;
subreq = cli->dispatch_send(state, ev, cli,
&ndr_table_netlogon,
NDR_NETR_LOGONUASLOGON,
&state->tmp);
if (tevent_req_nomem(subreq, req)) {
return tevent_req_post(req, ev);
}
tevent_req_set_callback(subreq, rpccli_netr_LogonUasLogon_done, req);
return req;
}
static void rpccli_netr_LogonUasLogon_done(struct tevent_req *subreq)
{
struct tevent_req *req = tevent_req_callback_data(
subreq, struct tevent_req);
struct rpccli_netr_LogonUasLogon_state *state = tevent_req_data(
req, struct rpccli_netr_LogonUasLogon_state);
NTSTATUS status;
TALLOC_CTX *mem_ctx;
if (state->out_mem_ctx) {
mem_ctx = state->out_mem_ctx;
} else {
mem_ctx = state;
}
status = state->dispatch_recv(subreq, mem_ctx);
TALLOC_FREE(subreq);
if (!NT_STATUS_IS_OK(status)) {
tevent_req_nterror(req, status);
return;
}
/* Copy out parameters */
*state->orig.out.info = *state->tmp.out.info;
/* Copy result */
state->orig.out.result = state->tmp.out.result;
/* Reset temporary structure */
ZERO_STRUCT(state->tmp);
tevent_req_done(req);
}
NTSTATUS rpccli_netr_LogonUasLogon_recv(struct tevent_req *req,
TALLOC_CTX *mem_ctx,
WERROR *result)
{
struct rpccli_netr_LogonUasLogon_state *state = tevent_req_data(
req, struct rpccli_netr_LogonUasLogon_state);
NTSTATUS status;
if (tevent_req_is_nterror(req, &status)) {
tevent_req_received(req);
return status;
}
/* Steal possbile out parameters to the callers context */
talloc_steal(mem_ctx, state->out_mem_ctx);
/* Return result */
*result = state->orig.out.result;
tevent_req_received(req);
return NT_STATUS_OK;
}
NTSTATUS rpccli_netr_LogonUasLogon(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
const char *server_name /* [in] [unique,charset(UTF16)] */,
const char *account_name /* [in] [ref,charset(UTF16)] */,
const char *workstation /* [in] [ref,charset(UTF16)] */,
struct netr_UasInfo **info /* [out] [ref] */,
WERROR *werror)
{
struct netr_LogonUasLogon r;
NTSTATUS status;
/* In parameters */
r.in.server_name = server_name;
r.in.account_name = account_name;
r.in.workstation = workstation;
status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_LOGONUASLOGON,
&r);
if (!NT_STATUS_IS_OK(status)) {
return status;
}
if (NT_STATUS_IS_ERR(status)) {
return status;
}
/* Return variables */
*info = *r.out.info;
/* Return result */
if (werror) {
*werror = r.out.result;
}
return werror_to_ntstatus(r.out.result);
}
struct rpccli_netr_LogonUasLogoff_state {
struct netr_LogonUasLogoff orig;
struct netr_LogonUasLogoff tmp;
TALLOC_CTX *out_mem_ctx;
NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
};
static void rpccli_netr_LogonUasLogoff_done(struct tevent_req *subreq);
struct tevent_req *rpccli_netr_LogonUasLogoff_send(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
struct rpc_pipe_client *cli,
const char *_server_name /* [in] [unique,charset(UTF16)] */,
const char *_account_name /* [in] [ref,charset(UTF16)] */,
const char *_workstation /* [in] [ref,charset(UTF16)] */,
struct netr_UasLogoffInfo *_info /* [out] [ref] */)
{
struct tevent_req *req;
struct rpccli_netr_LogonUasLogoff_state *state;
struct tevent_req *subreq;
req = tevent_req_create(mem_ctx, &state,
struct rpccli_netr_LogonUasLogoff_state);
if (req == NULL) {
return NULL;
}
state->out_mem_ctx = NULL;
state->dispatch_recv = cli->dispatch_recv;
/* In parameters */
state->orig.in.server_name = _server_name;
state->orig.in.account_name = _account_name;
state->orig.in.workstation = _workstation;
/* Out parameters */
state->orig.out.info = _info;
/* Result */
ZERO_STRUCT(state->orig.out.result);
state->out_mem_ctx = talloc_named_const(state, 0,
"rpccli_netr_LogonUasLogoff_out_memory");
if (tevent_req_nomem(state->out_mem_ctx, req)) {
return tevent_req_post(req, ev);
}
/* make a temporary copy, that we pass to the dispatch function */
state->tmp = state->orig;
subreq = cli->dispatch_send(state, ev, cli,
&ndr_table_netlogon,
NDR_NETR_LOGONUASLOGOFF,
&state->tmp);
if (tevent_req_nomem(subreq, req)) {
return tevent_req_post(req, ev);
}
tevent_req_set_callback(subreq, rpccli_netr_LogonUasLogoff_done, req);
return req;
}
static void rpccli_netr_LogonUasLogoff_done(struct tevent_req *subreq)
{
struct tevent_req *req = tevent_req_callback_data(
subreq, struct tevent_req);
struct rpccli_netr_LogonUasLogoff_state *state = tevent_req_data(
req, struct rpccli_netr_LogonUasLogoff_state);
NTSTATUS status;
TALLOC_CTX *mem_ctx;
if (state->out_mem_ctx) {
mem_ctx = state->out_mem_ctx;
} else {
mem_ctx = state;
}
status = state->dispatch_recv(subreq, mem_ctx);
TALLOC_FREE(subreq);
if (!NT_STATUS_IS_OK(status)) {
tevent_req_nterror(req, status);
return;
}
/* Copy out parameters */
*state->orig.out.info = *state->tmp.out.info;
/* Copy result */
state->orig.out.result = state->tmp.out.result;
/* Reset temporary structure */
ZERO_STRUCT(state->tmp);
tevent_req_done(req);
}
NTSTATUS rpccli_netr_LogonUasLogoff_recv(struct tevent_req *req,
TALLOC_CTX *mem_ctx,
WERROR *result)
{
struct rpccli_netr_LogonUasLogoff_state *state = tevent_req_data(
req, struct rpccli_netr_LogonUasLogoff_state);
NTSTATUS status;
if (tevent_req_is_nterror(req, &status)) {
tevent_req_received(req);
return status;
}
/* Steal possbile out parameters to the callers context */
talloc_steal(mem_ctx, state->out_mem_ctx);
/* Return result */
*result = state->orig.out.result;
tevent_req_received(req);
return NT_STATUS_OK;
}
NTSTATUS rpccli_netr_LogonUasLogoff(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
const char *server_name /* [in] [unique,charset(UTF16)] */,
const char *account_name /* [in] [ref,charset(UTF16)] */,
const char *workstation /* [in] [ref,charset(UTF16)] */,
struct netr_UasLogoffInfo *info /* [out] [ref] */,
WERROR *werror)
{
struct netr_LogonUasLogoff r;
NTSTATUS status;
/* In parameters */
r.in.server_name = server_name;
r.in.account_name = account_name;
r.in.workstation = workstation;
status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_LOGONUASLOGOFF,
&r);
if (!NT_STATUS_IS_OK(status)) {
return status;
}
if (NT_STATUS_IS_ERR(status)) {
return status;
}
/* Return variables */
*info = *r.out.info;
/* Return result */
if (werror) {
*werror = r.out.result;
}
return werror_to_ntstatus(r.out.result);
}
struct rpccli_netr_LogonSamLogon_state {
struct netr_LogonSamLogon orig;
struct netr_LogonSamLogon tmp;
TALLOC_CTX *out_mem_ctx;
NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
};
static void rpccli_netr_LogonSamLogon_done(struct tevent_req *subreq);
struct tevent_req *rpccli_netr_LogonSamLogon_send(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
struct rpc_pipe_client *cli,
const char *_server_name /* [in] [unique,charset(UTF16)] */,
const char *_computer_name /* [in] [unique,charset(UTF16)] */,
struct netr_Authenticator *_credential /* [in] [unique] */,
struct netr_Authenticator *_return_authenticator /* [in,out] [unique] */,
enum netr_LogonInfoClass _logon_level /* [in] */,
union netr_LogonLevel *_logon /* [in] [ref,switch_is(logon_level)] */,
uint16_t _validation_level /* [in] */,
union netr_Validation *_validation /* [out] [ref,switch_is(validation_level)] */,
uint8_t *_authoritative /* [out] [ref] */)
{
struct tevent_req *req;
struct rpccli_netr_LogonSamLogon_state *state;
struct tevent_req *subreq;
req = tevent_req_create(mem_ctx, &state,
struct rpccli_netr_LogonSamLogon_state);
if (req == NULL) {
return NULL;
}
state->out_mem_ctx = NULL;
state->dispatch_recv = cli->dispatch_recv;
/* In parameters */
state->orig.in.server_name = _server_name;
state->orig.in.computer_name = _computer_name;
state->orig.in.credential = _credential;
state->orig.in.return_authenticator = _return_authenticator;
state->orig.in.logon_level = _logon_level;
state->orig.in.logon = _logon;
state->orig.in.validation_level = _validation_level;
/* Out parameters */
state->orig.out.return_authenticator = _return_authenticator;
state->orig.out.validation = _validation;
state->orig.out.authoritative = _authoritative;
/* Result */
ZERO_STRUCT(state->orig.out.result);
state->out_mem_ctx = talloc_named_const(state, 0,
"rpccli_netr_LogonSamLogon_out_memory");
if (tevent_req_nomem(state->out_mem_ctx, req)) {
return tevent_req_post(req, ev);
}
/* make a temporary copy, that we pass to the dispatch function */
state->tmp = state->orig;
subreq = cli->dispatch_send(state, ev, cli,
&ndr_table_netlogon,
NDR_NETR_LOGONSAMLOGON,
&state->tmp);
if (tevent_req_nomem(subreq, req)) {
return tevent_req_post(req, ev);
}
tevent_req_set_callback(subreq, rpccli_netr_LogonSamLogon_done, req);
return req;
}
static void rpccli_netr_LogonSamLogon_done(struct tevent_req *subreq)
{
struct tevent_req *req = tevent_req_callback_data(
subreq, struct tevent_req);
struct rpccli_netr_LogonSamLogon_state *state = tevent_req_data(
req, struct rpccli_netr_LogonSamLogon_state);
NTSTATUS status;
TALLOC_CTX *mem_ctx;
if (state->out_mem_ctx) {
mem_ctx = state->out_mem_ctx;
} else {
mem_ctx = state;
}
status = state->dispatch_recv(subreq, mem_ctx);
TALLOC_FREE(subreq);
if (!NT_STATUS_IS_OK(status)) {
tevent_req_nterror(req, status);
return;
}
/* Copy out parameters */
if (state->orig.out.return_authenticator && state->tmp.out.return_authenticator) {
*state->orig.out.return_authenticator = *state->tmp.out.return_authenticator;
}
*state->orig.out.validation = *state->tmp.out.validation;
*state->orig.out.authoritative = *state->tmp.out.authoritative;
/* Copy result */
state->orig.out.result = state->tmp.out.result;
/* Reset temporary structure */
ZERO_STRUCT(state->tmp);
tevent_req_done(req);
}
NTSTATUS rpccli_netr_LogonSamLogon_recv(struct tevent_req *req,
TALLOC_CTX *mem_ctx,
NTSTATUS *result)
{
struct rpccli_netr_LogonSamLogon_state *state = tevent_req_data(
req, struct rpccli_netr_LogonSamLogon_state);
NTSTATUS status;
if (tevent_req_is_nterror(req, &status)) {
tevent_req_received(req);
return status;
}
/* Steal possbile out parameters to the callers context */
talloc_steal(mem_ctx, state->out_mem_ctx);
/* Return result */
*result = state->orig.out.result;
tevent_req_received(req);
return NT_STATUS_OK;
}
NTSTATUS rpccli_netr_LogonSamLogon(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
const char *server_name /* [in] [unique,charset(UTF16)] */,
const char *computer_name /* [in] [unique,charset(UTF16)] */,
struct netr_Authenticator *credential /* [in] [unique] */,
struct netr_Authenticator *return_authenticator /* [in,out] [unique] */,
enum netr_LogonInfoClass logon_level /* [in] */,
union netr_LogonLevel *logon /* [in] [ref,switch_is(logon_level)] */,
uint16_t validation_level /* [in] */,
union netr_Validation *validation /* [out] [ref,switch_is(validation_level)] */,
uint8_t *authoritative /* [out] [ref] */)
{
struct netr_LogonSamLogon r;
NTSTATUS status;
/* In parameters */
r.in.server_name = server_name;
r.in.computer_name = computer_name;
r.in.credential = credential;
r.in.return_authenticator = return_authenticator;
r.in.logon_level = logon_level;
r.in.logon = logon;
r.in.validation_level = validation_level;
status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_LOGONSAMLOGON,
&r);
if (!NT_STATUS_IS_OK(status)) {
return status;
}
if (NT_STATUS_IS_ERR(status)) {
return status;
}
/* Return variables */
if (return_authenticator && r.out.return_authenticator) {
*return_authenticator = *r.out.return_authenticator;
}
*validation = *r.out.validation;
*authoritative = *r.out.authoritative;
/* Return result */
return r.out.result;
}
struct rpccli_netr_LogonSamLogoff_state {
struct netr_LogonSamLogoff orig;
struct netr_LogonSamLogoff tmp;
TALLOC_CTX *out_mem_ctx;
NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
};
static void rpccli_netr_LogonSamLogoff_done(struct tevent_req *subreq);
struct tevent_req *rpccli_netr_LogonSamLogoff_send(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
struct rpc_pipe_client *cli,
const char *_server_name /* [in] [unique,charset(UTF16)] */,
const char *_computer_name /* [in] [unique,charset(UTF16)] */,
struct netr_Authenticator *_credential /* [in] [unique] */,
struct netr_Authenticator *_return_authenticator /* [in,out] [unique] */,
enum netr_LogonInfoClass _logon_level /* [in] */,
union netr_LogonLevel _logon /* [in] [switch_is(logon_level)] */)
{
struct tevent_req *req;
struct rpccli_netr_LogonSamLogoff_state *state;
struct tevent_req *subreq;
req = tevent_req_create(mem_ctx, &state,
struct rpccli_netr_LogonSamLogoff_state);
if (req == NULL) {
return NULL;
}
state->out_mem_ctx = NULL;
state->dispatch_recv = cli->dispatch_recv;
/* In parameters */
state->orig.in.server_name = _server_name;
state->orig.in.computer_name = _computer_name;
state->orig.in.credential = _credential;
state->orig.in.return_authenticator = _return_authenticator;
state->orig.in.logon_level = _logon_level;
state->orig.in.logon = _logon;
/* Out parameters */
state->orig.out.return_authenticator = _return_authenticator;
/* Result */
ZERO_STRUCT(state->orig.out.result);
state->out_mem_ctx = talloc_named_const(state, 0,
"rpccli_netr_LogonSamLogoff_out_memory");
if (tevent_req_nomem(state->out_mem_ctx, req)) {
return tevent_req_post(req, ev);
}
/* make a temporary copy, that we pass to the dispatch function */
state->tmp = state->orig;
subreq = cli->dispatch_send(state, ev, cli,
&ndr_table_netlogon,
NDR_NETR_LOGONSAMLOGOFF,
&state->tmp);
if (tevent_req_nomem(subreq, req)) {
return tevent_req_post(req, ev);
}
tevent_req_set_callback(subreq, rpccli_netr_LogonSamLogoff_done, req);
return req;
}
static void rpccli_netr_LogonSamLogoff_done(struct tevent_req *subreq)
{
struct tevent_req *req = tevent_req_callback_data(
subreq, struct tevent_req);
struct rpccli_netr_LogonSamLogoff_state *state = tevent_req_data(
req, struct rpccli_netr_LogonSamLogoff_state);
NTSTATUS status;
TALLOC_CTX *mem_ctx;
if (state->out_mem_ctx) {
mem_ctx = state->out_mem_ctx;
} else {
mem_ctx = state;
}
status = state->dispatch_recv(subreq, mem_ctx);
TALLOC_FREE(subreq);
if (!NT_STATUS_IS_OK(status)) {
tevent_req_nterror(req, status);
return;
}
/* Copy out parameters */
if (state->orig.out.return_authenticator && state->tmp.out.return_authenticator) {
*state->orig.out.return_authenticator = *state->tmp.out.return_authenticator;
}
/* Copy result */
state->orig.out.result = state->tmp.out.result;
/* Reset temporary structure */
ZERO_STRUCT(state->tmp);
tevent_req_done(req);
}
NTSTATUS rpccli_netr_LogonSamLogoff_recv(struct tevent_req *req,
TALLOC_CTX *mem_ctx,
NTSTATUS *result)
{
struct rpccli_netr_LogonSamLogoff_state *state = tevent_req_data(
req, struct rpccli_netr_LogonSamLogoff_state);
NTSTATUS status;
if (tevent_req_is_nterror(req, &status)) {
tevent_req_received(req);
return status;
}
/* Steal possbile out parameters to the callers context */
talloc_steal(mem_ctx, state->out_mem_ctx);
/* Return result */
*result = state->orig.out.result;
tevent_req_received(req);
return NT_STATUS_OK;
}
NTSTATUS rpccli_netr_LogonSamLogoff(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
const char *server_name /* [in] [unique,charset(UTF16)] */,
const char *computer_name /* [in] [unique,charset(UTF16)] */,
struct netr_Authenticator *credential /* [in] [unique] */,
struct netr_Authenticator *return_authenticator /* [in,out] [unique] */,
enum netr_LogonInfoClass logon_level /* [in] */,
union netr_LogonLevel logon /* [in] [switch_is(logon_level)] */)
{
struct netr_LogonSamLogoff r;
NTSTATUS status;
/* In parameters */
r.in.server_name = server_name;
r.in.computer_name = computer_name;
r.in.credential = credential;
r.in.return_authenticator = return_authenticator;
r.in.logon_level = logon_level;
r.in.logon = logon;
status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_LOGONSAMLOGOFF,
&r);
if (!NT_STATUS_IS_OK(status)) {
return status;
}
if (NT_STATUS_IS_ERR(status)) {
return status;
}
/* Return variables */
if (return_authenticator && r.out.return_authenticator) {
*return_authenticator = *r.out.return_authenticator;
}
/* Return result */
return r.out.result;
}
struct rpccli_netr_ServerReqChallenge_state {
struct netr_ServerReqChallenge orig;
struct netr_ServerReqChallenge tmp;
TALLOC_CTX *out_mem_ctx;
NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
};
static void rpccli_netr_ServerReqChallenge_done(struct tevent_req *subreq);
struct tevent_req *rpccli_netr_ServerReqChallenge_send(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
struct rpc_pipe_client *cli,
const char *_server_name /* [in] [unique,charset(UTF16)] */,
const char *_computer_name /* [in] [ref,charset(UTF16)] */,
struct netr_Credential *_credentials /* [in] [ref] */,
struct netr_Credential *_return_credentials /* [out] [ref] */)
{
struct tevent_req *req;
struct rpccli_netr_ServerReqChallenge_state *state;
struct tevent_req *subreq;
req = tevent_req_create(mem_ctx, &state,
struct rpccli_netr_ServerReqChallenge_state);
if (req == NULL) {
return NULL;
}
state->out_mem_ctx = NULL;
state->dispatch_recv = cli->dispatch_recv;
/* In parameters */
state->orig.in.server_name = _server_name;
state->orig.in.computer_name = _computer_name;
state->orig.in.credentials = _credentials;
/* Out parameters */
state->orig.out.return_credentials = _return_credentials;
/* Result */
ZERO_STRUCT(state->orig.out.result);
state->out_mem_ctx = talloc_named_const(state, 0,
"rpccli_netr_ServerReqChallenge_out_memory");
if (tevent_req_nomem(state->out_mem_ctx, req)) {
return tevent_req_post(req, ev);
}
/* make a temporary copy, that we pass to the dispatch function */
state->tmp = state->orig;
subreq = cli->dispatch_send(state, ev, cli,
&ndr_table_netlogon,
NDR_NETR_SERVERREQCHALLENGE,
&state->tmp);
if (tevent_req_nomem(subreq, req)) {
return tevent_req_post(req, ev);
}
tevent_req_set_callback(subreq, rpccli_netr_ServerReqChallenge_done, req);
return req;
}
static void rpccli_netr_ServerReqChallenge_done(struct tevent_req *subreq)
{
struct tevent_req *req = tevent_req_callback_data(
subreq, struct tevent_req);
struct rpccli_netr_ServerReqChallenge_state *state = tevent_req_data(
req, struct rpccli_netr_ServerReqChallenge_state);
NTSTATUS status;
TALLOC_CTX *mem_ctx;
if (state->out_mem_ctx) {
mem_ctx = state->out_mem_ctx;
} else {
mem_ctx = state;
}
status = state->dispatch_recv(subreq, mem_ctx);
TALLOC_FREE(subreq);
if (!NT_STATUS_IS_OK(status)) {
tevent_req_nterror(req, status);
return;
}
/* Copy out parameters */
*state->orig.out.return_credentials = *state->tmp.out.return_credentials;
/* Copy result */
state->orig.out.result = state->tmp.out.result;
/* Reset temporary structure */
ZERO_STRUCT(state->tmp);
tevent_req_done(req);
}
NTSTATUS rpccli_netr_ServerReqChallenge_recv(struct tevent_req *req,
TALLOC_CTX *mem_ctx,
NTSTATUS *result)
{
struct rpccli_netr_ServerReqChallenge_state *state = tevent_req_data(
req, struct rpccli_netr_ServerReqChallenge_state);
NTSTATUS status;
if (tevent_req_is_nterror(req, &status)) {
tevent_req_received(req);
return status;
}
/* Steal possbile out parameters to the callers context */
talloc_steal(mem_ctx, state->out_mem_ctx);
/* Return result */
*result = state->orig.out.result;
tevent_req_received(req);
return NT_STATUS_OK;
}
NTSTATUS rpccli_netr_ServerReqChallenge(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
const char *server_name /* [in] [unique,charset(UTF16)] */,
const char *computer_name /* [in] [ref,charset(UTF16)] */,
struct netr_Credential *credentials /* [in] [ref] */,
struct netr_Credential *return_credentials /* [out] [ref] */)
{
struct netr_ServerReqChallenge r;
NTSTATUS status;
/* In parameters */
r.in.server_name = server_name;
r.in.computer_name = computer_name;
r.in.credentials = credentials;
status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_SERVERREQCHALLENGE,
&r);
if (!NT_STATUS_IS_OK(status)) {
return status;
}
if (NT_STATUS_IS_ERR(status)) {
return status;
}
/* Return variables */
*return_credentials = *r.out.return_credentials;
/* Return result */
return r.out.result;
}
struct rpccli_netr_ServerAuthenticate_state {
struct netr_ServerAuthenticate orig;
struct netr_ServerAuthenticate tmp;
TALLOC_CTX *out_mem_ctx;
NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
};
static void rpccli_netr_ServerAuthenticate_done(struct tevent_req *subreq);
struct tevent_req *rpccli_netr_ServerAuthenticate_send(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
struct rpc_pipe_client *cli,
const char *_server_name /* [in] [unique,charset(UTF16)] */,
const char *_account_name /* [in] [ref,charset(UTF16)] */,
enum netr_SchannelType _secure_channel_type /* [in] */,
const char *_computer_name /* [in] [ref,charset(UTF16)] */,
struct netr_Credential *_credentials /* [in] [ref] */,
struct netr_Credential *_return_credentials /* [out] [ref] */)
{
struct tevent_req *req;
struct rpccli_netr_ServerAuthenticate_state *state;
struct tevent_req *subreq;
req = tevent_req_create(mem_ctx, &state,
struct rpccli_netr_ServerAuthenticate_state);
if (req == NULL) {
return NULL;
}
state->out_mem_ctx = NULL;
state->dispatch_recv = cli->dispatch_recv;
/* In parameters */
state->orig.in.server_name = _server_name;
state->orig.in.account_name = _account_name;
state->orig.in.secure_channel_type = _secure_channel_type;
state->orig.in.computer_name = _computer_name;
state->orig.in.credentials = _credentials;
/* Out parameters */
state->orig.out.return_credentials = _return_credentials;
/* Result */
ZERO_STRUCT(state->orig.out.result);
state->out_mem_ctx = talloc_named_const(state, 0,
"rpccli_netr_ServerAuthenticate_out_memory");
if (tevent_req_nomem(state->out_mem_ctx, req)) {
return tevent_req_post(req, ev);
}
/* make a temporary copy, that we pass to the dispatch function */
state->tmp = state->orig;
subreq = cli->dispatch_send(state, ev, cli,
&ndr_table_netlogon,
NDR_NETR_SERVERAUTHENTICATE,
&state->tmp);
if (tevent_req_nomem(subreq, req)) {
return tevent_req_post(req, ev);
}
tevent_req_set_callback(subreq, rpccli_netr_ServerAuthenticate_done, req);
return req;
}
static void rpccli_netr_ServerAuthenticate_done(struct tevent_req *subreq)
{
struct tevent_req *req = tevent_req_callback_data(
subreq, struct tevent_req);
struct rpccli_netr_ServerAuthenticate_state *state = tevent_req_data(
req, struct rpccli_netr_ServerAuthenticate_state);
NTSTATUS status;
TALLOC_CTX *mem_ctx;
if (state->out_mem_ctx) {
mem_ctx = state->out_mem_ctx;
} else {
mem_ctx = state;
}
status = state->dispatch_recv(subreq, mem_ctx);
TALLOC_FREE(subreq);
if (!NT_STATUS_IS_OK(status)) {
tevent_req_nterror(req, status);
return;
}
/* Copy out parameters */
*state->orig.out.return_credentials = *state->tmp.out.return_credentials;
/* Copy result */
state->orig.out.result = state->tmp.out.result;
/* Reset temporary structure */
ZERO_STRUCT(state->tmp);
tevent_req_done(req);
}
NTSTATUS rpccli_netr_ServerAuthenticate_recv(struct tevent_req *req,
TALLOC_CTX *mem_ctx,
NTSTATUS *result)
{
struct rpccli_netr_ServerAuthenticate_state *state = tevent_req_data(
req, struct rpccli_netr_ServerAuthenticate_state);
NTSTATUS status;
if (tevent_req_is_nterror(req, &status)) {
tevent_req_received(req);
return status;
}
/* Steal possbile out parameters to the callers context */
talloc_steal(mem_ctx, state->out_mem_ctx);
/* Return result */
*result = state->orig.out.result;
tevent_req_received(req);
return NT_STATUS_OK;
}
NTSTATUS rpccli_netr_ServerAuthenticate(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
const char *server_name /* [in] [unique,charset(UTF16)] */,
const char *account_name /* [in] [ref,charset(UTF16)] */,
enum netr_SchannelType secure_channel_type /* [in] */,
const char *computer_name /* [in] [ref,charset(UTF16)] */,
struct netr_Credential *credentials /* [in] [ref] */,
struct netr_Credential *return_credentials /* [out] [ref] */)
{
struct netr_ServerAuthenticate r;
NTSTATUS status;
/* In parameters */
r.in.server_name = server_name;
r.in.account_name = account_name;
r.in.secure_channel_type = secure_channel_type;
r.in.computer_name = computer_name;
r.in.credentials = credentials;
status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_SERVERAUTHENTICATE,
&r);
if (!NT_STATUS_IS_OK(status)) {
return status;
}
if (NT_STATUS_IS_ERR(status)) {
return status;
}
/* Return variables */
*return_credentials = *r.out.return_credentials;
/* Return result */
return r.out.result;
}
struct rpccli_netr_ServerPasswordSet_state {
struct netr_ServerPasswordSet orig;
struct netr_ServerPasswordSet tmp;
TALLOC_CTX *out_mem_ctx;
NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
};
static void rpccli_netr_ServerPasswordSet_done(struct tevent_req *subreq);
struct tevent_req *rpccli_netr_ServerPasswordSet_send(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
struct rpc_pipe_client *cli,
const char *_server_name /* [in] [unique,charset(UTF16)] */,
const char *_account_name /* [in] [ref,charset(UTF16)] */,
enum netr_SchannelType _secure_channel_type /* [in] */,
const char *_computer_name /* [in] [ref,charset(UTF16)] */,
struct netr_Authenticator *_credential /* [in] [ref] */,
struct netr_Authenticator *_return_authenticator /* [out] [ref] */,
struct samr_Password *_new_password /* [in] [ref] */)
{
struct tevent_req *req;
struct rpccli_netr_ServerPasswordSet_state *state;
struct tevent_req *subreq;
req = tevent_req_create(mem_ctx, &state,
struct rpccli_netr_ServerPasswordSet_state);
if (req == NULL) {
return NULL;
}
state->out_mem_ctx = NULL;
state->dispatch_recv = cli->dispatch_recv;
/* In parameters */
state->orig.in.server_name = _server_name;
state->orig.in.account_name = _account_name;
state->orig.in.secure_channel_type = _secure_channel_type;
state->orig.in.computer_name = _computer_name;
state->orig.in.credential = _credential;
state->orig.in.new_password = _new_password;
/* Out parameters */
state->orig.out.return_authenticator = _return_authenticator;
/* Result */
ZERO_STRUCT(state->orig.out.result);
state->out_mem_ctx = talloc_named_const(state, 0,
"rpccli_netr_ServerPasswordSet_out_memory");
if (tevent_req_nomem(state->out_mem_ctx, req)) {
return tevent_req_post(req, ev);
}
/* make a temporary copy, that we pass to the dispatch function */
state->tmp = state->orig;
subreq = cli->dispatch_send(state, ev, cli,
&ndr_table_netlogon,
NDR_NETR_SERVERPASSWORDSET,
&state->tmp);
if (tevent_req_nomem(subreq, req)) {
return tevent_req_post(req, ev);
}
tevent_req_set_callback(subreq, rpccli_netr_ServerPasswordSet_done, req);
return req;
}
static void rpccli_netr_ServerPasswordSet_done(struct tevent_req *subreq)
{
struct tevent_req *req = tevent_req_callback_data(
subreq, struct tevent_req);
struct rpccli_netr_ServerPasswordSet_state *state = tevent_req_data(
req, struct rpccli_netr_ServerPasswordSet_state);
NTSTATUS status;
TALLOC_CTX *mem_ctx;
if (state->out_mem_ctx) {
mem_ctx = state->out_mem_ctx;
} else {
mem_ctx = state;
}
status = state->dispatch_recv(subreq, mem_ctx);
TALLOC_FREE(subreq);
if (!NT_STATUS_IS_OK(status)) {
tevent_req_nterror(req, status);
return;
}
/* Copy out parameters */
*state->orig.out.return_authenticator = *state->tmp.out.return_authenticator;
/* Copy result */
state->orig.out.result = state->tmp.out.result;
/* Reset temporary structure */
ZERO_STRUCT(state->tmp);
tevent_req_done(req);
}
NTSTATUS rpccli_netr_ServerPasswordSet_recv(struct tevent_req *req,
TALLOC_CTX *mem_ctx,
NTSTATUS *result)
{
struct rpccli_netr_ServerPasswordSet_state *state = tevent_req_data(
req, struct rpccli_netr_ServerPasswordSet_state);
NTSTATUS status;
if (tevent_req_is_nterror(req, &status)) {
tevent_req_received(req);
return status;
}
/* Steal possbile out parameters to the callers context */
talloc_steal(mem_ctx, state->out_mem_ctx);
/* Return result */
*result = state->orig.out.result;
tevent_req_received(req);
return NT_STATUS_OK;
}
NTSTATUS rpccli_netr_ServerPasswordSet(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
const char *server_name /* [in] [unique,charset(UTF16)] */,
const char *account_name /* [in] [ref,charset(UTF16)] */,
enum netr_SchannelType secure_channel_type /* [in] */,
const char *computer_name /* [in] [ref,charset(UTF16)] */,
struct netr_Authenticator *credential /* [in] [ref] */,
struct netr_Authenticator *return_authenticator /* [out] [ref] */,
struct samr_Password *new_password /* [in] [ref] */)
{
struct netr_ServerPasswordSet r;
NTSTATUS status;
/* In parameters */
r.in.server_name = server_name;
r.in.account_name = account_name;
r.in.secure_channel_type = secure_channel_type;
r.in.computer_name = computer_name;
r.in.credential = credential;
r.in.new_password = new_password;
status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_SERVERPASSWORDSET,
&r);
if (!NT_STATUS_IS_OK(status)) {
return status;
}
if (NT_STATUS_IS_ERR(status)) {
return status;
}
/* Return variables */
*return_authenticator = *r.out.return_authenticator;
/* Return result */
return r.out.result;
}
struct rpccli_netr_DatabaseDeltas_state {
struct netr_DatabaseDeltas orig;
struct netr_DatabaseDeltas tmp;
TALLOC_CTX *out_mem_ctx;
NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
};
static void rpccli_netr_DatabaseDeltas_done(struct tevent_req *subreq);
struct tevent_req *rpccli_netr_DatabaseDeltas_send(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
struct rpc_pipe_client *cli,
const char *_logon_server /* [in] [ref,charset(UTF16)] */,
const char *_computername /* [in] [ref,charset(UTF16)] */,
struct netr_Authenticator *_credential /* [in] [ref] */,
struct netr_Authenticator *_return_authenticator /* [in,out] [ref] */,
enum netr_SamDatabaseID _database_id /* [in] */,
uint64_t *_sequence_num /* [in,out] [ref] */,
struct netr_DELTA_ENUM_ARRAY **_delta_enum_array /* [out] [ref] */,
uint32_t _preferredmaximumlength /* [in] */)
{
struct tevent_req *req;
struct rpccli_netr_DatabaseDeltas_state *state;
struct tevent_req *subreq;
req = tevent_req_create(mem_ctx, &state,
struct rpccli_netr_DatabaseDeltas_state);
if (req == NULL) {
return NULL;
}
state->out_mem_ctx = NULL;
state->dispatch_recv = cli->dispatch_recv;
/* In parameters */
state->orig.in.logon_server = _logon_server;
state->orig.in.computername = _computername;
state->orig.in.credential = _credential;
state->orig.in.return_authenticator = _return_authenticator;
state->orig.in.database_id = _database_id;
state->orig.in.sequence_num = _sequence_num;
state->orig.in.preferredmaximumlength = _preferredmaximumlength;
/* Out parameters */
state->orig.out.return_authenticator = _return_authenticator;
state->orig.out.sequence_num = _sequence_num;
state->orig.out.delta_enum_array = _delta_enum_array;
/* Result */
ZERO_STRUCT(state->orig.out.result);
state->out_mem_ctx = talloc_named_const(state, 0,
"rpccli_netr_DatabaseDeltas_out_memory");
if (tevent_req_nomem(state->out_mem_ctx, req)) {
return tevent_req_post(req, ev);
}
/* make a temporary copy, that we pass to the dispatch function */
state->tmp = state->orig;
subreq = cli->dispatch_send(state, ev, cli,
&ndr_table_netlogon,
NDR_NETR_DATABASEDELTAS,
&state->tmp);
if (tevent_req_nomem(subreq, req)) {
return tevent_req_post(req, ev);
}
tevent_req_set_callback(subreq, rpccli_netr_DatabaseDeltas_done, req);
return req;
}
static void rpccli_netr_DatabaseDeltas_done(struct tevent_req *subreq)
{
struct tevent_req *req = tevent_req_callback_data(
subreq, struct tevent_req);
struct rpccli_netr_DatabaseDeltas_state *state = tevent_req_data(
req, struct rpccli_netr_DatabaseDeltas_state);
NTSTATUS status;
TALLOC_CTX *mem_ctx;
if (state->out_mem_ctx) {
mem_ctx = state->out_mem_ctx;
} else {
mem_ctx = state;
}
status = state->dispatch_recv(subreq, mem_ctx);
TALLOC_FREE(subreq);
if (!NT_STATUS_IS_OK(status)) {
tevent_req_nterror(req, status);
return;
}
/* Copy out parameters */
*state->orig.out.return_authenticator = *state->tmp.out.return_authenticator;
*state->orig.out.sequence_num = *state->tmp.out.sequence_num;
*state->orig.out.delta_enum_array = *state->tmp.out.delta_enum_array;
/* Copy result */
state->orig.out.result = state->tmp.out.result;
/* Reset temporary structure */
ZERO_STRUCT(state->tmp);
tevent_req_done(req);
}
NTSTATUS rpccli_netr_DatabaseDeltas_recv(struct tevent_req *req,
TALLOC_CTX *mem_ctx,
NTSTATUS *result)
{
struct rpccli_netr_DatabaseDeltas_state *state = tevent_req_data(
req, struct rpccli_netr_DatabaseDeltas_state);
NTSTATUS status;
if (tevent_req_is_nterror(req, &status)) {
tevent_req_received(req);
return status;
}
/* Steal possbile out parameters to the callers context */
talloc_steal(mem_ctx, state->out_mem_ctx);
/* Return result */
*result = state->orig.out.result;
tevent_req_received(req);
return NT_STATUS_OK;
}
NTSTATUS rpccli_netr_DatabaseDeltas(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
const char *logon_server /* [in] [ref,charset(UTF16)] */,
const char *computername /* [in] [ref,charset(UTF16)] */,
struct netr_Authenticator *credential /* [in] [ref] */,
struct netr_Authenticator *return_authenticator /* [in,out] [ref] */,
enum netr_SamDatabaseID database_id /* [in] */,
uint64_t *sequence_num /* [in,out] [ref] */,
struct netr_DELTA_ENUM_ARRAY **delta_enum_array /* [out] [ref] */,
uint32_t preferredmaximumlength /* [in] */)
{
struct netr_DatabaseDeltas r;
NTSTATUS status;
/* In parameters */
r.in.logon_server = logon_server;
r.in.computername = computername;
r.in.credential = credential;
r.in.return_authenticator = return_authenticator;
r.in.database_id = database_id;
r.in.sequence_num = sequence_num;
r.in.preferredmaximumlength = preferredmaximumlength;
status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_DATABASEDELTAS,
&r);
if (!NT_STATUS_IS_OK(status)) {
return status;
}
if (NT_STATUS_IS_ERR(status)) {
return status;
}
/* Return variables */
*return_authenticator = *r.out.return_authenticator;
*sequence_num = *r.out.sequence_num;
*delta_enum_array = *r.out.delta_enum_array;
/* Return result */
return r.out.result;
}
struct rpccli_netr_DatabaseSync_state {
struct netr_DatabaseSync orig;
struct netr_DatabaseSync tmp;
TALLOC_CTX *out_mem_ctx;
NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
};
static void rpccli_netr_DatabaseSync_done(struct tevent_req *subreq);
struct tevent_req *rpccli_netr_DatabaseSync_send(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
struct rpc_pipe_client *cli,
const char *_logon_server /* [in] [ref,charset(UTF16)] */,
const char *_computername /* [in] [ref,charset(UTF16)] */,
struct netr_Authenticator *_credential /* [in] [ref] */,
struct netr_Authenticator *_return_authenticator /* [in,out] [ref] */,
enum netr_SamDatabaseID _database_id /* [in] */,
uint32_t *_sync_context /* [in,out] [ref] */,
struct netr_DELTA_ENUM_ARRAY **_delta_enum_array /* [out] [ref] */,
uint32_t _preferredmaximumlength /* [in] */)
{
struct tevent_req *req;
struct rpccli_netr_DatabaseSync_state *state;
struct tevent_req *subreq;
req = tevent_req_create(mem_ctx, &state,
struct rpccli_netr_DatabaseSync_state);
if (req == NULL) {
return NULL;
}
state->out_mem_ctx = NULL;
state->dispatch_recv = cli->dispatch_recv;
/* In parameters */
state->orig.in.logon_server = _logon_server;
state->orig.in.computername = _computername;
state->orig.in.credential = _credential;
state->orig.in.return_authenticator = _return_authenticator;
state->orig.in.database_id = _database_id;
state->orig.in.sync_context = _sync_context;
state->orig.in.preferredmaximumlength = _preferredmaximumlength;
/* Out parameters */
state->orig.out.return_authenticator = _return_authenticator;
state->orig.out.sync_context = _sync_context;
state->orig.out.delta_enum_array = _delta_enum_array;
/* Result */
ZERO_STRUCT(state->orig.out.result);
state->out_mem_ctx = talloc_named_const(state, 0,
"rpccli_netr_DatabaseSync_out_memory");
if (tevent_req_nomem(state->out_mem_ctx, req)) {
return tevent_req_post(req, ev);
}
/* make a temporary copy, that we pass to the dispatch function */
state->tmp = state->orig;
subreq = cli->dispatch_send(state, ev, cli,
&ndr_table_netlogon,
NDR_NETR_DATABASESYNC,
&state->tmp);
if (tevent_req_nomem(subreq, req)) {
return tevent_req_post(req, ev);
}
tevent_req_set_callback(subreq, rpccli_netr_DatabaseSync_done, req);
return req;
}
static void rpccli_netr_DatabaseSync_done(struct tevent_req *subreq)
{
struct tevent_req *req = tevent_req_callback_data(
subreq, struct tevent_req);
struct rpccli_netr_DatabaseSync_state *state = tevent_req_data(
req, struct rpccli_netr_DatabaseSync_state);
NTSTATUS status;
TALLOC_CTX *mem_ctx;
if (state->out_mem_ctx) {
mem_ctx = state->out_mem_ctx;
} else {
mem_ctx = state;
}
status = state->dispatch_recv(subreq, mem_ctx);
TALLOC_FREE(subreq);
if (!NT_STATUS_IS_OK(status)) {
tevent_req_nterror(req, status);
return;
}
/* Copy out parameters */
*state->orig.out.return_authenticator = *state->tmp.out.return_authenticator;
*state->orig.out.sync_context = *state->tmp.out.sync_context;
*state->orig.out.delta_enum_array = *state->tmp.out.delta_enum_array;
/* Copy result */
state->orig.out.result = state->tmp.out.result;
/* Reset temporary structure */
ZERO_STRUCT(state->tmp);
tevent_req_done(req);
}
NTSTATUS rpccli_netr_DatabaseSync_recv(struct tevent_req *req,
TALLOC_CTX *mem_ctx,
NTSTATUS *result)
{
struct rpccli_netr_DatabaseSync_state *state = tevent_req_data(
req, struct rpccli_netr_DatabaseSync_state);
NTSTATUS status;
if (tevent_req_is_nterror(req, &status)) {
tevent_req_received(req);
return status;
}
/* Steal possbile out parameters to the callers context */
talloc_steal(mem_ctx, state->out_mem_ctx);
/* Return result */
*result = state->orig.out.result;
tevent_req_received(req);
return NT_STATUS_OK;
}
NTSTATUS rpccli_netr_DatabaseSync(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
const char *logon_server /* [in] [ref,charset(UTF16)] */,
const char *computername /* [in] [ref,charset(UTF16)] */,
struct netr_Authenticator *credential /* [in] [ref] */,
struct netr_Authenticator *return_authenticator /* [in,out] [ref] */,
enum netr_SamDatabaseID database_id /* [in] */,
uint32_t *sync_context /* [in,out] [ref] */,
struct netr_DELTA_ENUM_ARRAY **delta_enum_array /* [out] [ref] */,
uint32_t preferredmaximumlength /* [in] */)
{
struct netr_DatabaseSync r;
NTSTATUS status;
/* In parameters */
r.in.logon_server = logon_server;
r.in.computername = computername;
r.in.credential = credential;
r.in.return_authenticator = return_authenticator;
r.in.database_id = database_id;
r.in.sync_context = sync_context;
r.in.preferredmaximumlength = preferredmaximumlength;
status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_DATABASESYNC,
&r);
if (!NT_STATUS_IS_OK(status)) {
return status;
}
if (NT_STATUS_IS_ERR(status)) {
return status;
}
/* Return variables */
*return_authenticator = *r.out.return_authenticator;
*sync_context = *r.out.sync_context;
*delta_enum_array = *r.out.delta_enum_array;
/* Return result */
return r.out.result;
}
struct rpccli_netr_AccountDeltas_state {
struct netr_AccountDeltas orig;
struct netr_AccountDeltas tmp;
TALLOC_CTX *out_mem_ctx;
NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
};
static void rpccli_netr_AccountDeltas_done(struct tevent_req *subreq);
struct tevent_req *rpccli_netr_AccountDeltas_send(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
struct rpc_pipe_client *cli,
const char *_logon_server /* [in] [unique,charset(UTF16)] */,
const char *_computername /* [in] [ref,charset(UTF16)] */,
struct netr_Authenticator _credential /* [in] */,
struct netr_Authenticator *_return_authenticator /* [in,out] [ref] */,
struct netr_UAS_INFO_0 _uas /* [in] */,
uint32_t _count /* [in] */,
uint32_t _level /* [in] */,
uint32_t _buffersize /* [in] */,
struct netr_AccountBuffer *_buffer /* [out] [ref,subcontext(4)] */,
uint32_t *_count_returned /* [out] [ref] */,
uint32_t *_total_entries /* [out] [ref] */,
struct netr_UAS_INFO_0 *_recordid /* [out] [ref] */)
{
struct tevent_req *req;
struct rpccli_netr_AccountDeltas_state *state;
struct tevent_req *subreq;
req = tevent_req_create(mem_ctx, &state,
struct rpccli_netr_AccountDeltas_state);
if (req == NULL) {
return NULL;
}
state->out_mem_ctx = NULL;
state->dispatch_recv = cli->dispatch_recv;
/* In parameters */
state->orig.in.logon_server = _logon_server;
state->orig.in.computername = _computername;
state->orig.in.credential = _credential;
state->orig.in.return_authenticator = _return_authenticator;
state->orig.in.uas = _uas;
state->orig.in.count = _count;
state->orig.in.level = _level;
state->orig.in.buffersize = _buffersize;
/* Out parameters */
state->orig.out.return_authenticator = _return_authenticator;
state->orig.out.buffer = _buffer;
state->orig.out.count_returned = _count_returned;
state->orig.out.total_entries = _total_entries;
state->orig.out.recordid = _recordid;
/* Result */
ZERO_STRUCT(state->orig.out.result);
state->out_mem_ctx = talloc_named_const(state, 0,
"rpccli_netr_AccountDeltas_out_memory");
if (tevent_req_nomem(state->out_mem_ctx, req)) {
return tevent_req_post(req, ev);
}
/* make a temporary copy, that we pass to the dispatch function */
state->tmp = state->orig;
subreq = cli->dispatch_send(state, ev, cli,
&ndr_table_netlogon,
NDR_NETR_ACCOUNTDELTAS,
&state->tmp);
if (tevent_req_nomem(subreq, req)) {
return tevent_req_post(req, ev);
}
tevent_req_set_callback(subreq, rpccli_netr_AccountDeltas_done, req);
return req;
}
static void rpccli_netr_AccountDeltas_done(struct tevent_req *subreq)
{
struct tevent_req *req = tevent_req_callback_data(
subreq, struct tevent_req);
struct rpccli_netr_AccountDeltas_state *state = tevent_req_data(
req, struct rpccli_netr_AccountDeltas_state);
NTSTATUS status;
TALLOC_CTX *mem_ctx;
if (state->out_mem_ctx) {
mem_ctx = state->out_mem_ctx;
} else {
mem_ctx = state;
}
status = state->dispatch_recv(subreq, mem_ctx);
TALLOC_FREE(subreq);
if (!NT_STATUS_IS_OK(status)) {
tevent_req_nterror(req, status);
return;
}
/* Copy out parameters */
*state->orig.out.return_authenticator = *state->tmp.out.return_authenticator;
*state->orig.out.buffer = *state->tmp.out.buffer;
*state->orig.out.count_returned = *state->tmp.out.count_returned;
*state->orig.out.total_entries = *state->tmp.out.total_entries;
*state->orig.out.recordid = *state->tmp.out.recordid;
/* Copy result */
state->orig.out.result = state->tmp.out.result;
/* Reset temporary structure */
ZERO_STRUCT(state->tmp);
tevent_req_done(req);
}
NTSTATUS rpccli_netr_AccountDeltas_recv(struct tevent_req *req,
TALLOC_CTX *mem_ctx,
NTSTATUS *result)
{
struct rpccli_netr_AccountDeltas_state *state = tevent_req_data(
req, struct rpccli_netr_AccountDeltas_state);
NTSTATUS status;
if (tevent_req_is_nterror(req, &status)) {
tevent_req_received(req);
return status;
}
/* Steal possbile out parameters to the callers context */
talloc_steal(mem_ctx, state->out_mem_ctx);
/* Return result */
*result = state->orig.out.result;
tevent_req_received(req);
return NT_STATUS_OK;
}
NTSTATUS rpccli_netr_AccountDeltas(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
const char *logon_server /* [in] [unique,charset(UTF16)] */,
const char *computername /* [in] [ref,charset(UTF16)] */,
struct netr_Authenticator credential /* [in] */,
struct netr_Authenticator *return_authenticator /* [in,out] [ref] */,
struct netr_UAS_INFO_0 uas /* [in] */,
uint32_t count /* [in] */,
uint32_t level /* [in] */,
uint32_t buffersize /* [in] */,
struct netr_AccountBuffer *buffer /* [out] [ref,subcontext(4)] */,
uint32_t *count_returned /* [out] [ref] */,
uint32_t *total_entries /* [out] [ref] */,
struct netr_UAS_INFO_0 *recordid /* [out] [ref] */)
{
struct netr_AccountDeltas r;
NTSTATUS status;
/* In parameters */
r.in.logon_server = logon_server;
r.in.computername = computername;
r.in.credential = credential;
r.in.return_authenticator = return_authenticator;
r.in.uas = uas;
r.in.count = count;
r.in.level = level;
r.in.buffersize = buffersize;
status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_ACCOUNTDELTAS,
&r);
if (!NT_STATUS_IS_OK(status)) {
return status;
}
if (NT_STATUS_IS_ERR(status)) {
return status;
}
/* Return variables */
*return_authenticator = *r.out.return_authenticator;
*buffer = *r.out.buffer;
*count_returned = *r.out.count_returned;
*total_entries = *r.out.total_entries;
*recordid = *r.out.recordid;
/* Return result */
return r.out.result;
}
struct rpccli_netr_AccountSync_state {
struct netr_AccountSync orig;
struct netr_AccountSync tmp;
TALLOC_CTX *out_mem_ctx;
NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
};
static void rpccli_netr_AccountSync_done(struct tevent_req *subreq);
struct tevent_req *rpccli_netr_AccountSync_send(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
struct rpc_pipe_client *cli,
const char *_logon_server /* [in] [unique,charset(UTF16)] */,
const char *_computername /* [in] [ref,charset(UTF16)] */,
struct netr_Authenticator _credential /* [in] */,
struct netr_Authenticator *_return_authenticator /* [in,out] [ref] */,
uint32_t _reference /* [in] */,
uint32_t _level /* [in] */,
uint32_t _buffersize /* [in] */,
struct netr_AccountBuffer *_buffer /* [out] [ref,subcontext(4)] */,
uint32_t *_count_returned /* [out] [ref] */,
uint32_t *_total_entries /* [out] [ref] */,
uint32_t *_next_reference /* [out] [ref] */,
struct netr_UAS_INFO_0 *_recordid /* [in,out] [ref] */)
{
struct tevent_req *req;
struct rpccli_netr_AccountSync_state *state;
struct tevent_req *subreq;
req = tevent_req_create(mem_ctx, &state,
struct rpccli_netr_AccountSync_state);
if (req == NULL) {
return NULL;
}
state->out_mem_ctx = NULL;
state->dispatch_recv = cli->dispatch_recv;
/* In parameters */
state->orig.in.logon_server = _logon_server;
state->orig.in.computername = _computername;
state->orig.in.credential = _credential;
state->orig.in.return_authenticator = _return_authenticator;
state->orig.in.reference = _reference;
state->orig.in.level = _level;
state->orig.in.buffersize = _buffersize;
state->orig.in.recordid = _recordid;
/* Out parameters */
state->orig.out.return_authenticator = _return_authenticator;
state->orig.out.buffer = _buffer;
state->orig.out.count_returned = _count_returned;
state->orig.out.total_entries = _total_entries;
state->orig.out.next_reference = _next_reference;
state->orig.out.recordid = _recordid;
/* Result */
ZERO_STRUCT(state->orig.out.result);
state->out_mem_ctx = talloc_named_const(state, 0,
"rpccli_netr_AccountSync_out_memory");
if (tevent_req_nomem(state->out_mem_ctx, req)) {
return tevent_req_post(req, ev);
}
/* make a temporary copy, that we pass to the dispatch function */
state->tmp = state->orig;
subreq = cli->dispatch_send(state, ev, cli,
&ndr_table_netlogon,
NDR_NETR_ACCOUNTSYNC,
&state->tmp);
if (tevent_req_nomem(subreq, req)) {
return tevent_req_post(req, ev);
}
tevent_req_set_callback(subreq, rpccli_netr_AccountSync_done, req);
return req;
}
static void rpccli_netr_AccountSync_done(struct tevent_req *subreq)
{
struct tevent_req *req = tevent_req_callback_data(
subreq, struct tevent_req);
struct rpccli_netr_AccountSync_state *state = tevent_req_data(
req, struct rpccli_netr_AccountSync_state);
NTSTATUS status;
TALLOC_CTX *mem_ctx;
if (state->out_mem_ctx) {
mem_ctx = state->out_mem_ctx;
} else {
mem_ctx = state;
}
status = state->dispatch_recv(subreq, mem_ctx);
TALLOC_FREE(subreq);
if (!NT_STATUS_IS_OK(status)) {
tevent_req_nterror(req, status);
return;
}
/* Copy out parameters */
*state->orig.out.return_authenticator = *state->tmp.out.return_authenticator;
*state->orig.out.buffer = *state->tmp.out.buffer;
*state->orig.out.count_returned = *state->tmp.out.count_returned;
*state->orig.out.total_entries = *state->tmp.out.total_entries;
*state->orig.out.next_reference = *state->tmp.out.next_reference;
*state->orig.out.recordid = *state->tmp.out.recordid;
/* Copy result */
state->orig.out.result = state->tmp.out.result;
/* Reset temporary structure */
ZERO_STRUCT(state->tmp);
tevent_req_done(req);
}
NTSTATUS rpccli_netr_AccountSync_recv(struct tevent_req *req,
TALLOC_CTX *mem_ctx,
NTSTATUS *result)
{
struct rpccli_netr_AccountSync_state *state = tevent_req_data(
req, struct rpccli_netr_AccountSync_state);
NTSTATUS status;
if (tevent_req_is_nterror(req, &status)) {
tevent_req_received(req);
return status;
}
/* Steal possbile out parameters to the callers context */
talloc_steal(mem_ctx, state->out_mem_ctx);
/* Return result */
*result = state->orig.out.result;
tevent_req_received(req);
return NT_STATUS_OK;
}
NTSTATUS rpccli_netr_AccountSync(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
const char *logon_server /* [in] [unique,charset(UTF16)] */,
const char *computername /* [in] [ref,charset(UTF16)] */,
struct netr_Authenticator credential /* [in] */,
struct netr_Authenticator *return_authenticator /* [in,out] [ref] */,
uint32_t reference /* [in] */,
uint32_t level /* [in] */,
uint32_t buffersize /* [in] */,
struct netr_AccountBuffer *buffer /* [out] [ref,subcontext(4)] */,
uint32_t *count_returned /* [out] [ref] */,
uint32_t *total_entries /* [out] [ref] */,
uint32_t *next_reference /* [out] [ref] */,
struct netr_UAS_INFO_0 *recordid /* [in,out] [ref] */)
{
struct netr_AccountSync r;
NTSTATUS status;
/* In parameters */
r.in.logon_server = logon_server;
r.in.computername = computername;
r.in.credential = credential;
r.in.return_authenticator = return_authenticator;
r.in.reference = reference;
r.in.level = level;
r.in.buffersize = buffersize;
r.in.recordid = recordid;
status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_ACCOUNTSYNC,
&r);
if (!NT_STATUS_IS_OK(status)) {
return status;
}
if (NT_STATUS_IS_ERR(status)) {
return status;
}
/* Return variables */
*return_authenticator = *r.out.return_authenticator;
*buffer = *r.out.buffer;
*count_returned = *r.out.count_returned;
*total_entries = *r.out.total_entries;
*next_reference = *r.out.next_reference;
*recordid = *r.out.recordid;
/* Return result */
return r.out.result;
}
struct rpccli_netr_GetDcName_state {
struct netr_GetDcName orig;
struct netr_GetDcName tmp;
TALLOC_CTX *out_mem_ctx;
NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
};
static void rpccli_netr_GetDcName_done(struct tevent_req *subreq);
struct tevent_req *rpccli_netr_GetDcName_send(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
struct rpc_pipe_client *cli,
const char *_logon_server /* [in] [ref,charset(UTF16)] */,
const char *_domainname /* [in] [unique,charset(UTF16)] */,
const char **_dcname /* [out] [ref,charset(UTF16)] */)
{
struct tevent_req *req;
struct rpccli_netr_GetDcName_state *state;
struct tevent_req *subreq;
req = tevent_req_create(mem_ctx, &state,
struct rpccli_netr_GetDcName_state);
if (req == NULL) {
return NULL;
}
state->out_mem_ctx = NULL;
state->dispatch_recv = cli->dispatch_recv;
/* In parameters */
state->orig.in.logon_server = _logon_server;
state->orig.in.domainname = _domainname;
/* Out parameters */
state->orig.out.dcname = _dcname;
/* Result */
ZERO_STRUCT(state->orig.out.result);
state->out_mem_ctx = talloc_named_const(state, 0,
"rpccli_netr_GetDcName_out_memory");
if (tevent_req_nomem(state->out_mem_ctx, req)) {
return tevent_req_post(req, ev);
}
/* make a temporary copy, that we pass to the dispatch function */
state->tmp = state->orig;
subreq = cli->dispatch_send(state, ev, cli,
&ndr_table_netlogon,
NDR_NETR_GETDCNAME,
&state->tmp);
if (tevent_req_nomem(subreq, req)) {
return tevent_req_post(req, ev);
}
tevent_req_set_callback(subreq, rpccli_netr_GetDcName_done, req);
return req;
}
static void rpccli_netr_GetDcName_done(struct tevent_req *subreq)
{
struct tevent_req *req = tevent_req_callback_data(
subreq, struct tevent_req);
struct rpccli_netr_GetDcName_state *state = tevent_req_data(
req, struct rpccli_netr_GetDcName_state);
NTSTATUS status;
TALLOC_CTX *mem_ctx;
if (state->out_mem_ctx) {
mem_ctx = state->out_mem_ctx;
} else {
mem_ctx = state;
}
status = state->dispatch_recv(subreq, mem_ctx);
TALLOC_FREE(subreq);
if (!NT_STATUS_IS_OK(status)) {
tevent_req_nterror(req, status);
return;
}
/* Copy out parameters */
*state->orig.out.dcname = *state->tmp.out.dcname;
/* Copy result */
state->orig.out.result = state->tmp.out.result;
/* Reset temporary structure */
ZERO_STRUCT(state->tmp);
tevent_req_done(req);
}
NTSTATUS rpccli_netr_GetDcName_recv(struct tevent_req *req,
TALLOC_CTX *mem_ctx,
WERROR *result)
{
struct rpccli_netr_GetDcName_state *state = tevent_req_data(
req, struct rpccli_netr_GetDcName_state);
NTSTATUS status;
if (tevent_req_is_nterror(req, &status)) {
tevent_req_received(req);
return status;
}
/* Steal possbile out parameters to the callers context */
talloc_steal(mem_ctx, state->out_mem_ctx);
/* Return result */
*result = state->orig.out.result;
tevent_req_received(req);
return NT_STATUS_OK;
}
NTSTATUS rpccli_netr_GetDcName(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
const char *logon_server /* [in] [ref,charset(UTF16)] */,
const char *domainname /* [in] [unique,charset(UTF16)] */,
const char **dcname /* [out] [ref,charset(UTF16)] */,
WERROR *werror)
{
struct netr_GetDcName r;
NTSTATUS status;
/* In parameters */
r.in.logon_server = logon_server;
r.in.domainname = domainname;
status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_GETDCNAME,
&r);
if (!NT_STATUS_IS_OK(status)) {
return status;
}
if (NT_STATUS_IS_ERR(status)) {
return status;
}
/* Return variables */
*dcname = *r.out.dcname;
/* Return result */
if (werror) {
*werror = r.out.result;
}
return werror_to_ntstatus(r.out.result);
}
struct rpccli_netr_LogonControl_state {
struct netr_LogonControl orig;
struct netr_LogonControl tmp;
TALLOC_CTX *out_mem_ctx;
NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
};
static void rpccli_netr_LogonControl_done(struct tevent_req *subreq);
struct tevent_req *rpccli_netr_LogonControl_send(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
struct rpc_pipe_client *cli,
const char *_logon_server /* [in] [unique,charset(UTF16)] */,
enum netr_LogonControlCode _function_code /* [in] */,
uint32_t _level /* [in] */,
union netr_CONTROL_QUERY_INFORMATION *_query /* [out] [ref,switch_is(level)] */)
{
struct tevent_req *req;
struct rpccli_netr_LogonControl_state *state;
struct tevent_req *subreq;
req = tevent_req_create(mem_ctx, &state,
struct rpccli_netr_LogonControl_state);
if (req == NULL) {
return NULL;
}
state->out_mem_ctx = NULL;
state->dispatch_recv = cli->dispatch_recv;
/* In parameters */
state->orig.in.logon_server = _logon_server;
state->orig.in.function_code = _function_code;
state->orig.in.level = _level;
/* Out parameters */
state->orig.out.query = _query;
/* Result */
ZERO_STRUCT(state->orig.out.result);
state->out_mem_ctx = talloc_named_const(state, 0,
"rpccli_netr_LogonControl_out_memory");
if (tevent_req_nomem(state->out_mem_ctx, req)) {
return tevent_req_post(req, ev);
}
/* make a temporary copy, that we pass to the dispatch function */
state->tmp = state->orig;
subreq = cli->dispatch_send(state, ev, cli,
&ndr_table_netlogon,
NDR_NETR_LOGONCONTROL,
&state->tmp);
if (tevent_req_nomem(subreq, req)) {
return tevent_req_post(req, ev);
}
tevent_req_set_callback(subreq, rpccli_netr_LogonControl_done, req);
return req;
}
static void rpccli_netr_LogonControl_done(struct tevent_req *subreq)
{
struct tevent_req *req = tevent_req_callback_data(
subreq, struct tevent_req);
struct rpccli_netr_LogonControl_state *state = tevent_req_data(
req, struct rpccli_netr_LogonControl_state);
NTSTATUS status;
TALLOC_CTX *mem_ctx;
if (state->out_mem_ctx) {
mem_ctx = state->out_mem_ctx;
} else {
mem_ctx = state;
}
status = state->dispatch_recv(subreq, mem_ctx);
TALLOC_FREE(subreq);
if (!NT_STATUS_IS_OK(status)) {
tevent_req_nterror(req, status);
return;
}
/* Copy out parameters */
*state->orig.out.query = *state->tmp.out.query;
/* Copy result */
state->orig.out.result = state->tmp.out.result;
/* Reset temporary structure */
ZERO_STRUCT(state->tmp);
tevent_req_done(req);
}
NTSTATUS rpccli_netr_LogonControl_recv(struct tevent_req *req,
TALLOC_CTX *mem_ctx,
WERROR *result)
{
struct rpccli_netr_LogonControl_state *state = tevent_req_data(
req, struct rpccli_netr_LogonControl_state);
NTSTATUS status;
if (tevent_req_is_nterror(req, &status)) {
tevent_req_received(req);
return status;
}
/* Steal possbile out parameters to the callers context */
talloc_steal(mem_ctx, state->out_mem_ctx);
/* Return result */
*result = state->orig.out.result;
tevent_req_received(req);
return NT_STATUS_OK;
}
NTSTATUS rpccli_netr_LogonControl(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
const char *logon_server /* [in] [unique,charset(UTF16)] */,
enum netr_LogonControlCode function_code /* [in] */,
uint32_t level /* [in] */,
union netr_CONTROL_QUERY_INFORMATION *query /* [out] [ref,switch_is(level)] */,
WERROR *werror)
{
struct netr_LogonControl r;
NTSTATUS status;
/* In parameters */
r.in.logon_server = logon_server;
r.in.function_code = function_code;
r.in.level = level;
status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_LOGONCONTROL,
&r);
if (!NT_STATUS_IS_OK(status)) {
return status;
}
if (NT_STATUS_IS_ERR(status)) {
return status;
}
/* Return variables */
*query = *r.out.query;
/* Return result */
if (werror) {
*werror = r.out.result;
}
return werror_to_ntstatus(r.out.result);
}
struct rpccli_netr_GetAnyDCName_state {
struct netr_GetAnyDCName orig;
struct netr_GetAnyDCName tmp;
TALLOC_CTX *out_mem_ctx;
NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
};
static void rpccli_netr_GetAnyDCName_done(struct tevent_req *subreq);
struct tevent_req *rpccli_netr_GetAnyDCName_send(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
struct rpc_pipe_client *cli,
const char *_logon_server /* [in] [unique,charset(UTF16)] */,
const char *_domainname /* [in] [unique,charset(UTF16)] */,
const char **_dcname /* [out] [ref,charset(UTF16)] */)
{
struct tevent_req *req;
struct rpccli_netr_GetAnyDCName_state *state;
struct tevent_req *subreq;
req = tevent_req_create(mem_ctx, &state,
struct rpccli_netr_GetAnyDCName_state);
if (req == NULL) {
return NULL;
}
state->out_mem_ctx = NULL;
state->dispatch_recv = cli->dispatch_recv;
/* In parameters */
state->orig.in.logon_server = _logon_server;
state->orig.in.domainname = _domainname;
/* Out parameters */
state->orig.out.dcname = _dcname;
/* Result */
ZERO_STRUCT(state->orig.out.result);
state->out_mem_ctx = talloc_named_const(state, 0,
"rpccli_netr_GetAnyDCName_out_memory");
if (tevent_req_nomem(state->out_mem_ctx, req)) {
return tevent_req_post(req, ev);
}
/* make a temporary copy, that we pass to the dispatch function */
state->tmp = state->orig;
subreq = cli->dispatch_send(state, ev, cli,
&ndr_table_netlogon,
NDR_NETR_GETANYDCNAME,
&state->tmp);
if (tevent_req_nomem(subreq, req)) {
return tevent_req_post(req, ev);
}
tevent_req_set_callback(subreq, rpccli_netr_GetAnyDCName_done, req);
return req;
}
static void rpccli_netr_GetAnyDCName_done(struct tevent_req *subreq)
{
struct tevent_req *req = tevent_req_callback_data(
subreq, struct tevent_req);
struct rpccli_netr_GetAnyDCName_state *state = tevent_req_data(
req, struct rpccli_netr_GetAnyDCName_state);
NTSTATUS status;
TALLOC_CTX *mem_ctx;
if (state->out_mem_ctx) {
mem_ctx = state->out_mem_ctx;
} else {
mem_ctx = state;
}
status = state->dispatch_recv(subreq, mem_ctx);
TALLOC_FREE(subreq);
if (!NT_STATUS_IS_OK(status)) {
tevent_req_nterror(req, status);
return;
}
/* Copy out parameters */
*state->orig.out.dcname = *state->tmp.out.dcname;
/* Copy result */
state->orig.out.result = state->tmp.out.result;
/* Reset temporary structure */
ZERO_STRUCT(state->tmp);
tevent_req_done(req);
}
NTSTATUS rpccli_netr_GetAnyDCName_recv(struct tevent_req *req,
TALLOC_CTX *mem_ctx,
WERROR *result)
{
struct rpccli_netr_GetAnyDCName_state *state = tevent_req_data(
req, struct rpccli_netr_GetAnyDCName_state);
NTSTATUS status;
if (tevent_req_is_nterror(req, &status)) {
tevent_req_received(req);
return status;
}
/* Steal possbile out parameters to the callers context */
talloc_steal(mem_ctx, state->out_mem_ctx);
/* Return result */
*result = state->orig.out.result;
tevent_req_received(req);
return NT_STATUS_OK;
}
NTSTATUS rpccli_netr_GetAnyDCName(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
const char *logon_server /* [in] [unique,charset(UTF16)] */,
const char *domainname /* [in] [unique,charset(UTF16)] */,
const char **dcname /* [out] [ref,charset(UTF16)] */,
WERROR *werror)
{
struct netr_GetAnyDCName r;
NTSTATUS status;
/* In parameters */
r.in.logon_server = logon_server;
r.in.domainname = domainname;
status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_GETANYDCNAME,
&r);
if (!NT_STATUS_IS_OK(status)) {
return status;
}
if (NT_STATUS_IS_ERR(status)) {
return status;
}
/* Return variables */
*dcname = *r.out.dcname;
/* Return result */
if (werror) {
*werror = r.out.result;
}
return werror_to_ntstatus(r.out.result);
}
struct rpccli_netr_LogonControl2_state {
struct netr_LogonControl2 orig;
struct netr_LogonControl2 tmp;
TALLOC_CTX *out_mem_ctx;
NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
};
static void rpccli_netr_LogonControl2_done(struct tevent_req *subreq);
struct tevent_req *rpccli_netr_LogonControl2_send(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
struct rpc_pipe_client *cli,
const char *_logon_server /* [in] [unique,charset(UTF16)] */,
enum netr_LogonControlCode _function_code /* [in] */,
uint32_t _level /* [in] */,
union netr_CONTROL_DATA_INFORMATION *_data /* [in] [ref,switch_is(function_code)] */,
union netr_CONTROL_QUERY_INFORMATION *_query /* [out] [ref,switch_is(level)] */)
{
struct tevent_req *req;
struct rpccli_netr_LogonControl2_state *state;
struct tevent_req *subreq;
req = tevent_req_create(mem_ctx, &state,
struct rpccli_netr_LogonControl2_state);
if (req == NULL) {
return NULL;
}
state->out_mem_ctx = NULL;
state->dispatch_recv = cli->dispatch_recv;
/* In parameters */
state->orig.in.logon_server = _logon_server;
state->orig.in.function_code = _function_code;
state->orig.in.level = _level;
state->orig.in.data = _data;
/* Out parameters */
state->orig.out.query = _query;
/* Result */
ZERO_STRUCT(state->orig.out.result);
state->out_mem_ctx = talloc_named_const(state, 0,
"rpccli_netr_LogonControl2_out_memory");
if (tevent_req_nomem(state->out_mem_ctx, req)) {
return tevent_req_post(req, ev);
}
/* make a temporary copy, that we pass to the dispatch function */
state->tmp = state->orig;
subreq = cli->dispatch_send(state, ev, cli,
&ndr_table_netlogon,
NDR_NETR_LOGONCONTROL2,
&state->tmp);
if (tevent_req_nomem(subreq, req)) {
return tevent_req_post(req, ev);
}
tevent_req_set_callback(subreq, rpccli_netr_LogonControl2_done, req);
return req;
}
static void rpccli_netr_LogonControl2_done(struct tevent_req *subreq)
{
struct tevent_req *req = tevent_req_callback_data(
subreq, struct tevent_req);
struct rpccli_netr_LogonControl2_state *state = tevent_req_data(
req, struct rpccli_netr_LogonControl2_state);
NTSTATUS status;
TALLOC_CTX *mem_ctx;
if (state->out_mem_ctx) {
mem_ctx = state->out_mem_ctx;
} else {
mem_ctx = state;
}
status = state->dispatch_recv(subreq, mem_ctx);
TALLOC_FREE(subreq);
if (!NT_STATUS_IS_OK(status)) {
tevent_req_nterror(req, status);
return;
}
/* Copy out parameters */
*state->orig.out.query = *state->tmp.out.query;
/* Copy result */
state->orig.out.result = state->tmp.out.result;
/* Reset temporary structure */
ZERO_STRUCT(state->tmp);
tevent_req_done(req);
}
NTSTATUS rpccli_netr_LogonControl2_recv(struct tevent_req *req,
TALLOC_CTX *mem_ctx,
WERROR *result)
{
struct rpccli_netr_LogonControl2_state *state = tevent_req_data(
req, struct rpccli_netr_LogonControl2_state);
NTSTATUS status;
if (tevent_req_is_nterror(req, &status)) {
tevent_req_received(req);
return status;
}
/* Steal possbile out parameters to the callers context */
talloc_steal(mem_ctx, state->out_mem_ctx);
/* Return result */
*result = state->orig.out.result;
tevent_req_received(req);
return NT_STATUS_OK;
}
NTSTATUS rpccli_netr_LogonControl2(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
const char *logon_server /* [in] [unique,charset(UTF16)] */,
enum netr_LogonControlCode function_code /* [in] */,
uint32_t level /* [in] */,
union netr_CONTROL_DATA_INFORMATION *data /* [in] [ref,switch_is(function_code)] */,
union netr_CONTROL_QUERY_INFORMATION *query /* [out] [ref,switch_is(level)] */,
WERROR *werror)
{
struct netr_LogonControl2 r;
NTSTATUS status;
/* In parameters */
r.in.logon_server = logon_server;
r.in.function_code = function_code;
r.in.level = level;
r.in.data = data;
status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_LOGONCONTROL2,
&r);
if (!NT_STATUS_IS_OK(status)) {
return status;
}
if (NT_STATUS_IS_ERR(status)) {
return status;
}
/* Return variables */
*query = *r.out.query;
/* Return result */
if (werror) {
*werror = r.out.result;
}
return werror_to_ntstatus(r.out.result);
}
struct rpccli_netr_ServerAuthenticate2_state {
struct netr_ServerAuthenticate2 orig;
struct netr_ServerAuthenticate2 tmp;
TALLOC_CTX *out_mem_ctx;
NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
};
static void rpccli_netr_ServerAuthenticate2_done(struct tevent_req *subreq);
struct tevent_req *rpccli_netr_ServerAuthenticate2_send(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
struct rpc_pipe_client *cli,
const char *_server_name /* [in] [unique,charset(UTF16)] */,
const char *_account_name /* [in] [ref,charset(UTF16)] */,
enum netr_SchannelType _secure_channel_type /* [in] */,
const char *_computer_name /* [in] [ref,charset(UTF16)] */,
struct netr_Credential *_credentials /* [in] [ref] */,
struct netr_Credential *_return_credentials /* [out] [ref] */,
uint32_t *_negotiate_flags /* [in,out] [ref] */)
{
struct tevent_req *req;
struct rpccli_netr_ServerAuthenticate2_state *state;
struct tevent_req *subreq;
req = tevent_req_create(mem_ctx, &state,
struct rpccli_netr_ServerAuthenticate2_state);
if (req == NULL) {
return NULL;
}
state->out_mem_ctx = NULL;
state->dispatch_recv = cli->dispatch_recv;
/* In parameters */
state->orig.in.server_name = _server_name;
state->orig.in.account_name = _account_name;
state->orig.in.secure_channel_type = _secure_channel_type;
state->orig.in.computer_name = _computer_name;
state->orig.in.credentials = _credentials;
state->orig.in.negotiate_flags = _negotiate_flags;
/* Out parameters */
state->orig.out.return_credentials = _return_credentials;
state->orig.out.negotiate_flags = _negotiate_flags;
/* Result */
ZERO_STRUCT(state->orig.out.result);
state->out_mem_ctx = talloc_named_const(state, 0,
"rpccli_netr_ServerAuthenticate2_out_memory");
if (tevent_req_nomem(state->out_mem_ctx, req)) {
return tevent_req_post(req, ev);
}
/* make a temporary copy, that we pass to the dispatch function */
state->tmp = state->orig;
subreq = cli->dispatch_send(state, ev, cli,
&ndr_table_netlogon,
NDR_NETR_SERVERAUTHENTICATE2,
&state->tmp);
if (tevent_req_nomem(subreq, req)) {
return tevent_req_post(req, ev);
}
tevent_req_set_callback(subreq, rpccli_netr_ServerAuthenticate2_done, req);
return req;
}
static void rpccli_netr_ServerAuthenticate2_done(struct tevent_req *subreq)
{
struct tevent_req *req = tevent_req_callback_data(
subreq, struct tevent_req);
struct rpccli_netr_ServerAuthenticate2_state *state = tevent_req_data(
req, struct rpccli_netr_ServerAuthenticate2_state);
NTSTATUS status;
TALLOC_CTX *mem_ctx;
if (state->out_mem_ctx) {
mem_ctx = state->out_mem_ctx;
} else {
mem_ctx = state;
}
status = state->dispatch_recv(subreq, mem_ctx);
TALLOC_FREE(subreq);
if (!NT_STATUS_IS_OK(status)) {
tevent_req_nterror(req, status);
return;
}
/* Copy out parameters */
*state->orig.out.return_credentials = *state->tmp.out.return_credentials;
*state->orig.out.negotiate_flags = *state->tmp.out.negotiate_flags;
/* Copy result */
state->orig.out.result = state->tmp.out.result;
/* Reset temporary structure */
ZERO_STRUCT(state->tmp);
tevent_req_done(req);
}
NTSTATUS rpccli_netr_ServerAuthenticate2_recv(struct tevent_req *req,
TALLOC_CTX *mem_ctx,
NTSTATUS *result)
{
struct rpccli_netr_ServerAuthenticate2_state *state = tevent_req_data(
req, struct rpccli_netr_ServerAuthenticate2_state);
NTSTATUS status;
if (tevent_req_is_nterror(req, &status)) {
tevent_req_received(req);
return status;
}
/* Steal possbile out parameters to the callers context */
talloc_steal(mem_ctx, state->out_mem_ctx);
/* Return result */
*result = state->orig.out.result;
tevent_req_received(req);
return NT_STATUS_OK;
}
NTSTATUS rpccli_netr_ServerAuthenticate2(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
const char *server_name /* [in] [unique,charset(UTF16)] */,
const char *account_name /* [in] [ref,charset(UTF16)] */,
enum netr_SchannelType secure_channel_type /* [in] */,
const char *computer_name /* [in] [ref,charset(UTF16)] */,
struct netr_Credential *credentials /* [in] [ref] */,
struct netr_Credential *return_credentials /* [out] [ref] */,
uint32_t *negotiate_flags /* [in,out] [ref] */)
{
struct netr_ServerAuthenticate2 r;
NTSTATUS status;
/* In parameters */
r.in.server_name = server_name;
r.in.account_name = account_name;
r.in.secure_channel_type = secure_channel_type;
r.in.computer_name = computer_name;
r.in.credentials = credentials;
r.in.negotiate_flags = negotiate_flags;
status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_SERVERAUTHENTICATE2,
&r);
if (!NT_STATUS_IS_OK(status)) {
return status;
}
if (NT_STATUS_IS_ERR(status)) {
return status;
}
/* Return variables */
*return_credentials = *r.out.return_credentials;
*negotiate_flags = *r.out.negotiate_flags;
/* Return result */
return r.out.result;
}
struct rpccli_netr_DatabaseSync2_state {
struct netr_DatabaseSync2 orig;
struct netr_DatabaseSync2 tmp;
TALLOC_CTX *out_mem_ctx;
NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
};
static void rpccli_netr_DatabaseSync2_done(struct tevent_req *subreq);
struct tevent_req *rpccli_netr_DatabaseSync2_send(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
struct rpc_pipe_client *cli,
const char *_logon_server /* [in] [ref,charset(UTF16)] */,
const char *_computername /* [in] [ref,charset(UTF16)] */,
struct netr_Authenticator *_credential /* [in] [ref] */,
struct netr_Authenticator *_return_authenticator /* [in,out] [ref] */,
enum netr_SamDatabaseID _database_id /* [in] */,
enum SyncStateEnum _restart_state /* [in] */,
uint32_t *_sync_context /* [in,out] [ref] */,
struct netr_DELTA_ENUM_ARRAY **_delta_enum_array /* [out] [ref] */,
uint32_t _preferredmaximumlength /* [in] */)
{
struct tevent_req *req;
struct rpccli_netr_DatabaseSync2_state *state;
struct tevent_req *subreq;
req = tevent_req_create(mem_ctx, &state,
struct rpccli_netr_DatabaseSync2_state);
if (req == NULL) {
return NULL;
}
state->out_mem_ctx = NULL;
state->dispatch_recv = cli->dispatch_recv;
/* In parameters */
state->orig.in.logon_server = _logon_server;
state->orig.in.computername = _computername;
state->orig.in.credential = _credential;
state->orig.in.return_authenticator = _return_authenticator;
state->orig.in.database_id = _database_id;
state->orig.in.restart_state = _restart_state;
state->orig.in.sync_context = _sync_context;
state->orig.in.preferredmaximumlength = _preferredmaximumlength;
/* Out parameters */
state->orig.out.return_authenticator = _return_authenticator;
state->orig.out.sync_context = _sync_context;
state->orig.out.delta_enum_array = _delta_enum_array;
/* Result */
ZERO_STRUCT(state->orig.out.result);
state->out_mem_ctx = talloc_named_const(state, 0,
"rpccli_netr_DatabaseSync2_out_memory");
if (tevent_req_nomem(state->out_mem_ctx, req)) {
return tevent_req_post(req, ev);
}
/* make a temporary copy, that we pass to the dispatch function */
state->tmp = state->orig;
subreq = cli->dispatch_send(state, ev, cli,
&ndr_table_netlogon,
NDR_NETR_DATABASESYNC2,
&state->tmp);
if (tevent_req_nomem(subreq, req)) {
return tevent_req_post(req, ev);
}
tevent_req_set_callback(subreq, rpccli_netr_DatabaseSync2_done, req);
return req;
}
static void rpccli_netr_DatabaseSync2_done(struct tevent_req *subreq)
{
struct tevent_req *req = tevent_req_callback_data(
subreq, struct tevent_req);
struct rpccli_netr_DatabaseSync2_state *state = tevent_req_data(
req, struct rpccli_netr_DatabaseSync2_state);
NTSTATUS status;
TALLOC_CTX *mem_ctx;
if (state->out_mem_ctx) {
mem_ctx = state->out_mem_ctx;
} else {
mem_ctx = state;
}
status = state->dispatch_recv(subreq, mem_ctx);
TALLOC_FREE(subreq);
if (!NT_STATUS_IS_OK(status)) {
tevent_req_nterror(req, status);
return;
}
/* Copy out parameters */
*state->orig.out.return_authenticator = *state->tmp.out.return_authenticator;
*state->orig.out.sync_context = *state->tmp.out.sync_context;
*state->orig.out.delta_enum_array = *state->tmp.out.delta_enum_array;
/* Copy result */
state->orig.out.result = state->tmp.out.result;
/* Reset temporary structure */
ZERO_STRUCT(state->tmp);
tevent_req_done(req);
}
NTSTATUS rpccli_netr_DatabaseSync2_recv(struct tevent_req *req,
TALLOC_CTX *mem_ctx,
NTSTATUS *result)
{
struct rpccli_netr_DatabaseSync2_state *state = tevent_req_data(
req, struct rpccli_netr_DatabaseSync2_state);
NTSTATUS status;
if (tevent_req_is_nterror(req, &status)) {
tevent_req_received(req);
return status;
}
/* Steal possbile out parameters to the callers context */
talloc_steal(mem_ctx, state->out_mem_ctx);
/* Return result */
*result = state->orig.out.result;
tevent_req_received(req);
return NT_STATUS_OK;
}
NTSTATUS rpccli_netr_DatabaseSync2(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
const char *logon_server /* [in] [ref,charset(UTF16)] */,
const char *computername /* [in] [ref,charset(UTF16)] */,
struct netr_Authenticator *credential /* [in] [ref] */,
struct netr_Authenticator *return_authenticator /* [in,out] [ref] */,
enum netr_SamDatabaseID database_id /* [in] */,
enum SyncStateEnum restart_state /* [in] */,
uint32_t *sync_context /* [in,out] [ref] */,
struct netr_DELTA_ENUM_ARRAY **delta_enum_array /* [out] [ref] */,
uint32_t preferredmaximumlength /* [in] */)
{
struct netr_DatabaseSync2 r;
NTSTATUS status;
/* In parameters */
r.in.logon_server = logon_server;
r.in.computername = computername;
r.in.credential = credential;
r.in.return_authenticator = return_authenticator;
r.in.database_id = database_id;
r.in.restart_state = restart_state;
r.in.sync_context = sync_context;
r.in.preferredmaximumlength = preferredmaximumlength;
status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_DATABASESYNC2,
&r);
if (!NT_STATUS_IS_OK(status)) {
return status;
}
if (NT_STATUS_IS_ERR(status)) {
return status;
}
/* Return variables */
*return_authenticator = *r.out.return_authenticator;
*sync_context = *r.out.sync_context;
*delta_enum_array = *r.out.delta_enum_array;
/* Return result */
return r.out.result;
}
struct rpccli_netr_DatabaseRedo_state {
struct netr_DatabaseRedo orig;
struct netr_DatabaseRedo tmp;
TALLOC_CTX *out_mem_ctx;
NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
};
static void rpccli_netr_DatabaseRedo_done(struct tevent_req *subreq);
struct tevent_req *rpccli_netr_DatabaseRedo_send(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
struct rpc_pipe_client *cli,
const char *_logon_server /* [in] [ref,charset(UTF16)] */,
const char *_computername /* [in] [ref,charset(UTF16)] */,
struct netr_Authenticator *_credential /* [in] [ref] */,
struct netr_Authenticator *_return_authenticator /* [in,out] [ref] */,
struct netr_ChangeLogEntry _change_log_entry /* [in] [subcontext(4)] */,
uint32_t _change_log_entry_size /* [in] [value(ndr_size_netr_ChangeLogEntry(&change_log_entry,ndr->iconv_convenience,ndr->flags))] */,
struct netr_DELTA_ENUM_ARRAY **_delta_enum_array /* [out] [ref] */)
{
struct tevent_req *req;
struct rpccli_netr_DatabaseRedo_state *state;
struct tevent_req *subreq;
req = tevent_req_create(mem_ctx, &state,
struct rpccli_netr_DatabaseRedo_state);
if (req == NULL) {
return NULL;
}
state->out_mem_ctx = NULL;
state->dispatch_recv = cli->dispatch_recv;
/* In parameters */
state->orig.in.logon_server = _logon_server;
state->orig.in.computername = _computername;
state->orig.in.credential = _credential;
state->orig.in.return_authenticator = _return_authenticator;
state->orig.in.change_log_entry = _change_log_entry;
state->orig.in.change_log_entry_size = _change_log_entry_size;
/* Out parameters */
state->orig.out.return_authenticator = _return_authenticator;
state->orig.out.delta_enum_array = _delta_enum_array;
/* Result */
ZERO_STRUCT(state->orig.out.result);
state->out_mem_ctx = talloc_named_const(state, 0,
"rpccli_netr_DatabaseRedo_out_memory");
if (tevent_req_nomem(state->out_mem_ctx, req)) {
return tevent_req_post(req, ev);
}
/* make a temporary copy, that we pass to the dispatch function */
state->tmp = state->orig;
subreq = cli->dispatch_send(state, ev, cli,
&ndr_table_netlogon,
NDR_NETR_DATABASEREDO,
&state->tmp);
if (tevent_req_nomem(subreq, req)) {
return tevent_req_post(req, ev);
}
tevent_req_set_callback(subreq, rpccli_netr_DatabaseRedo_done, req);
return req;
}
static void rpccli_netr_DatabaseRedo_done(struct tevent_req *subreq)
{
struct tevent_req *req = tevent_req_callback_data(
subreq, struct tevent_req);
struct rpccli_netr_DatabaseRedo_state *state = tevent_req_data(
req, struct rpccli_netr_DatabaseRedo_state);
NTSTATUS status;
TALLOC_CTX *mem_ctx;
if (state->out_mem_ctx) {
mem_ctx = state->out_mem_ctx;
} else {
mem_ctx = state;
}
status = state->dispatch_recv(subreq, mem_ctx);
TALLOC_FREE(subreq);
if (!NT_STATUS_IS_OK(status)) {
tevent_req_nterror(req, status);
return;
}
/* Copy out parameters */
*state->orig.out.return_authenticator = *state->tmp.out.return_authenticator;
*state->orig.out.delta_enum_array = *state->tmp.out.delta_enum_array;
/* Copy result */
state->orig.out.result = state->tmp.out.result;
/* Reset temporary structure */
ZERO_STRUCT(state->tmp);
tevent_req_done(req);
}
NTSTATUS rpccli_netr_DatabaseRedo_recv(struct tevent_req *req,
TALLOC_CTX *mem_ctx,
NTSTATUS *result)
{
struct rpccli_netr_DatabaseRedo_state *state = tevent_req_data(
req, struct rpccli_netr_DatabaseRedo_state);
NTSTATUS status;
if (tevent_req_is_nterror(req, &status)) {
tevent_req_received(req);
return status;
}
/* Steal possbile out parameters to the callers context */
talloc_steal(mem_ctx, state->out_mem_ctx);
/* Return result */
*result = state->orig.out.result;
tevent_req_received(req);
return NT_STATUS_OK;
}
NTSTATUS rpccli_netr_DatabaseRedo(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
const char *logon_server /* [in] [ref,charset(UTF16)] */,
const char *computername /* [in] [ref,charset(UTF16)] */,
struct netr_Authenticator *credential /* [in] [ref] */,
struct netr_Authenticator *return_authenticator /* [in,out] [ref] */,
struct netr_ChangeLogEntry change_log_entry /* [in] [subcontext(4)] */,
uint32_t change_log_entry_size /* [in] [value(ndr_size_netr_ChangeLogEntry(&change_log_entry,ndr->iconv_convenience,ndr->flags))] */,
struct netr_DELTA_ENUM_ARRAY **delta_enum_array /* [out] [ref] */)
{
struct netr_DatabaseRedo r;
NTSTATUS status;
/* In parameters */
r.in.logon_server = logon_server;
r.in.computername = computername;
r.in.credential = credential;
r.in.return_authenticator = return_authenticator;
r.in.change_log_entry = change_log_entry;
r.in.change_log_entry_size = change_log_entry_size;
status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_DATABASEREDO,
&r);
if (!NT_STATUS_IS_OK(status)) {
return status;
}
if (NT_STATUS_IS_ERR(status)) {
return status;
}
/* Return variables */
*return_authenticator = *r.out.return_authenticator;
*delta_enum_array = *r.out.delta_enum_array;
/* Return result */
return r.out.result;
}
struct rpccli_netr_LogonControl2Ex_state {
struct netr_LogonControl2Ex orig;
struct netr_LogonControl2Ex tmp;
TALLOC_CTX *out_mem_ctx;
NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
};
static void rpccli_netr_LogonControl2Ex_done(struct tevent_req *subreq);
struct tevent_req *rpccli_netr_LogonControl2Ex_send(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
struct rpc_pipe_client *cli,
const char *_logon_server /* [in] [unique,charset(UTF16)] */,
enum netr_LogonControlCode _function_code /* [in] */,
uint32_t _level /* [in] */,
union netr_CONTROL_DATA_INFORMATION *_data /* [in] [ref,switch_is(function_code)] */,
union netr_CONTROL_QUERY_INFORMATION *_query /* [out] [ref,switch_is(level)] */)
{
struct tevent_req *req;
struct rpccli_netr_LogonControl2Ex_state *state;
struct tevent_req *subreq;
req = tevent_req_create(mem_ctx, &state,
struct rpccli_netr_LogonControl2Ex_state);
if (req == NULL) {
return NULL;
}
state->out_mem_ctx = NULL;
state->dispatch_recv = cli->dispatch_recv;
/* In parameters */
state->orig.in.logon_server = _logon_server;
state->orig.in.function_code = _function_code;
state->orig.in.level = _level;
state->orig.in.data = _data;
/* Out parameters */
state->orig.out.query = _query;
/* Result */
ZERO_STRUCT(state->orig.out.result);
state->out_mem_ctx = talloc_named_const(state, 0,
"rpccli_netr_LogonControl2Ex_out_memory");
if (tevent_req_nomem(state->out_mem_ctx, req)) {
return tevent_req_post(req, ev);
}
/* make a temporary copy, that we pass to the dispatch function */
state->tmp = state->orig;
subreq = cli->dispatch_send(state, ev, cli,
&ndr_table_netlogon,
NDR_NETR_LOGONCONTROL2EX,
&state->tmp);
if (tevent_req_nomem(subreq, req)) {
return tevent_req_post(req, ev);
}
tevent_req_set_callback(subreq, rpccli_netr_LogonControl2Ex_done, req);
return req;
}
static void rpccli_netr_LogonControl2Ex_done(struct tevent_req *subreq)
{
struct tevent_req *req = tevent_req_callback_data(
subreq, struct tevent_req);
struct rpccli_netr_LogonControl2Ex_state *state = tevent_req_data(
req, struct rpccli_netr_LogonControl2Ex_state);
NTSTATUS status;
TALLOC_CTX *mem_ctx;
if (state->out_mem_ctx) {
mem_ctx = state->out_mem_ctx;
} else {
mem_ctx = state;
}
status = state->dispatch_recv(subreq, mem_ctx);
TALLOC_FREE(subreq);
if (!NT_STATUS_IS_OK(status)) {
tevent_req_nterror(req, status);
return;
}
/* Copy out parameters */
*state->orig.out.query = *state->tmp.out.query;
/* Copy result */
state->orig.out.result = state->tmp.out.result;
/* Reset temporary structure */
ZERO_STRUCT(state->tmp);
tevent_req_done(req);
}
NTSTATUS rpccli_netr_LogonControl2Ex_recv(struct tevent_req *req,
TALLOC_CTX *mem_ctx,
WERROR *result)
{
struct rpccli_netr_LogonControl2Ex_state *state = tevent_req_data(
req, struct rpccli_netr_LogonControl2Ex_state);
NTSTATUS status;
if (tevent_req_is_nterror(req, &status)) {
tevent_req_received(req);
return status;
}
/* Steal possbile out parameters to the callers context */
talloc_steal(mem_ctx, state->out_mem_ctx);
/* Return result */
*result = state->orig.out.result;
tevent_req_received(req);
return NT_STATUS_OK;
}
NTSTATUS rpccli_netr_LogonControl2Ex(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
const char *logon_server /* [in] [unique,charset(UTF16)] */,
enum netr_LogonControlCode function_code /* [in] */,
uint32_t level /* [in] */,
union netr_CONTROL_DATA_INFORMATION *data /* [in] [ref,switch_is(function_code)] */,
union netr_CONTROL_QUERY_INFORMATION *query /* [out] [ref,switch_is(level)] */,
WERROR *werror)
{
struct netr_LogonControl2Ex r;
NTSTATUS status;
/* In parameters */
r.in.logon_server = logon_server;
r.in.function_code = function_code;
r.in.level = level;
r.in.data = data;
status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_LOGONCONTROL2EX,
&r);
if (!NT_STATUS_IS_OK(status)) {
return status;
}
if (NT_STATUS_IS_ERR(status)) {
return status;
}
/* Return variables */
*query = *r.out.query;
/* Return result */
if (werror) {
*werror = r.out.result;
}
return werror_to_ntstatus(r.out.result);
}
struct rpccli_netr_NetrEnumerateTrustedDomains_state {
struct netr_NetrEnumerateTrustedDomains orig;
struct netr_NetrEnumerateTrustedDomains tmp;
TALLOC_CTX *out_mem_ctx;
NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
};
static void rpccli_netr_NetrEnumerateTrustedDomains_done(struct tevent_req *subreq);
struct tevent_req *rpccli_netr_NetrEnumerateTrustedDomains_send(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
struct rpc_pipe_client *cli,
const char *_server_name /* [in] [unique,charset(UTF16)] */,
struct netr_Blob *_trusted_domains_blob /* [out] [ref] */)
{
struct tevent_req *req;
struct rpccli_netr_NetrEnumerateTrustedDomains_state *state;
struct tevent_req *subreq;
req = tevent_req_create(mem_ctx, &state,
struct rpccli_netr_NetrEnumerateTrustedDomains_state);
if (req == NULL) {
return NULL;
}
state->out_mem_ctx = NULL;
state->dispatch_recv = cli->dispatch_recv;
/* In parameters */
state->orig.in.server_name = _server_name;
/* Out parameters */
state->orig.out.trusted_domains_blob = _trusted_domains_blob;
/* Result */
ZERO_STRUCT(state->orig.out.result);
state->out_mem_ctx = talloc_named_const(state, 0,
"rpccli_netr_NetrEnumerateTrustedDomains_out_memory");
if (tevent_req_nomem(state->out_mem_ctx, req)) {
return tevent_req_post(req, ev);
}
/* make a temporary copy, that we pass to the dispatch function */
state->tmp = state->orig;
subreq = cli->dispatch_send(state, ev, cli,
&ndr_table_netlogon,
NDR_NETR_NETRENUMERATETRUSTEDDOMAINS,
&state->tmp);
if (tevent_req_nomem(subreq, req)) {
return tevent_req_post(req, ev);
}
tevent_req_set_callback(subreq, rpccli_netr_NetrEnumerateTrustedDomains_done, req);
return req;
}
static void rpccli_netr_NetrEnumerateTrustedDomains_done(struct tevent_req *subreq)
{
struct tevent_req *req = tevent_req_callback_data(
subreq, struct tevent_req);
struct rpccli_netr_NetrEnumerateTrustedDomains_state *state = tevent_req_data(
req, struct rpccli_netr_NetrEnumerateTrustedDomains_state);
NTSTATUS status;
TALLOC_CTX *mem_ctx;
if (state->out_mem_ctx) {
mem_ctx = state->out_mem_ctx;
} else {
mem_ctx = state;
}
status = state->dispatch_recv(subreq, mem_ctx);
TALLOC_FREE(subreq);
if (!NT_STATUS_IS_OK(status)) {
tevent_req_nterror(req, status);
return;
}
/* Copy out parameters */
*state->orig.out.trusted_domains_blob = *state->tmp.out.trusted_domains_blob;
/* Copy result */
state->orig.out.result = state->tmp.out.result;
/* Reset temporary structure */
ZERO_STRUCT(state->tmp);
tevent_req_done(req);
}
NTSTATUS rpccli_netr_NetrEnumerateTrustedDomains_recv(struct tevent_req *req,
TALLOC_CTX *mem_ctx,
WERROR *result)
{
struct rpccli_netr_NetrEnumerateTrustedDomains_state *state = tevent_req_data(
req, struct rpccli_netr_NetrEnumerateTrustedDomains_state);
NTSTATUS status;
if (tevent_req_is_nterror(req, &status)) {
tevent_req_received(req);
return status;
}
/* Steal possbile out parameters to the callers context */
talloc_steal(mem_ctx, state->out_mem_ctx);
/* Return result */
*result = state->orig.out.result;
tevent_req_received(req);
return NT_STATUS_OK;
}
NTSTATUS rpccli_netr_NetrEnumerateTrustedDomains(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
const char *server_name /* [in] [unique,charset(UTF16)] */,
struct netr_Blob *trusted_domains_blob /* [out] [ref] */,
WERROR *werror)
{
struct netr_NetrEnumerateTrustedDomains r;
NTSTATUS status;
/* In parameters */
r.in.server_name = server_name;
status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_NETRENUMERATETRUSTEDDOMAINS,
&r);
if (!NT_STATUS_IS_OK(status)) {
return status;
}
if (NT_STATUS_IS_ERR(status)) {
return status;
}
/* Return variables */
*trusted_domains_blob = *r.out.trusted_domains_blob;
/* Return result */
if (werror) {
*werror = r.out.result;
}
return werror_to_ntstatus(r.out.result);
}
struct rpccli_netr_DsRGetDCName_state {
struct netr_DsRGetDCName orig;
struct netr_DsRGetDCName tmp;
TALLOC_CTX *out_mem_ctx;
NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
};
static void rpccli_netr_DsRGetDCName_done(struct tevent_req *subreq);
struct tevent_req *rpccli_netr_DsRGetDCName_send(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
struct rpc_pipe_client *cli,
const char *_server_unc /* [in] [unique,charset(UTF16)] */,
const char *_domain_name /* [in] [unique,charset(UTF16)] */,
struct GUID *_domain_guid /* [in] [unique] */,
struct GUID *_site_guid /* [in] [unique] */,
uint32_t _flags /* [in] */,
struct netr_DsRGetDCNameInfo **_info /* [out] [ref] */)
{
struct tevent_req *req;
struct rpccli_netr_DsRGetDCName_state *state;
struct tevent_req *subreq;
req = tevent_req_create(mem_ctx, &state,
struct rpccli_netr_DsRGetDCName_state);
if (req == NULL) {
return NULL;
}
state->out_mem_ctx = NULL;
state->dispatch_recv = cli->dispatch_recv;
/* In parameters */
state->orig.in.server_unc = _server_unc;
state->orig.in.domain_name = _domain_name;
state->orig.in.domain_guid = _domain_guid;
state->orig.in.site_guid = _site_guid;
state->orig.in.flags = _flags;
/* Out parameters */
state->orig.out.info = _info;
/* Result */
ZERO_STRUCT(state->orig.out.result);
state->out_mem_ctx = talloc_named_const(state, 0,
"rpccli_netr_DsRGetDCName_out_memory");
if (tevent_req_nomem(state->out_mem_ctx, req)) {
return tevent_req_post(req, ev);
}
/* make a temporary copy, that we pass to the dispatch function */
state->tmp = state->orig;
subreq = cli->dispatch_send(state, ev, cli,
&ndr_table_netlogon,
NDR_NETR_DSRGETDCNAME,
&state->tmp);
if (tevent_req_nomem(subreq, req)) {
return tevent_req_post(req, ev);
}
tevent_req_set_callback(subreq, rpccli_netr_DsRGetDCName_done, req);
return req;
}
static void rpccli_netr_DsRGetDCName_done(struct tevent_req *subreq)
{
struct tevent_req *req = tevent_req_callback_data(
subreq, struct tevent_req);
struct rpccli_netr_DsRGetDCName_state *state = tevent_req_data(
req, struct rpccli_netr_DsRGetDCName_state);
NTSTATUS status;
TALLOC_CTX *mem_ctx;
if (state->out_mem_ctx) {
mem_ctx = state->out_mem_ctx;
} else {
mem_ctx = state;
}
status = state->dispatch_recv(subreq, mem_ctx);
TALLOC_FREE(subreq);
if (!NT_STATUS_IS_OK(status)) {
tevent_req_nterror(req, status);
return;
}
/* Copy out parameters */
*state->orig.out.info = *state->tmp.out.info;
/* Copy result */
state->orig.out.result = state->tmp.out.result;
/* Reset temporary structure */
ZERO_STRUCT(state->tmp);
tevent_req_done(req);
}
NTSTATUS rpccli_netr_DsRGetDCName_recv(struct tevent_req *req,
TALLOC_CTX *mem_ctx,
WERROR *result)
{
struct rpccli_netr_DsRGetDCName_state *state = tevent_req_data(
req, struct rpccli_netr_DsRGetDCName_state);
NTSTATUS status;
if (tevent_req_is_nterror(req, &status)) {
tevent_req_received(req);
return status;
}
/* Steal possbile out parameters to the callers context */
talloc_steal(mem_ctx, state->out_mem_ctx);
/* Return result */
*result = state->orig.out.result;
tevent_req_received(req);
return NT_STATUS_OK;
}
NTSTATUS rpccli_netr_DsRGetDCName(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
const char *server_unc /* [in] [unique,charset(UTF16)] */,
const char *domain_name /* [in] [unique,charset(UTF16)] */,
struct GUID *domain_guid /* [in] [unique] */,
struct GUID *site_guid /* [in] [unique] */,
uint32_t flags /* [in] */,
struct netr_DsRGetDCNameInfo **info /* [out] [ref] */,
WERROR *werror)
{
struct netr_DsRGetDCName r;
NTSTATUS status;
/* In parameters */
r.in.server_unc = server_unc;
r.in.domain_name = domain_name;
r.in.domain_guid = domain_guid;
r.in.site_guid = site_guid;
r.in.flags = flags;
status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_DSRGETDCNAME,
&r);
if (!NT_STATUS_IS_OK(status)) {
return status;
}
if (NT_STATUS_IS_ERR(status)) {
return status;
}
/* Return variables */
*info = *r.out.info;
/* Return result */
if (werror) {
*werror = r.out.result;
}
return werror_to_ntstatus(r.out.result);
}
struct rpccli_netr_LogonGetCapabilities_state {
struct netr_LogonGetCapabilities orig;
struct netr_LogonGetCapabilities tmp;
TALLOC_CTX *out_mem_ctx;
NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
};
static void rpccli_netr_LogonGetCapabilities_done(struct tevent_req *subreq);
struct tevent_req *rpccli_netr_LogonGetCapabilities_send(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
struct rpc_pipe_client *cli,
const char *_server_name /* [in] [ref,charset(UTF16)] */,
const char *_computer_name /* [in] [unique,charset(UTF16)] */,
struct netr_Authenticator *_credential /* [in] [ref] */,
struct netr_Authenticator *_return_authenticator /* [in,out] [ref] */,
uint32_t _query_level /* [in] */,
union netr_Capabilities *_capabilities /* [out] [ref,switch_is(query_level)] */)
{
struct tevent_req *req;
struct rpccli_netr_LogonGetCapabilities_state *state;
struct tevent_req *subreq;
req = tevent_req_create(mem_ctx, &state,
struct rpccli_netr_LogonGetCapabilities_state);
if (req == NULL) {
return NULL;
}
state->out_mem_ctx = NULL;
state->dispatch_recv = cli->dispatch_recv;
/* In parameters */
state->orig.in.server_name = _server_name;
state->orig.in.computer_name = _computer_name;
state->orig.in.credential = _credential;
state->orig.in.return_authenticator = _return_authenticator;
state->orig.in.query_level = _query_level;
/* Out parameters */
state->orig.out.return_authenticator = _return_authenticator;
state->orig.out.capabilities = _capabilities;
/* Result */
ZERO_STRUCT(state->orig.out.result);
state->out_mem_ctx = talloc_named_const(state, 0,
"rpccli_netr_LogonGetCapabilities_out_memory");
if (tevent_req_nomem(state->out_mem_ctx, req)) {
return tevent_req_post(req, ev);
}
/* make a temporary copy, that we pass to the dispatch function */
state->tmp = state->orig;
subreq = cli->dispatch_send(state, ev, cli,
&ndr_table_netlogon,
NDR_NETR_LOGONGETCAPABILITIES,
&state->tmp);
if (tevent_req_nomem(subreq, req)) {
return tevent_req_post(req, ev);
}
tevent_req_set_callback(subreq, rpccli_netr_LogonGetCapabilities_done, req);
return req;
}
static void rpccli_netr_LogonGetCapabilities_done(struct tevent_req *subreq)
{
struct tevent_req *req = tevent_req_callback_data(
subreq, struct tevent_req);
struct rpccli_netr_LogonGetCapabilities_state *state = tevent_req_data(
req, struct rpccli_netr_LogonGetCapabilities_state);
NTSTATUS status;
TALLOC_CTX *mem_ctx;
if (state->out_mem_ctx) {
mem_ctx = state->out_mem_ctx;
} else {
mem_ctx = state;
}
status = state->dispatch_recv(subreq, mem_ctx);
TALLOC_FREE(subreq);
if (!NT_STATUS_IS_OK(status)) {
tevent_req_nterror(req, status);
return;
}
/* Copy out parameters */
*state->orig.out.return_authenticator = *state->tmp.out.return_authenticator;
*state->orig.out.capabilities = *state->tmp.out.capabilities;
/* Copy result */
state->orig.out.result = state->tmp.out.result;
/* Reset temporary structure */
ZERO_STRUCT(state->tmp);
tevent_req_done(req);
}
NTSTATUS rpccli_netr_LogonGetCapabilities_recv(struct tevent_req *req,
TALLOC_CTX *mem_ctx,
NTSTATUS *result)
{
struct rpccli_netr_LogonGetCapabilities_state *state = tevent_req_data(
req, struct rpccli_netr_LogonGetCapabilities_state);
NTSTATUS status;
if (tevent_req_is_nterror(req, &status)) {
tevent_req_received(req);
return status;
}
/* Steal possbile out parameters to the callers context */
talloc_steal(mem_ctx, state->out_mem_ctx);
/* Return result */
*result = state->orig.out.result;
tevent_req_received(req);
return NT_STATUS_OK;
}
NTSTATUS rpccli_netr_LogonGetCapabilities(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
const char *server_name /* [in] [ref,charset(UTF16)] */,
const char *computer_name /* [in] [unique,charset(UTF16)] */,
struct netr_Authenticator *credential /* [in] [ref] */,
struct netr_Authenticator *return_authenticator /* [in,out] [ref] */,
uint32_t query_level /* [in] */,
union netr_Capabilities *capabilities /* [out] [ref,switch_is(query_level)] */)
{
struct netr_LogonGetCapabilities r;
NTSTATUS status;
/* In parameters */
r.in.server_name = server_name;
r.in.computer_name = computer_name;
r.in.credential = credential;
r.in.return_authenticator = return_authenticator;
r.in.query_level = query_level;
status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_LOGONGETCAPABILITIES,
&r);
if (!NT_STATUS_IS_OK(status)) {
return status;
}
if (NT_STATUS_IS_ERR(status)) {
return status;
}
/* Return variables */
*return_authenticator = *r.out.return_authenticator;
*capabilities = *r.out.capabilities;
/* Return result */
return r.out.result;
}
struct rpccli_netr_NETRLOGONSETSERVICEBITS_state {
struct netr_NETRLOGONSETSERVICEBITS orig;
struct netr_NETRLOGONSETSERVICEBITS tmp;
TALLOC_CTX *out_mem_ctx;
NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
};
static void rpccli_netr_NETRLOGONSETSERVICEBITS_done(struct tevent_req *subreq);
struct tevent_req *rpccli_netr_NETRLOGONSETSERVICEBITS_send(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
struct rpc_pipe_client *cli)
{
struct tevent_req *req;
struct rpccli_netr_NETRLOGONSETSERVICEBITS_state *state;
struct tevent_req *subreq;
req = tevent_req_create(mem_ctx, &state,
struct rpccli_netr_NETRLOGONSETSERVICEBITS_state);
if (req == NULL) {
return NULL;
}
state->out_mem_ctx = NULL;
state->dispatch_recv = cli->dispatch_recv;
/* In parameters */
/* Out parameters */
/* Result */
ZERO_STRUCT(state->orig.out.result);
/* make a temporary copy, that we pass to the dispatch function */
state->tmp = state->orig;
subreq = cli->dispatch_send(state, ev, cli,
&ndr_table_netlogon,
NDR_NETR_NETRLOGONSETSERVICEBITS,
&state->tmp);
if (tevent_req_nomem(subreq, req)) {
return tevent_req_post(req, ev);
}
tevent_req_set_callback(subreq, rpccli_netr_NETRLOGONSETSERVICEBITS_done, req);
return req;
}
static void rpccli_netr_NETRLOGONSETSERVICEBITS_done(struct tevent_req *subreq)
{
struct tevent_req *req = tevent_req_callback_data(
subreq, struct tevent_req);
struct rpccli_netr_NETRLOGONSETSERVICEBITS_state *state = tevent_req_data(
req, struct rpccli_netr_NETRLOGONSETSERVICEBITS_state);
NTSTATUS status;
TALLOC_CTX *mem_ctx;
if (state->out_mem_ctx) {
mem_ctx = state->out_mem_ctx;
} else {
mem_ctx = state;
}
status = state->dispatch_recv(subreq, mem_ctx);
TALLOC_FREE(subreq);
if (!NT_STATUS_IS_OK(status)) {
tevent_req_nterror(req, status);
return;
}
/* Copy out parameters */
/* Copy result */
state->orig.out.result = state->tmp.out.result;
/* Reset temporary structure */
ZERO_STRUCT(state->tmp);
tevent_req_done(req);
}
NTSTATUS rpccli_netr_NETRLOGONSETSERVICEBITS_recv(struct tevent_req *req,
TALLOC_CTX *mem_ctx,
WERROR *result)
{
struct rpccli_netr_NETRLOGONSETSERVICEBITS_state *state = tevent_req_data(
req, struct rpccli_netr_NETRLOGONSETSERVICEBITS_state);
NTSTATUS status;
if (tevent_req_is_nterror(req, &status)) {
tevent_req_received(req);
return status;
}
/* Steal possbile out parameters to the callers context */
talloc_steal(mem_ctx, state->out_mem_ctx);
/* Return result */
*result = state->orig.out.result;
tevent_req_received(req);
return NT_STATUS_OK;
}
NTSTATUS rpccli_netr_NETRLOGONSETSERVICEBITS(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
WERROR *werror)
{
struct netr_NETRLOGONSETSERVICEBITS r;
NTSTATUS status;
/* In parameters */
status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_NETRLOGONSETSERVICEBITS,
&r);
if (!NT_STATUS_IS_OK(status)) {
return status;
}
if (NT_STATUS_IS_ERR(status)) {
return status;
}
/* Return variables */
/* Return result */
if (werror) {
*werror = r.out.result;
}
return werror_to_ntstatus(r.out.result);
}
struct rpccli_netr_LogonGetTrustRid_state {
struct netr_LogonGetTrustRid orig;
struct netr_LogonGetTrustRid tmp;
TALLOC_CTX *out_mem_ctx;
NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
};
static void rpccli_netr_LogonGetTrustRid_done(struct tevent_req *subreq);
struct tevent_req *rpccli_netr_LogonGetTrustRid_send(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
struct rpc_pipe_client *cli,
const char *_server_name /* [in] [unique,charset(UTF16)] */,
const char *_domain_name /* [in] [unique,charset(UTF16)] */,
uint32_t *_rid /* [out] [ref] */)
{
struct tevent_req *req;
struct rpccli_netr_LogonGetTrustRid_state *state;
struct tevent_req *subreq;
req = tevent_req_create(mem_ctx, &state,
struct rpccli_netr_LogonGetTrustRid_state);
if (req == NULL) {
return NULL;
}
state->out_mem_ctx = NULL;
state->dispatch_recv = cli->dispatch_recv;
/* In parameters */
state->orig.in.server_name = _server_name;
state->orig.in.domain_name = _domain_name;
/* Out parameters */
state->orig.out.rid = _rid;
/* Result */
ZERO_STRUCT(state->orig.out.result);
state->out_mem_ctx = talloc_named_const(state, 0,
"rpccli_netr_LogonGetTrustRid_out_memory");
if (tevent_req_nomem(state->out_mem_ctx, req)) {
return tevent_req_post(req, ev);
}
/* make a temporary copy, that we pass to the dispatch function */
state->tmp = state->orig;
subreq = cli->dispatch_send(state, ev, cli,
&ndr_table_netlogon,
NDR_NETR_LOGONGETTRUSTRID,
&state->tmp);
if (tevent_req_nomem(subreq, req)) {
return tevent_req_post(req, ev);
}
tevent_req_set_callback(subreq, rpccli_netr_LogonGetTrustRid_done, req);
return req;
}
static void rpccli_netr_LogonGetTrustRid_done(struct tevent_req *subreq)
{
struct tevent_req *req = tevent_req_callback_data(
subreq, struct tevent_req);
struct rpccli_netr_LogonGetTrustRid_state *state = tevent_req_data(
req, struct rpccli_netr_LogonGetTrustRid_state);
NTSTATUS status;
TALLOC_CTX *mem_ctx;
if (state->out_mem_ctx) {
mem_ctx = state->out_mem_ctx;
} else {
mem_ctx = state;
}
status = state->dispatch_recv(subreq, mem_ctx);
TALLOC_FREE(subreq);
if (!NT_STATUS_IS_OK(status)) {
tevent_req_nterror(req, status);
return;
}
/* Copy out parameters */
*state->orig.out.rid = *state->tmp.out.rid;
/* Copy result */
state->orig.out.result = state->tmp.out.result;
/* Reset temporary structure */
ZERO_STRUCT(state->tmp);
tevent_req_done(req);
}
NTSTATUS rpccli_netr_LogonGetTrustRid_recv(struct tevent_req *req,
TALLOC_CTX *mem_ctx,
WERROR *result)
{
struct rpccli_netr_LogonGetTrustRid_state *state = tevent_req_data(
req, struct rpccli_netr_LogonGetTrustRid_state);
NTSTATUS status;
if (tevent_req_is_nterror(req, &status)) {
tevent_req_received(req);
return status;
}
/* Steal possbile out parameters to the callers context */
talloc_steal(mem_ctx, state->out_mem_ctx);
/* Return result */
*result = state->orig.out.result;
tevent_req_received(req);
return NT_STATUS_OK;
}
NTSTATUS rpccli_netr_LogonGetTrustRid(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
const char *server_name /* [in] [unique,charset(UTF16)] */,
const char *domain_name /* [in] [unique,charset(UTF16)] */,
uint32_t *rid /* [out] [ref] */,
WERROR *werror)
{
struct netr_LogonGetTrustRid r;
NTSTATUS status;
/* In parameters */
r.in.server_name = server_name;
r.in.domain_name = domain_name;
status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_LOGONGETTRUSTRID,
&r);
if (!NT_STATUS_IS_OK(status)) {
return status;
}
if (NT_STATUS_IS_ERR(status)) {
return status;
}
/* Return variables */
*rid = *r.out.rid;
/* Return result */
if (werror) {
*werror = r.out.result;
}
return werror_to_ntstatus(r.out.result);
}
struct rpccli_netr_NETRLOGONCOMPUTESERVERDIGEST_state {
struct netr_NETRLOGONCOMPUTESERVERDIGEST orig;
struct netr_NETRLOGONCOMPUTESERVERDIGEST tmp;
TALLOC_CTX *out_mem_ctx;
NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
};
static void rpccli_netr_NETRLOGONCOMPUTESERVERDIGEST_done(struct tevent_req *subreq);
struct tevent_req *rpccli_netr_NETRLOGONCOMPUTESERVERDIGEST_send(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
struct rpc_pipe_client *cli)
{
struct tevent_req *req;
struct rpccli_netr_NETRLOGONCOMPUTESERVERDIGEST_state *state;
struct tevent_req *subreq;
req = tevent_req_create(mem_ctx, &state,
struct rpccli_netr_NETRLOGONCOMPUTESERVERDIGEST_state);
if (req == NULL) {
return NULL;
}
state->out_mem_ctx = NULL;
state->dispatch_recv = cli->dispatch_recv;
/* In parameters */
/* Out parameters */
/* Result */
ZERO_STRUCT(state->orig.out.result);
/* make a temporary copy, that we pass to the dispatch function */
state->tmp = state->orig;
subreq = cli->dispatch_send(state, ev, cli,
&ndr_table_netlogon,
NDR_NETR_NETRLOGONCOMPUTESERVERDIGEST,
&state->tmp);
if (tevent_req_nomem(subreq, req)) {
return tevent_req_post(req, ev);
}
tevent_req_set_callback(subreq, rpccli_netr_NETRLOGONCOMPUTESERVERDIGEST_done, req);
return req;
}
static void rpccli_netr_NETRLOGONCOMPUTESERVERDIGEST_done(struct tevent_req *subreq)
{
struct tevent_req *req = tevent_req_callback_data(
subreq, struct tevent_req);
struct rpccli_netr_NETRLOGONCOMPUTESERVERDIGEST_state *state = tevent_req_data(
req, struct rpccli_netr_NETRLOGONCOMPUTESERVERDIGEST_state);
NTSTATUS status;
TALLOC_CTX *mem_ctx;
if (state->out_mem_ctx) {
mem_ctx = state->out_mem_ctx;
} else {
mem_ctx = state;
}
status = state->dispatch_recv(subreq, mem_ctx);
TALLOC_FREE(subreq);
if (!NT_STATUS_IS_OK(status)) {
tevent_req_nterror(req, status);
return;
}
/* Copy out parameters */
/* Copy result */
state->orig.out.result = state->tmp.out.result;
/* Reset temporary structure */
ZERO_STRUCT(state->tmp);
tevent_req_done(req);
}
NTSTATUS rpccli_netr_NETRLOGONCOMPUTESERVERDIGEST_recv(struct tevent_req *req,
TALLOC_CTX *mem_ctx,
WERROR *result)
{
struct rpccli_netr_NETRLOGONCOMPUTESERVERDIGEST_state *state = tevent_req_data(
req, struct rpccli_netr_NETRLOGONCOMPUTESERVERDIGEST_state);
NTSTATUS status;
if (tevent_req_is_nterror(req, &status)) {
tevent_req_received(req);
return status;
}
/* Steal possbile out parameters to the callers context */
talloc_steal(mem_ctx, state->out_mem_ctx);
/* Return result */
*result = state->orig.out.result;
tevent_req_received(req);
return NT_STATUS_OK;
}
NTSTATUS rpccli_netr_NETRLOGONCOMPUTESERVERDIGEST(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
WERROR *werror)
{
struct netr_NETRLOGONCOMPUTESERVERDIGEST r;
NTSTATUS status;
/* In parameters */
status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_NETRLOGONCOMPUTESERVERDIGEST,
&r);
if (!NT_STATUS_IS_OK(status)) {
return status;
}
if (NT_STATUS_IS_ERR(status)) {
return status;
}
/* Return variables */
/* Return result */
if (werror) {
*werror = r.out.result;
}
return werror_to_ntstatus(r.out.result);
}
struct rpccli_netr_NETRLOGONCOMPUTECLIENTDIGEST_state {
struct netr_NETRLOGONCOMPUTECLIENTDIGEST orig;
struct netr_NETRLOGONCOMPUTECLIENTDIGEST tmp;
TALLOC_CTX *out_mem_ctx;
NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
};
static void rpccli_netr_NETRLOGONCOMPUTECLIENTDIGEST_done(struct tevent_req *subreq);
struct tevent_req *rpccli_netr_NETRLOGONCOMPUTECLIENTDIGEST_send(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
struct rpc_pipe_client *cli)
{
struct tevent_req *req;
struct rpccli_netr_NETRLOGONCOMPUTECLIENTDIGEST_state *state;
struct tevent_req *subreq;
req = tevent_req_create(mem_ctx, &state,
struct rpccli_netr_NETRLOGONCOMPUTECLIENTDIGEST_state);
if (req == NULL) {
return NULL;
}
state->out_mem_ctx = NULL;
state->dispatch_recv = cli->dispatch_recv;
/* In parameters */
/* Out parameters */
/* Result */
ZERO_STRUCT(state->orig.out.result);
/* make a temporary copy, that we pass to the dispatch function */
state->tmp = state->orig;
subreq = cli->dispatch_send(state, ev, cli,
&ndr_table_netlogon,
NDR_NETR_NETRLOGONCOMPUTECLIENTDIGEST,
&state->tmp);
if (tevent_req_nomem(subreq, req)) {
return tevent_req_post(req, ev);
}
tevent_req_set_callback(subreq, rpccli_netr_NETRLOGONCOMPUTECLIENTDIGEST_done, req);
return req;
}
static void rpccli_netr_NETRLOGONCOMPUTECLIENTDIGEST_done(struct tevent_req *subreq)
{
struct tevent_req *req = tevent_req_callback_data(
subreq, struct tevent_req);
struct rpccli_netr_NETRLOGONCOMPUTECLIENTDIGEST_state *state = tevent_req_data(
req, struct rpccli_netr_NETRLOGONCOMPUTECLIENTDIGEST_state);
NTSTATUS status;
TALLOC_CTX *mem_ctx;
if (state->out_mem_ctx) {
mem_ctx = state->out_mem_ctx;
} else {
mem_ctx = state;
}
status = state->dispatch_recv(subreq, mem_ctx);
TALLOC_FREE(subreq);
if (!NT_STATUS_IS_OK(status)) {
tevent_req_nterror(req, status);
return;
}
/* Copy out parameters */
/* Copy result */
state->orig.out.result = state->tmp.out.result;
/* Reset temporary structure */
ZERO_STRUCT(state->tmp);
tevent_req_done(req);
}
NTSTATUS rpccli_netr_NETRLOGONCOMPUTECLIENTDIGEST_recv(struct tevent_req *req,
TALLOC_CTX *mem_ctx,
WERROR *result)
{
struct rpccli_netr_NETRLOGONCOMPUTECLIENTDIGEST_state *state = tevent_req_data(
req, struct rpccli_netr_NETRLOGONCOMPUTECLIENTDIGEST_state);
NTSTATUS status;
if (tevent_req_is_nterror(req, &status)) {
tevent_req_received(req);
return status;
}
/* Steal possbile out parameters to the callers context */
talloc_steal(mem_ctx, state->out_mem_ctx);
/* Return result */
*result = state->orig.out.result;
tevent_req_received(req);
return NT_STATUS_OK;
}
NTSTATUS rpccli_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
WERROR *werror)
{
struct netr_NETRLOGONCOMPUTECLIENTDIGEST r;
NTSTATUS status;
/* In parameters */
status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_NETRLOGONCOMPUTECLIENTDIGEST,
&r);
if (!NT_STATUS_IS_OK(status)) {
return status;
}
if (NT_STATUS_IS_ERR(status)) {
return status;
}
/* Return variables */
/* Return result */
if (werror) {
*werror = r.out.result;
}
return werror_to_ntstatus(r.out.result);
}
struct rpccli_netr_ServerAuthenticate3_state {
struct netr_ServerAuthenticate3 orig;
struct netr_ServerAuthenticate3 tmp;
TALLOC_CTX *out_mem_ctx;
NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
};
static void rpccli_netr_ServerAuthenticate3_done(struct tevent_req *subreq);
struct tevent_req *rpccli_netr_ServerAuthenticate3_send(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
struct rpc_pipe_client *cli,
const char *_server_name /* [in] [unique,charset(UTF16)] */,
const char *_account_name /* [in] [ref,charset(UTF16)] */,
enum netr_SchannelType _secure_channel_type /* [in] */,
const char *_computer_name /* [in] [ref,charset(UTF16)] */,
struct netr_Credential *_credentials /* [in] [ref] */,
struct netr_Credential *_return_credentials /* [out] [ref] */,
uint32_t *_negotiate_flags /* [in,out] [ref] */,
uint32_t *_rid /* [out] [ref] */)
{
struct tevent_req *req;
struct rpccli_netr_ServerAuthenticate3_state *state;
struct tevent_req *subreq;
req = tevent_req_create(mem_ctx, &state,
struct rpccli_netr_ServerAuthenticate3_state);
if (req == NULL) {
return NULL;
}
state->out_mem_ctx = NULL;
state->dispatch_recv = cli->dispatch_recv;
/* In parameters */
state->orig.in.server_name = _server_name;
state->orig.in.account_name = _account_name;
state->orig.in.secure_channel_type = _secure_channel_type;
state->orig.in.computer_name = _computer_name;
state->orig.in.credentials = _credentials;
state->orig.in.negotiate_flags = _negotiate_flags;
/* Out parameters */
state->orig.out.return_credentials = _return_credentials;
state->orig.out.negotiate_flags = _negotiate_flags;
state->orig.out.rid = _rid;
/* Result */
ZERO_STRUCT(state->orig.out.result);
state->out_mem_ctx = talloc_named_const(state, 0,
"rpccli_netr_ServerAuthenticate3_out_memory");
if (tevent_req_nomem(state->out_mem_ctx, req)) {
return tevent_req_post(req, ev);
}
/* make a temporary copy, that we pass to the dispatch function */
state->tmp = state->orig;
subreq = cli->dispatch_send(state, ev, cli,
&ndr_table_netlogon,
NDR_NETR_SERVERAUTHENTICATE3,
&state->tmp);
if (tevent_req_nomem(subreq, req)) {
return tevent_req_post(req, ev);
}
tevent_req_set_callback(subreq, rpccli_netr_ServerAuthenticate3_done, req);
return req;
}
static void rpccli_netr_ServerAuthenticate3_done(struct tevent_req *subreq)
{
struct tevent_req *req = tevent_req_callback_data(
subreq, struct tevent_req);
struct rpccli_netr_ServerAuthenticate3_state *state = tevent_req_data(
req, struct rpccli_netr_ServerAuthenticate3_state);
NTSTATUS status;
TALLOC_CTX *mem_ctx;
if (state->out_mem_ctx) {
mem_ctx = state->out_mem_ctx;
} else {
mem_ctx = state;
}
status = state->dispatch_recv(subreq, mem_ctx);
TALLOC_FREE(subreq);
if (!NT_STATUS_IS_OK(status)) {
tevent_req_nterror(req, status);
return;
}
/* Copy out parameters */
*state->orig.out.return_credentials = *state->tmp.out.return_credentials;
*state->orig.out.negotiate_flags = *state->tmp.out.negotiate_flags;
*state->orig.out.rid = *state->tmp.out.rid;
/* Copy result */
state->orig.out.result = state->tmp.out.result;
/* Reset temporary structure */
ZERO_STRUCT(state->tmp);
tevent_req_done(req);
}
NTSTATUS rpccli_netr_ServerAuthenticate3_recv(struct tevent_req *req,
TALLOC_CTX *mem_ctx,
NTSTATUS *result)
{
struct rpccli_netr_ServerAuthenticate3_state *state = tevent_req_data(
req, struct rpccli_netr_ServerAuthenticate3_state);
NTSTATUS status;
if (tevent_req_is_nterror(req, &status)) {
tevent_req_received(req);
return status;
}
/* Steal possbile out parameters to the callers context */
talloc_steal(mem_ctx, state->out_mem_ctx);
/* Return result */
*result = state->orig.out.result;
tevent_req_received(req);
return NT_STATUS_OK;
}
NTSTATUS rpccli_netr_ServerAuthenticate3(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
const char *server_name /* [in] [unique,charset(UTF16)] */,
const char *account_name /* [in] [ref,charset(UTF16)] */,
enum netr_SchannelType secure_channel_type /* [in] */,
const char *computer_name /* [in] [ref,charset(UTF16)] */,
struct netr_Credential *credentials /* [in] [ref] */,
struct netr_Credential *return_credentials /* [out] [ref] */,
uint32_t *negotiate_flags /* [in,out] [ref] */,
uint32_t *rid /* [out] [ref] */)
{
struct netr_ServerAuthenticate3 r;
NTSTATUS status;
/* In parameters */
r.in.server_name = server_name;
r.in.account_name = account_name;
r.in.secure_channel_type = secure_channel_type;
r.in.computer_name = computer_name;
r.in.credentials = credentials;
r.in.negotiate_flags = negotiate_flags;
status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_SERVERAUTHENTICATE3,
&r);
if (!NT_STATUS_IS_OK(status)) {
return status;
}
if (NT_STATUS_IS_ERR(status)) {
return status;
}
/* Return variables */
*return_credentials = *r.out.return_credentials;
*negotiate_flags = *r.out.negotiate_flags;
*rid = *r.out.rid;
/* Return result */
return r.out.result;
}
struct rpccli_netr_DsRGetDCNameEx_state {
struct netr_DsRGetDCNameEx orig;
struct netr_DsRGetDCNameEx tmp;
TALLOC_CTX *out_mem_ctx;
NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
};
static void rpccli_netr_DsRGetDCNameEx_done(struct tevent_req *subreq);
struct tevent_req *rpccli_netr_DsRGetDCNameEx_send(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
struct rpc_pipe_client *cli,
const char *_server_unc /* [in] [unique,charset(UTF16)] */,
const char *_domain_name /* [in] [unique,charset(UTF16)] */,
struct GUID *_domain_guid /* [in] [unique] */,
const char *_site_name /* [in] [unique,charset(UTF16)] */,
uint32_t _flags /* [in] */,
struct netr_DsRGetDCNameInfo **_info /* [out] [ref] */)
{
struct tevent_req *req;
struct rpccli_netr_DsRGetDCNameEx_state *state;
struct tevent_req *subreq;
req = tevent_req_create(mem_ctx, &state,
struct rpccli_netr_DsRGetDCNameEx_state);
if (req == NULL) {
return NULL;
}
state->out_mem_ctx = NULL;
state->dispatch_recv = cli->dispatch_recv;
/* In parameters */
state->orig.in.server_unc = _server_unc;
state->orig.in.domain_name = _domain_name;
state->orig.in.domain_guid = _domain_guid;
state->orig.in.site_name = _site_name;
state->orig.in.flags = _flags;
/* Out parameters */
state->orig.out.info = _info;
/* Result */
ZERO_STRUCT(state->orig.out.result);
state->out_mem_ctx = talloc_named_const(state, 0,
"rpccli_netr_DsRGetDCNameEx_out_memory");
if (tevent_req_nomem(state->out_mem_ctx, req)) {
return tevent_req_post(req, ev);
}
/* make a temporary copy, that we pass to the dispatch function */
state->tmp = state->orig;
subreq = cli->dispatch_send(state, ev, cli,
&ndr_table_netlogon,
NDR_NETR_DSRGETDCNAMEEX,
&state->tmp);
if (tevent_req_nomem(subreq, req)) {
return tevent_req_post(req, ev);
}
tevent_req_set_callback(subreq, rpccli_netr_DsRGetDCNameEx_done, req);
return req;
}
static void rpccli_netr_DsRGetDCNameEx_done(struct tevent_req *subreq)
{
struct tevent_req *req = tevent_req_callback_data(
subreq, struct tevent_req);
struct rpccli_netr_DsRGetDCNameEx_state *state = tevent_req_data(
req, struct rpccli_netr_DsRGetDCNameEx_state);
NTSTATUS status;
TALLOC_CTX *mem_ctx;
if (state->out_mem_ctx) {
mem_ctx = state->out_mem_ctx;
} else {
mem_ctx = state;
}
status = state->dispatch_recv(subreq, mem_ctx);
TALLOC_FREE(subreq);
if (!NT_STATUS_IS_OK(status)) {
tevent_req_nterror(req, status);
return;
}
/* Copy out parameters */
*state->orig.out.info = *state->tmp.out.info;
/* Copy result */
state->orig.out.result = state->tmp.out.result;
/* Reset temporary structure */
ZERO_STRUCT(state->tmp);
tevent_req_done(req);
}
NTSTATUS rpccli_netr_DsRGetDCNameEx_recv(struct tevent_req *req,
TALLOC_CTX *mem_ctx,
WERROR *result)
{
struct rpccli_netr_DsRGetDCNameEx_state *state = tevent_req_data(
req, struct rpccli_netr_DsRGetDCNameEx_state);
NTSTATUS status;
if (tevent_req_is_nterror(req, &status)) {
tevent_req_received(req);
return status;
}
/* Steal possbile out parameters to the callers context */
talloc_steal(mem_ctx, state->out_mem_ctx);
/* Return result */
*result = state->orig.out.result;
tevent_req_received(req);
return NT_STATUS_OK;
}
NTSTATUS rpccli_netr_DsRGetDCNameEx(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
const char *server_unc /* [in] [unique,charset(UTF16)] */,
const char *domain_name /* [in] [unique,charset(UTF16)] */,
struct GUID *domain_guid /* [in] [unique] */,
const char *site_name /* [in] [unique,charset(UTF16)] */,
uint32_t flags /* [in] */,
struct netr_DsRGetDCNameInfo **info /* [out] [ref] */,
WERROR *werror)
{
struct netr_DsRGetDCNameEx r;
NTSTATUS status;
/* In parameters */
r.in.server_unc = server_unc;
r.in.domain_name = domain_name;
r.in.domain_guid = domain_guid;
r.in.site_name = site_name;
r.in.flags = flags;
status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_DSRGETDCNAMEEX,
&r);
if (!NT_STATUS_IS_OK(status)) {
return status;
}
if (NT_STATUS_IS_ERR(status)) {
return status;
}
/* Return variables */
*info = *r.out.info;
/* Return result */
if (werror) {
*werror = r.out.result;
}
return werror_to_ntstatus(r.out.result);
}
struct rpccli_netr_DsRGetSiteName_state {
struct netr_DsRGetSiteName orig;
struct netr_DsRGetSiteName tmp;
TALLOC_CTX *out_mem_ctx;
NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
};
static void rpccli_netr_DsRGetSiteName_done(struct tevent_req *subreq);
struct tevent_req *rpccli_netr_DsRGetSiteName_send(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
struct rpc_pipe_client *cli,
const char *_computer_name /* [in] [unique,charset(UTF16)] */,
const char **_site /* [out] [ref,charset(UTF16)] */)
{
struct tevent_req *req;
struct rpccli_netr_DsRGetSiteName_state *state;
struct tevent_req *subreq;
req = tevent_req_create(mem_ctx, &state,
struct rpccli_netr_DsRGetSiteName_state);
if (req == NULL) {
return NULL;
}
state->out_mem_ctx = NULL;
state->dispatch_recv = cli->dispatch_recv;
/* In parameters */
state->orig.in.computer_name = _computer_name;
/* Out parameters */
state->orig.out.site = _site;
/* Result */
ZERO_STRUCT(state->orig.out.result);
state->out_mem_ctx = talloc_named_const(state, 0,
"rpccli_netr_DsRGetSiteName_out_memory");
if (tevent_req_nomem(state->out_mem_ctx, req)) {
return tevent_req_post(req, ev);
}
/* make a temporary copy, that we pass to the dispatch function */
state->tmp = state->orig;
subreq = cli->dispatch_send(state, ev, cli,
&ndr_table_netlogon,
NDR_NETR_DSRGETSITENAME,
&state->tmp);
if (tevent_req_nomem(subreq, req)) {
return tevent_req_post(req, ev);
}
tevent_req_set_callback(subreq, rpccli_netr_DsRGetSiteName_done, req);
return req;
}
static void rpccli_netr_DsRGetSiteName_done(struct tevent_req *subreq)
{
struct tevent_req *req = tevent_req_callback_data(
subreq, struct tevent_req);
struct rpccli_netr_DsRGetSiteName_state *state = tevent_req_data(
req, struct rpccli_netr_DsRGetSiteName_state);
NTSTATUS status;
TALLOC_CTX *mem_ctx;
if (state->out_mem_ctx) {
mem_ctx = state->out_mem_ctx;
} else {
mem_ctx = state;
}
status = state->dispatch_recv(subreq, mem_ctx);
TALLOC_FREE(subreq);
if (!NT_STATUS_IS_OK(status)) {
tevent_req_nterror(req, status);
return;
}
/* Copy out parameters */
*state->orig.out.site = *state->tmp.out.site;
/* Copy result */
state->orig.out.result = state->tmp.out.result;
/* Reset temporary structure */
ZERO_STRUCT(state->tmp);
tevent_req_done(req);
}
NTSTATUS rpccli_netr_DsRGetSiteName_recv(struct tevent_req *req,
TALLOC_CTX *mem_ctx,
WERROR *result)
{
struct rpccli_netr_DsRGetSiteName_state *state = tevent_req_data(
req, struct rpccli_netr_DsRGetSiteName_state);
NTSTATUS status;
if (tevent_req_is_nterror(req, &status)) {
tevent_req_received(req);
return status;
}
/* Steal possbile out parameters to the callers context */
talloc_steal(mem_ctx, state->out_mem_ctx);
/* Return result */
*result = state->orig.out.result;
tevent_req_received(req);
return NT_STATUS_OK;
}
NTSTATUS rpccli_netr_DsRGetSiteName(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
const char *computer_name /* [in] [unique,charset(UTF16)] */,
const char **site /* [out] [ref,charset(UTF16)] */,
WERROR *werror)
{
struct netr_DsRGetSiteName r;
NTSTATUS status;
/* In parameters */
r.in.computer_name = computer_name;
status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_DSRGETSITENAME,
&r);
if (!NT_STATUS_IS_OK(status)) {
return status;
}
if (NT_STATUS_IS_ERR(status)) {
return status;
}
/* Return variables */
*site = *r.out.site;
/* Return result */
if (werror) {
*werror = r.out.result;
}
return werror_to_ntstatus(r.out.result);
}
struct rpccli_netr_LogonGetDomainInfo_state {
struct netr_LogonGetDomainInfo orig;
struct netr_LogonGetDomainInfo tmp;
TALLOC_CTX *out_mem_ctx;
NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
};
static void rpccli_netr_LogonGetDomainInfo_done(struct tevent_req *subreq);
struct tevent_req *rpccli_netr_LogonGetDomainInfo_send(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
struct rpc_pipe_client *cli,
const char *_server_name /* [in] [ref,charset(UTF16)] */,
const char *_computer_name /* [in] [unique,charset(UTF16)] */,
struct netr_Authenticator *_credential /* [in] [ref] */,
struct netr_Authenticator *_return_authenticator /* [in,out] [ref] */,
uint32_t _level /* [in] */,
union netr_WorkstationInfo *_query /* [in] [ref,switch_is(level)] */,
union netr_DomainInfo *_info /* [out] [ref,switch_is(level)] */)
{
struct tevent_req *req;
struct rpccli_netr_LogonGetDomainInfo_state *state;
struct tevent_req *subreq;
req = tevent_req_create(mem_ctx, &state,
struct rpccli_netr_LogonGetDomainInfo_state);
if (req == NULL) {
return NULL;
}
state->out_mem_ctx = NULL;
state->dispatch_recv = cli->dispatch_recv;
/* In parameters */
state->orig.in.server_name = _server_name;
state->orig.in.computer_name = _computer_name;
state->orig.in.credential = _credential;
state->orig.in.return_authenticator = _return_authenticator;
state->orig.in.level = _level;
state->orig.in.query = _query;
/* Out parameters */
state->orig.out.return_authenticator = _return_authenticator;
state->orig.out.info = _info;
/* Result */
ZERO_STRUCT(state->orig.out.result);
state->out_mem_ctx = talloc_named_const(state, 0,
"rpccli_netr_LogonGetDomainInfo_out_memory");
if (tevent_req_nomem(state->out_mem_ctx, req)) {
return tevent_req_post(req, ev);
}
/* make a temporary copy, that we pass to the dispatch function */
state->tmp = state->orig;
subreq = cli->dispatch_send(state, ev, cli,
&ndr_table_netlogon,
NDR_NETR_LOGONGETDOMAININFO,
&state->tmp);
if (tevent_req_nomem(subreq, req)) {
return tevent_req_post(req, ev);
}
tevent_req_set_callback(subreq, rpccli_netr_LogonGetDomainInfo_done, req);
return req;
}
static void rpccli_netr_LogonGetDomainInfo_done(struct tevent_req *subreq)
{
struct tevent_req *req = tevent_req_callback_data(
subreq, struct tevent_req);
struct rpccli_netr_LogonGetDomainInfo_state *state = tevent_req_data(
req, struct rpccli_netr_LogonGetDomainInfo_state);
NTSTATUS status;
TALLOC_CTX *mem_ctx;
if (state->out_mem_ctx) {
mem_ctx = state->out_mem_ctx;
} else {
mem_ctx = state;
}
status = state->dispatch_recv(subreq, mem_ctx);
TALLOC_FREE(subreq);
if (!NT_STATUS_IS_OK(status)) {
tevent_req_nterror(req, status);
return;
}
/* Copy out parameters */
*state->orig.out.return_authenticator = *state->tmp.out.return_authenticator;
*state->orig.out.info = *state->tmp.out.info;
/* Copy result */
state->orig.out.result = state->tmp.out.result;
/* Reset temporary structure */
ZERO_STRUCT(state->tmp);
tevent_req_done(req);
}
NTSTATUS rpccli_netr_LogonGetDomainInfo_recv(struct tevent_req *req,
TALLOC_CTX *mem_ctx,
NTSTATUS *result)
{
struct rpccli_netr_LogonGetDomainInfo_state *state = tevent_req_data(
req, struct rpccli_netr_LogonGetDomainInfo_state);
NTSTATUS status;
if (tevent_req_is_nterror(req, &status)) {
tevent_req_received(req);
return status;
}
/* Steal possbile out parameters to the callers context */
talloc_steal(mem_ctx, state->out_mem_ctx);
/* Return result */
*result = state->orig.out.result;
tevent_req_received(req);
return NT_STATUS_OK;
}
NTSTATUS rpccli_netr_LogonGetDomainInfo(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
const char *server_name /* [in] [ref,charset(UTF16)] */,
const char *computer_name /* [in] [unique,charset(UTF16)] */,
struct netr_Authenticator *credential /* [in] [ref] */,
struct netr_Authenticator *return_authenticator /* [in,out] [ref] */,
uint32_t level /* [in] */,
union netr_WorkstationInfo *query /* [in] [ref,switch_is(level)] */,
union netr_DomainInfo *info /* [out] [ref,switch_is(level)] */)
{
struct netr_LogonGetDomainInfo r;
NTSTATUS status;
/* In parameters */
r.in.server_name = server_name;
r.in.computer_name = computer_name;
r.in.credential = credential;
r.in.return_authenticator = return_authenticator;
r.in.level = level;
r.in.query = query;
status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_LOGONGETDOMAININFO,
&r);
if (!NT_STATUS_IS_OK(status)) {
return status;
}
if (NT_STATUS_IS_ERR(status)) {
return status;
}
/* Return variables */
*return_authenticator = *r.out.return_authenticator;
*info = *r.out.info;
/* Return result */
return r.out.result;
}
struct rpccli_netr_ServerPasswordSet2_state {
struct netr_ServerPasswordSet2 orig;
struct netr_ServerPasswordSet2 tmp;
TALLOC_CTX *out_mem_ctx;
NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
};
static void rpccli_netr_ServerPasswordSet2_done(struct tevent_req *subreq);
struct tevent_req *rpccli_netr_ServerPasswordSet2_send(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
struct rpc_pipe_client *cli,
const char *_server_name /* [in] [unique,charset(UTF16)] */,
const char *_account_name /* [in] [ref,charset(UTF16)] */,
enum netr_SchannelType _secure_channel_type /* [in] */,
const char *_computer_name /* [in] [ref,charset(UTF16)] */,
struct netr_Authenticator *_credential /* [in] [ref] */,
struct netr_Authenticator *_return_authenticator /* [out] [ref] */,
struct netr_CryptPassword *_new_password /* [in] [ref] */)
{
struct tevent_req *req;
struct rpccli_netr_ServerPasswordSet2_state *state;
struct tevent_req *subreq;
req = tevent_req_create(mem_ctx, &state,
struct rpccli_netr_ServerPasswordSet2_state);
if (req == NULL) {
return NULL;
}
state->out_mem_ctx = NULL;
state->dispatch_recv = cli->dispatch_recv;
/* In parameters */
state->orig.in.server_name = _server_name;
state->orig.in.account_name = _account_name;
state->orig.in.secure_channel_type = _secure_channel_type;
state->orig.in.computer_name = _computer_name;
state->orig.in.credential = _credential;
state->orig.in.new_password = _new_password;
/* Out parameters */
state->orig.out.return_authenticator = _return_authenticator;
/* Result */
ZERO_STRUCT(state->orig.out.result);
state->out_mem_ctx = talloc_named_const(state, 0,
"rpccli_netr_ServerPasswordSet2_out_memory");
if (tevent_req_nomem(state->out_mem_ctx, req)) {
return tevent_req_post(req, ev);
}
/* make a temporary copy, that we pass to the dispatch function */
state->tmp = state->orig;
subreq = cli->dispatch_send(state, ev, cli,
&ndr_table_netlogon,
NDR_NETR_SERVERPASSWORDSET2,
&state->tmp);
if (tevent_req_nomem(subreq, req)) {
return tevent_req_post(req, ev);
}
tevent_req_set_callback(subreq, rpccli_netr_ServerPasswordSet2_done, req);
return req;
}
static void rpccli_netr_ServerPasswordSet2_done(struct tevent_req *subreq)
{
struct tevent_req *req = tevent_req_callback_data(
subreq, struct tevent_req);
struct rpccli_netr_ServerPasswordSet2_state *state = tevent_req_data(
req, struct rpccli_netr_ServerPasswordSet2_state);
NTSTATUS status;
TALLOC_CTX *mem_ctx;
if (state->out_mem_ctx) {
mem_ctx = state->out_mem_ctx;
} else {
mem_ctx = state;
}
status = state->dispatch_recv(subreq, mem_ctx);
TALLOC_FREE(subreq);
if (!NT_STATUS_IS_OK(status)) {
tevent_req_nterror(req, status);
return;
}
/* Copy out parameters */
*state->orig.out.return_authenticator = *state->tmp.out.return_authenticator;
/* Copy result */
state->orig.out.result = state->tmp.out.result;
/* Reset temporary structure */
ZERO_STRUCT(state->tmp);
tevent_req_done(req);
}
NTSTATUS rpccli_netr_ServerPasswordSet2_recv(struct tevent_req *req,
TALLOC_CTX *mem_ctx,
NTSTATUS *result)
{
struct rpccli_netr_ServerPasswordSet2_state *state = tevent_req_data(
req, struct rpccli_netr_ServerPasswordSet2_state);
NTSTATUS status;
if (tevent_req_is_nterror(req, &status)) {
tevent_req_received(req);
return status;
}
/* Steal possbile out parameters to the callers context */
talloc_steal(mem_ctx, state->out_mem_ctx);
/* Return result */
*result = state->orig.out.result;
tevent_req_received(req);
return NT_STATUS_OK;
}
NTSTATUS rpccli_netr_ServerPasswordSet2(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
const char *server_name /* [in] [unique,charset(UTF16)] */,
const char *account_name /* [in] [ref,charset(UTF16)] */,
enum netr_SchannelType secure_channel_type /* [in] */,
const char *computer_name /* [in] [ref,charset(UTF16)] */,
struct netr_Authenticator *credential /* [in] [ref] */,
struct netr_Authenticator *return_authenticator /* [out] [ref] */,
struct netr_CryptPassword *new_password /* [in] [ref] */)
{
struct netr_ServerPasswordSet2 r;
NTSTATUS status;
/* In parameters */
r.in.server_name = server_name;
r.in.account_name = account_name;
r.in.secure_channel_type = secure_channel_type;
r.in.computer_name = computer_name;
r.in.credential = credential;
r.in.new_password = new_password;
status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_SERVERPASSWORDSET2,
&r);
if (!NT_STATUS_IS_OK(status)) {
return status;
}
if (NT_STATUS_IS_ERR(status)) {
return status;
}
/* Return variables */
*return_authenticator = *r.out.return_authenticator;
/* Return result */
return r.out.result;
}
struct rpccli_netr_ServerPasswordGet_state {
struct netr_ServerPasswordGet orig;
struct netr_ServerPasswordGet tmp;
TALLOC_CTX *out_mem_ctx;
NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
};
static void rpccli_netr_ServerPasswordGet_done(struct tevent_req *subreq);
struct tevent_req *rpccli_netr_ServerPasswordGet_send(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
struct rpc_pipe_client *cli,
const char *_server_name /* [in] [unique,charset(UTF16)] */,
const char *_account_name /* [in] [ref,charset(UTF16)] */,
enum netr_SchannelType _secure_channel_type /* [in] */,
const char *_computer_name /* [in] [ref,charset(UTF16)] */,
struct netr_Authenticator *_credential /* [in] [ref] */,
struct netr_Authenticator *_return_authenticator /* [out] [ref] */,
struct samr_Password *_password /* [out] [ref] */)
{
struct tevent_req *req;
struct rpccli_netr_ServerPasswordGet_state *state;
struct tevent_req *subreq;
req = tevent_req_create(mem_ctx, &state,
struct rpccli_netr_ServerPasswordGet_state);
if (req == NULL) {
return NULL;
}
state->out_mem_ctx = NULL;
state->dispatch_recv = cli->dispatch_recv;
/* In parameters */
state->orig.in.server_name = _server_name;
state->orig.in.account_name = _account_name;
state->orig.in.secure_channel_type = _secure_channel_type;
state->orig.in.computer_name = _computer_name;
state->orig.in.credential = _credential;
/* Out parameters */
state->orig.out.return_authenticator = _return_authenticator;
state->orig.out.password = _password;
/* Result */
ZERO_STRUCT(state->orig.out.result);
state->out_mem_ctx = talloc_named_const(state, 0,
"rpccli_netr_ServerPasswordGet_out_memory");
if (tevent_req_nomem(state->out_mem_ctx, req)) {
return tevent_req_post(req, ev);
}
/* make a temporary copy, that we pass to the dispatch function */
state->tmp = state->orig;
subreq = cli->dispatch_send(state, ev, cli,
&ndr_table_netlogon,
NDR_NETR_SERVERPASSWORDGET,
&state->tmp);
if (tevent_req_nomem(subreq, req)) {
return tevent_req_post(req, ev);
}
tevent_req_set_callback(subreq, rpccli_netr_ServerPasswordGet_done, req);
return req;
}
static void rpccli_netr_ServerPasswordGet_done(struct tevent_req *subreq)
{
struct tevent_req *req = tevent_req_callback_data(
subreq, struct tevent_req);
struct rpccli_netr_ServerPasswordGet_state *state = tevent_req_data(
req, struct rpccli_netr_ServerPasswordGet_state);
NTSTATUS status;
TALLOC_CTX *mem_ctx;
if (state->out_mem_ctx) {
mem_ctx = state->out_mem_ctx;
} else {
mem_ctx = state;
}
status = state->dispatch_recv(subreq, mem_ctx);
TALLOC_FREE(subreq);
if (!NT_STATUS_IS_OK(status)) {
tevent_req_nterror(req, status);
return;
}
/* Copy out parameters */
*state->orig.out.return_authenticator = *state->tmp.out.return_authenticator;
*state->orig.out.password = *state->tmp.out.password;
/* Copy result */
state->orig.out.result = state->tmp.out.result;
/* Reset temporary structure */
ZERO_STRUCT(state->tmp);
tevent_req_done(req);
}
NTSTATUS rpccli_netr_ServerPasswordGet_recv(struct tevent_req *req,
TALLOC_CTX *mem_ctx,
WERROR *result)
{
struct rpccli_netr_ServerPasswordGet_state *state = tevent_req_data(
req, struct rpccli_netr_ServerPasswordGet_state);
NTSTATUS status;
if (tevent_req_is_nterror(req, &status)) {
tevent_req_received(req);
return status;
}
/* Steal possbile out parameters to the callers context */
talloc_steal(mem_ctx, state->out_mem_ctx);
/* Return result */
*result = state->orig.out.result;
tevent_req_received(req);
return NT_STATUS_OK;
}
NTSTATUS rpccli_netr_ServerPasswordGet(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
const char *server_name /* [in] [unique,charset(UTF16)] */,
const char *account_name /* [in] [ref,charset(UTF16)] */,
enum netr_SchannelType secure_channel_type /* [in] */,
const char *computer_name /* [in] [ref,charset(UTF16)] */,
struct netr_Authenticator *credential /* [in] [ref] */,
struct netr_Authenticator *return_authenticator /* [out] [ref] */,
struct samr_Password *password /* [out] [ref] */,
WERROR *werror)
{
struct netr_ServerPasswordGet r;
NTSTATUS status;
/* In parameters */
r.in.server_name = server_name;
r.in.account_name = account_name;
r.in.secure_channel_type = secure_channel_type;
r.in.computer_name = computer_name;
r.in.credential = credential;
status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_SERVERPASSWORDGET,
&r);
if (!NT_STATUS_IS_OK(status)) {
return status;
}
if (NT_STATUS_IS_ERR(status)) {
return status;
}
/* Return variables */
*return_authenticator = *r.out.return_authenticator;
*password = *r.out.password;
/* Return result */
if (werror) {
*werror = r.out.result;
}
return werror_to_ntstatus(r.out.result);
}
struct rpccli_netr_NETRLOGONSENDTOSAM_state {
struct netr_NETRLOGONSENDTOSAM orig;
struct netr_NETRLOGONSENDTOSAM tmp;
TALLOC_CTX *out_mem_ctx;
NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
};
static void rpccli_netr_NETRLOGONSENDTOSAM_done(struct tevent_req *subreq);
struct tevent_req *rpccli_netr_NETRLOGONSENDTOSAM_send(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
struct rpc_pipe_client *cli)
{
struct tevent_req *req;
struct rpccli_netr_NETRLOGONSENDTOSAM_state *state;
struct tevent_req *subreq;
req = tevent_req_create(mem_ctx, &state,
struct rpccli_netr_NETRLOGONSENDTOSAM_state);
if (req == NULL) {
return NULL;
}
state->out_mem_ctx = NULL;
state->dispatch_recv = cli->dispatch_recv;
/* In parameters */
/* Out parameters */
/* Result */
ZERO_STRUCT(state->orig.out.result);
/* make a temporary copy, that we pass to the dispatch function */
state->tmp = state->orig;
subreq = cli->dispatch_send(state, ev, cli,
&ndr_table_netlogon,
NDR_NETR_NETRLOGONSENDTOSAM,
&state->tmp);
if (tevent_req_nomem(subreq, req)) {
return tevent_req_post(req, ev);
}
tevent_req_set_callback(subreq, rpccli_netr_NETRLOGONSENDTOSAM_done, req);
return req;
}
static void rpccli_netr_NETRLOGONSENDTOSAM_done(struct tevent_req *subreq)
{
struct tevent_req *req = tevent_req_callback_data(
subreq, struct tevent_req);
struct rpccli_netr_NETRLOGONSENDTOSAM_state *state = tevent_req_data(
req, struct rpccli_netr_NETRLOGONSENDTOSAM_state);
NTSTATUS status;
TALLOC_CTX *mem_ctx;
if (state->out_mem_ctx) {
mem_ctx = state->out_mem_ctx;
} else {
mem_ctx = state;
}
status = state->dispatch_recv(subreq, mem_ctx);
TALLOC_FREE(subreq);
if (!NT_STATUS_IS_OK(status)) {
tevent_req_nterror(req, status);
return;
}
/* Copy out parameters */
/* Copy result */
state->orig.out.result = state->tmp.out.result;
/* Reset temporary structure */
ZERO_STRUCT(state->tmp);
tevent_req_done(req);
}
NTSTATUS rpccli_netr_NETRLOGONSENDTOSAM_recv(struct tevent_req *req,
TALLOC_CTX *mem_ctx,
WERROR *result)
{
struct rpccli_netr_NETRLOGONSENDTOSAM_state *state = tevent_req_data(
req, struct rpccli_netr_NETRLOGONSENDTOSAM_state);
NTSTATUS status;
if (tevent_req_is_nterror(req, &status)) {
tevent_req_received(req);
return status;
}
/* Steal possbile out parameters to the callers context */
talloc_steal(mem_ctx, state->out_mem_ctx);
/* Return result */
*result = state->orig.out.result;
tevent_req_received(req);
return NT_STATUS_OK;
}
NTSTATUS rpccli_netr_NETRLOGONSENDTOSAM(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
WERROR *werror)
{
struct netr_NETRLOGONSENDTOSAM r;
NTSTATUS status;
/* In parameters */
status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_NETRLOGONSENDTOSAM,
&r);
if (!NT_STATUS_IS_OK(status)) {
return status;
}
if (NT_STATUS_IS_ERR(status)) {
return status;
}
/* Return variables */
/* Return result */
if (werror) {
*werror = r.out.result;
}
return werror_to_ntstatus(r.out.result);
}
struct rpccli_netr_DsRAddressToSitenamesW_state {
struct netr_DsRAddressToSitenamesW orig;
struct netr_DsRAddressToSitenamesW tmp;
TALLOC_CTX *out_mem_ctx;
NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
};
static void rpccli_netr_DsRAddressToSitenamesW_done(struct tevent_req *subreq);
struct tevent_req *rpccli_netr_DsRAddressToSitenamesW_send(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
struct rpc_pipe_client *cli,
const char *_server_name /* [in] [unique,charset(UTF16)] */,
uint32_t _count /* [in] [range(0,32000)] */,
struct netr_DsRAddress *_addresses /* [in] [ref,size_is(count)] */,
struct netr_DsRAddressToSitenamesWCtr **_ctr /* [out] [ref] */)
{
struct tevent_req *req;
struct rpccli_netr_DsRAddressToSitenamesW_state *state;
struct tevent_req *subreq;
req = tevent_req_create(mem_ctx, &state,
struct rpccli_netr_DsRAddressToSitenamesW_state);
if (req == NULL) {
return NULL;
}
state->out_mem_ctx = NULL;
state->dispatch_recv = cli->dispatch_recv;
/* In parameters */
state->orig.in.server_name = _server_name;
state->orig.in.count = _count;
state->orig.in.addresses = _addresses;
/* Out parameters */
state->orig.out.ctr = _ctr;
/* Result */
ZERO_STRUCT(state->orig.out.result);
state->out_mem_ctx = talloc_named_const(state, 0,
"rpccli_netr_DsRAddressToSitenamesW_out_memory");
if (tevent_req_nomem(state->out_mem_ctx, req)) {
return tevent_req_post(req, ev);
}
/* make a temporary copy, that we pass to the dispatch function */
state->tmp = state->orig;
subreq = cli->dispatch_send(state, ev, cli,
&ndr_table_netlogon,
NDR_NETR_DSRADDRESSTOSITENAMESW,
&state->tmp);
if (tevent_req_nomem(subreq, req)) {
return tevent_req_post(req, ev);
}
tevent_req_set_callback(subreq, rpccli_netr_DsRAddressToSitenamesW_done, req);
return req;
}
static void rpccli_netr_DsRAddressToSitenamesW_done(struct tevent_req *subreq)
{
struct tevent_req *req = tevent_req_callback_data(
subreq, struct tevent_req);
struct rpccli_netr_DsRAddressToSitenamesW_state *state = tevent_req_data(
req, struct rpccli_netr_DsRAddressToSitenamesW_state);
NTSTATUS status;
TALLOC_CTX *mem_ctx;
if (state->out_mem_ctx) {
mem_ctx = state->out_mem_ctx;
} else {
mem_ctx = state;
}
status = state->dispatch_recv(subreq, mem_ctx);
TALLOC_FREE(subreq);
if (!NT_STATUS_IS_OK(status)) {
tevent_req_nterror(req, status);
return;
}
/* Copy out parameters */
*state->orig.out.ctr = *state->tmp.out.ctr;
/* Copy result */
state->orig.out.result = state->tmp.out.result;
/* Reset temporary structure */
ZERO_STRUCT(state->tmp);
tevent_req_done(req);
}
NTSTATUS rpccli_netr_DsRAddressToSitenamesW_recv(struct tevent_req *req,
TALLOC_CTX *mem_ctx,
WERROR *result)
{
struct rpccli_netr_DsRAddressToSitenamesW_state *state = tevent_req_data(
req, struct rpccli_netr_DsRAddressToSitenamesW_state);
NTSTATUS status;
if (tevent_req_is_nterror(req, &status)) {
tevent_req_received(req);
return status;
}
/* Steal possbile out parameters to the callers context */
talloc_steal(mem_ctx, state->out_mem_ctx);
/* Return result */
*result = state->orig.out.result;
tevent_req_received(req);
return NT_STATUS_OK;
}
NTSTATUS rpccli_netr_DsRAddressToSitenamesW(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
const char *server_name /* [in] [unique,charset(UTF16)] */,
uint32_t count /* [in] [range(0,32000)] */,
struct netr_DsRAddress *addresses /* [in] [ref,size_is(count)] */,
struct netr_DsRAddressToSitenamesWCtr **ctr /* [out] [ref] */,
WERROR *werror)
{
struct netr_DsRAddressToSitenamesW r;
NTSTATUS status;
/* In parameters */
r.in.server_name = server_name;
r.in.count = count;
r.in.addresses = addresses;
status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_DSRADDRESSTOSITENAMESW,
&r);
if (!NT_STATUS_IS_OK(status)) {
return status;
}
if (NT_STATUS_IS_ERR(status)) {
return status;
}
/* Return variables */
*ctr = *r.out.ctr;
/* Return result */
if (werror) {
*werror = r.out.result;
}
return werror_to_ntstatus(r.out.result);
}
struct rpccli_netr_DsRGetDCNameEx2_state {
struct netr_DsRGetDCNameEx2 orig;
struct netr_DsRGetDCNameEx2 tmp;
TALLOC_CTX *out_mem_ctx;
NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
};
static void rpccli_netr_DsRGetDCNameEx2_done(struct tevent_req *subreq);
struct tevent_req *rpccli_netr_DsRGetDCNameEx2_send(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
struct rpc_pipe_client *cli,
const char *_server_unc /* [in] [unique,charset(UTF16)] */,
const char *_client_account /* [in] [unique,charset(UTF16)] */,
uint32_t _mask /* [in] */,
const char *_domain_name /* [in] [unique,charset(UTF16)] */,
struct GUID *_domain_guid /* [in] [unique] */,
const char *_site_name /* [in] [unique,charset(UTF16)] */,
uint32_t _flags /* [in] */,
struct netr_DsRGetDCNameInfo **_info /* [out] [ref] */)
{
struct tevent_req *req;
struct rpccli_netr_DsRGetDCNameEx2_state *state;
struct tevent_req *subreq;
req = tevent_req_create(mem_ctx, &state,
struct rpccli_netr_DsRGetDCNameEx2_state);
if (req == NULL) {
return NULL;
}
state->out_mem_ctx = NULL;
state->dispatch_recv = cli->dispatch_recv;
/* In parameters */
state->orig.in.server_unc = _server_unc;
state->orig.in.client_account = _client_account;
state->orig.in.mask = _mask;
state->orig.in.domain_name = _domain_name;
state->orig.in.domain_guid = _domain_guid;
state->orig.in.site_name = _site_name;
state->orig.in.flags = _flags;
/* Out parameters */
state->orig.out.info = _info;
/* Result */
ZERO_STRUCT(state->orig.out.result);
state->out_mem_ctx = talloc_named_const(state, 0,
"rpccli_netr_DsRGetDCNameEx2_out_memory");
if (tevent_req_nomem(state->out_mem_ctx, req)) {
return tevent_req_post(req, ev);
}
/* make a temporary copy, that we pass to the dispatch function */
state->tmp = state->orig;
subreq = cli->dispatch_send(state, ev, cli,
&ndr_table_netlogon,
NDR_NETR_DSRGETDCNAMEEX2,
&state->tmp);
if (tevent_req_nomem(subreq, req)) {
return tevent_req_post(req, ev);
}
tevent_req_set_callback(subreq, rpccli_netr_DsRGetDCNameEx2_done, req);
return req;
}
static void rpccli_netr_DsRGetDCNameEx2_done(struct tevent_req *subreq)
{
struct tevent_req *req = tevent_req_callback_data(
subreq, struct tevent_req);
struct rpccli_netr_DsRGetDCNameEx2_state *state = tevent_req_data(
req, struct rpccli_netr_DsRGetDCNameEx2_state);
NTSTATUS status;
TALLOC_CTX *mem_ctx;
if (state->out_mem_ctx) {
mem_ctx = state->out_mem_ctx;
} else {
mem_ctx = state;
}
status = state->dispatch_recv(subreq, mem_ctx);
TALLOC_FREE(subreq);
if (!NT_STATUS_IS_OK(status)) {
tevent_req_nterror(req, status);
return;
}
/* Copy out parameters */
*state->orig.out.info = *state->tmp.out.info;
/* Copy result */
state->orig.out.result = state->tmp.out.result;
/* Reset temporary structure */
ZERO_STRUCT(state->tmp);
tevent_req_done(req);
}
NTSTATUS rpccli_netr_DsRGetDCNameEx2_recv(struct tevent_req *req,
TALLOC_CTX *mem_ctx,
WERROR *result)
{
struct rpccli_netr_DsRGetDCNameEx2_state *state = tevent_req_data(
req, struct rpccli_netr_DsRGetDCNameEx2_state);
NTSTATUS status;
if (tevent_req_is_nterror(req, &status)) {
tevent_req_received(req);
return status;
}
/* Steal possbile out parameters to the callers context */
talloc_steal(mem_ctx, state->out_mem_ctx);
/* Return result */
*result = state->orig.out.result;
tevent_req_received(req);
return NT_STATUS_OK;
}
NTSTATUS rpccli_netr_DsRGetDCNameEx2(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
const char *server_unc /* [in] [unique,charset(UTF16)] */,
const char *client_account /* [in] [unique,charset(UTF16)] */,
uint32_t mask /* [in] */,
const char *domain_name /* [in] [unique,charset(UTF16)] */,
struct GUID *domain_guid /* [in] [unique] */,
const char *site_name /* [in] [unique,charset(UTF16)] */,
uint32_t flags /* [in] */,
struct netr_DsRGetDCNameInfo **info /* [out] [ref] */,
WERROR *werror)
{
struct netr_DsRGetDCNameEx2 r;
NTSTATUS status;
/* In parameters */
r.in.server_unc = server_unc;
r.in.client_account = client_account;
r.in.mask = mask;
r.in.domain_name = domain_name;
r.in.domain_guid = domain_guid;
r.in.site_name = site_name;
r.in.flags = flags;
status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_DSRGETDCNAMEEX2,
&r);
if (!NT_STATUS_IS_OK(status)) {
return status;
}
if (NT_STATUS_IS_ERR(status)) {
return status;
}
/* Return variables */
*info = *r.out.info;
/* Return result */
if (werror) {
*werror = r.out.result;
}
return werror_to_ntstatus(r.out.result);
}
struct rpccli_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN_state {
struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN orig;
struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN tmp;
TALLOC_CTX *out_mem_ctx;
NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
};
static void rpccli_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN_done(struct tevent_req *subreq);
struct tevent_req *rpccli_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN_send(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
struct rpc_pipe_client *cli)
{
struct tevent_req *req;
struct rpccli_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN_state *state;
struct tevent_req *subreq;
req = tevent_req_create(mem_ctx, &state,
struct rpccli_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN_state);
if (req == NULL) {
return NULL;
}
state->out_mem_ctx = NULL;
state->dispatch_recv = cli->dispatch_recv;
/* In parameters */
/* Out parameters */
/* Result */
ZERO_STRUCT(state->orig.out.result);
/* make a temporary copy, that we pass to the dispatch function */
state->tmp = state->orig;
subreq = cli->dispatch_send(state, ev, cli,
&ndr_table_netlogon,
NDR_NETR_NETRLOGONGETTIMESERVICEPARENTDOMAIN,
&state->tmp);
if (tevent_req_nomem(subreq, req)) {
return tevent_req_post(req, ev);
}
tevent_req_set_callback(subreq, rpccli_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN_done, req);
return req;
}
static void rpccli_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN_done(struct tevent_req *subreq)
{
struct tevent_req *req = tevent_req_callback_data(
subreq, struct tevent_req);
struct rpccli_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN_state *state = tevent_req_data(
req, struct rpccli_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN_state);
NTSTATUS status;
TALLOC_CTX *mem_ctx;
if (state->out_mem_ctx) {
mem_ctx = state->out_mem_ctx;
} else {
mem_ctx = state;
}
status = state->dispatch_recv(subreq, mem_ctx);
TALLOC_FREE(subreq);
if (!NT_STATUS_IS_OK(status)) {
tevent_req_nterror(req, status);
return;
}
/* Copy out parameters */
/* Copy result */
state->orig.out.result = state->tmp.out.result;
/* Reset temporary structure */
ZERO_STRUCT(state->tmp);
tevent_req_done(req);
}
NTSTATUS rpccli_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN_recv(struct tevent_req *req,
TALLOC_CTX *mem_ctx,
WERROR *result)
{
struct rpccli_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN_state *state = tevent_req_data(
req, struct rpccli_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN_state);
NTSTATUS status;
if (tevent_req_is_nterror(req, &status)) {
tevent_req_received(req);
return status;
}
/* Steal possbile out parameters to the callers context */
talloc_steal(mem_ctx, state->out_mem_ctx);
/* Return result */
*result = state->orig.out.result;
tevent_req_received(req);
return NT_STATUS_OK;
}
NTSTATUS rpccli_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
WERROR *werror)
{
struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN r;
NTSTATUS status;
/* In parameters */
status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_NETRLOGONGETTIMESERVICEPARENTDOMAIN,
&r);
if (!NT_STATUS_IS_OK(status)) {
return status;
}
if (NT_STATUS_IS_ERR(status)) {
return status;
}
/* Return variables */
/* Return result */
if (werror) {
*werror = r.out.result;
}
return werror_to_ntstatus(r.out.result);
}
struct rpccli_netr_NetrEnumerateTrustedDomainsEx_state {
struct netr_NetrEnumerateTrustedDomainsEx orig;
struct netr_NetrEnumerateTrustedDomainsEx tmp;
TALLOC_CTX *out_mem_ctx;
NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
};
static void rpccli_netr_NetrEnumerateTrustedDomainsEx_done(struct tevent_req *subreq);
struct tevent_req *rpccli_netr_NetrEnumerateTrustedDomainsEx_send(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
struct rpc_pipe_client *cli,
const char *_server_name /* [in] [unique,charset(UTF16)] */,
struct netr_DomainTrustList *_dom_trust_list /* [out] [ref] */)
{
struct tevent_req *req;
struct rpccli_netr_NetrEnumerateTrustedDomainsEx_state *state;
struct tevent_req *subreq;
req = tevent_req_create(mem_ctx, &state,
struct rpccli_netr_NetrEnumerateTrustedDomainsEx_state);
if (req == NULL) {
return NULL;
}
state->out_mem_ctx = NULL;
state->dispatch_recv = cli->dispatch_recv;
/* In parameters */
state->orig.in.server_name = _server_name;
/* Out parameters */
state->orig.out.dom_trust_list = _dom_trust_list;
/* Result */
ZERO_STRUCT(state->orig.out.result);
state->out_mem_ctx = talloc_named_const(state, 0,
"rpccli_netr_NetrEnumerateTrustedDomainsEx_out_memory");
if (tevent_req_nomem(state->out_mem_ctx, req)) {
return tevent_req_post(req, ev);
}
/* make a temporary copy, that we pass to the dispatch function */
state->tmp = state->orig;
subreq = cli->dispatch_send(state, ev, cli,
&ndr_table_netlogon,
NDR_NETR_NETRENUMERATETRUSTEDDOMAINSEX,
&state->tmp);
if (tevent_req_nomem(subreq, req)) {
return tevent_req_post(req, ev);
}
tevent_req_set_callback(subreq, rpccli_netr_NetrEnumerateTrustedDomainsEx_done, req);
return req;
}
static void rpccli_netr_NetrEnumerateTrustedDomainsEx_done(struct tevent_req *subreq)
{
struct tevent_req *req = tevent_req_callback_data(
subreq, struct tevent_req);
struct rpccli_netr_NetrEnumerateTrustedDomainsEx_state *state = tevent_req_data(
req, struct rpccli_netr_NetrEnumerateTrustedDomainsEx_state);
NTSTATUS status;
TALLOC_CTX *mem_ctx;
if (state->out_mem_ctx) {
mem_ctx = state->out_mem_ctx;
} else {
mem_ctx = state;
}
status = state->dispatch_recv(subreq, mem_ctx);
TALLOC_FREE(subreq);
if (!NT_STATUS_IS_OK(status)) {
tevent_req_nterror(req, status);
return;
}
/* Copy out parameters */
*state->orig.out.dom_trust_list = *state->tmp.out.dom_trust_list;
/* Copy result */
state->orig.out.result = state->tmp.out.result;
/* Reset temporary structure */
ZERO_STRUCT(state->tmp);
tevent_req_done(req);
}
NTSTATUS rpccli_netr_NetrEnumerateTrustedDomainsEx_recv(struct tevent_req *req,
TALLOC_CTX *mem_ctx,
WERROR *result)
{
struct rpccli_netr_NetrEnumerateTrustedDomainsEx_state *state = tevent_req_data(
req, struct rpccli_netr_NetrEnumerateTrustedDomainsEx_state);
NTSTATUS status;
if (tevent_req_is_nterror(req, &status)) {
tevent_req_received(req);
return status;
}
/* Steal possbile out parameters to the callers context */
talloc_steal(mem_ctx, state->out_mem_ctx);
/* Return result */
*result = state->orig.out.result;
tevent_req_received(req);
return NT_STATUS_OK;
}
NTSTATUS rpccli_netr_NetrEnumerateTrustedDomainsEx(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
const char *server_name /* [in] [unique,charset(UTF16)] */,
struct netr_DomainTrustList *dom_trust_list /* [out] [ref] */,
WERROR *werror)
{
struct netr_NetrEnumerateTrustedDomainsEx r;
NTSTATUS status;
/* In parameters */
r.in.server_name = server_name;
status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_NETRENUMERATETRUSTEDDOMAINSEX,
&r);
if (!NT_STATUS_IS_OK(status)) {
return status;
}
if (NT_STATUS_IS_ERR(status)) {
return status;
}
/* Return variables */
*dom_trust_list = *r.out.dom_trust_list;
/* Return result */
if (werror) {
*werror = r.out.result;
}
return werror_to_ntstatus(r.out.result);
}
struct rpccli_netr_DsRAddressToSitenamesExW_state {
struct netr_DsRAddressToSitenamesExW orig;
struct netr_DsRAddressToSitenamesExW tmp;
TALLOC_CTX *out_mem_ctx;
NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
};
static void rpccli_netr_DsRAddressToSitenamesExW_done(struct tevent_req *subreq);
struct tevent_req *rpccli_netr_DsRAddressToSitenamesExW_send(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
struct rpc_pipe_client *cli,
const char *_server_name /* [in] [unique,charset(UTF16)] */,
uint32_t _count /* [in] [range(0,32000)] */,
struct netr_DsRAddress *_addresses /* [in] [ref,size_is(count)] */,
struct netr_DsRAddressToSitenamesExWCtr **_ctr /* [out] [ref] */)
{
struct tevent_req *req;
struct rpccli_netr_DsRAddressToSitenamesExW_state *state;
struct tevent_req *subreq;
req = tevent_req_create(mem_ctx, &state,
struct rpccli_netr_DsRAddressToSitenamesExW_state);
if (req == NULL) {
return NULL;
}
state->out_mem_ctx = NULL;
state->dispatch_recv = cli->dispatch_recv;
/* In parameters */
state->orig.in.server_name = _server_name;
state->orig.in.count = _count;
state->orig.in.addresses = _addresses;
/* Out parameters */
state->orig.out.ctr = _ctr;
/* Result */
ZERO_STRUCT(state->orig.out.result);
state->out_mem_ctx = talloc_named_const(state, 0,
"rpccli_netr_DsRAddressToSitenamesExW_out_memory");
if (tevent_req_nomem(state->out_mem_ctx, req)) {
return tevent_req_post(req, ev);
}
/* make a temporary copy, that we pass to the dispatch function */
state->tmp = state->orig;
subreq = cli->dispatch_send(state, ev, cli,
&ndr_table_netlogon,
NDR_NETR_DSRADDRESSTOSITENAMESEXW,
&state->tmp);
if (tevent_req_nomem(subreq, req)) {
return tevent_req_post(req, ev);
}
tevent_req_set_callback(subreq, rpccli_netr_DsRAddressToSitenamesExW_done, req);
return req;
}
static void rpccli_netr_DsRAddressToSitenamesExW_done(struct tevent_req *subreq)
{
struct tevent_req *req = tevent_req_callback_data(
subreq, struct tevent_req);
struct rpccli_netr_DsRAddressToSitenamesExW_state *state = tevent_req_data(
req, struct rpccli_netr_DsRAddressToSitenamesExW_state);
NTSTATUS status;
TALLOC_CTX *mem_ctx;
if (state->out_mem_ctx) {
mem_ctx = state->out_mem_ctx;
} else {
mem_ctx = state;
}
status = state->dispatch_recv(subreq, mem_ctx);
TALLOC_FREE(subreq);
if (!NT_STATUS_IS_OK(status)) {
tevent_req_nterror(req, status);
return;
}
/* Copy out parameters */
*state->orig.out.ctr = *state->tmp.out.ctr;
/* Copy result */
state->orig.out.result = state->tmp.out.result;
/* Reset temporary structure */
ZERO_STRUCT(state->tmp);
tevent_req_done(req);
}
NTSTATUS rpccli_netr_DsRAddressToSitenamesExW_recv(struct tevent_req *req,
TALLOC_CTX *mem_ctx,
WERROR *result)
{
struct rpccli_netr_DsRAddressToSitenamesExW_state *state = tevent_req_data(
req, struct rpccli_netr_DsRAddressToSitenamesExW_state);
NTSTATUS status;
if (tevent_req_is_nterror(req, &status)) {
tevent_req_received(req);
return status;
}
/* Steal possbile out parameters to the callers context */
talloc_steal(mem_ctx, state->out_mem_ctx);
/* Return result */
*result = state->orig.out.result;
tevent_req_received(req);
return NT_STATUS_OK;
}
NTSTATUS rpccli_netr_DsRAddressToSitenamesExW(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
const char *server_name /* [in] [unique,charset(UTF16)] */,
uint32_t count /* [in] [range(0,32000)] */,
struct netr_DsRAddress *addresses /* [in] [ref,size_is(count)] */,
struct netr_DsRAddressToSitenamesExWCtr **ctr /* [out] [ref] */,
WERROR *werror)
{
struct netr_DsRAddressToSitenamesExW r;
NTSTATUS status;
/* In parameters */
r.in.server_name = server_name;
r.in.count = count;
r.in.addresses = addresses;
status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_DSRADDRESSTOSITENAMESEXW,
&r);
if (!NT_STATUS_IS_OK(status)) {
return status;
}
if (NT_STATUS_IS_ERR(status)) {
return status;
}
/* Return variables */
*ctr = *r.out.ctr;
/* Return result */
if (werror) {
*werror = r.out.result;
}
return werror_to_ntstatus(r.out.result);
}
struct rpccli_netr_DsrGetDcSiteCoverageW_state {
struct netr_DsrGetDcSiteCoverageW orig;
struct netr_DsrGetDcSiteCoverageW tmp;
TALLOC_CTX *out_mem_ctx;
NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
};
static void rpccli_netr_DsrGetDcSiteCoverageW_done(struct tevent_req *subreq);
struct tevent_req *rpccli_netr_DsrGetDcSiteCoverageW_send(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
struct rpc_pipe_client *cli,
const char *_server_name /* [in] [unique,charset(UTF16)] */,
struct DcSitesCtr **_ctr /* [out] [ref] */)
{
struct tevent_req *req;
struct rpccli_netr_DsrGetDcSiteCoverageW_state *state;
struct tevent_req *subreq;
req = tevent_req_create(mem_ctx, &state,
struct rpccli_netr_DsrGetDcSiteCoverageW_state);
if (req == NULL) {
return NULL;
}
state->out_mem_ctx = NULL;
state->dispatch_recv = cli->dispatch_recv;
/* In parameters */
state->orig.in.server_name = _server_name;
/* Out parameters */
state->orig.out.ctr = _ctr;
/* Result */
ZERO_STRUCT(state->orig.out.result);
state->out_mem_ctx = talloc_named_const(state, 0,
"rpccli_netr_DsrGetDcSiteCoverageW_out_memory");
if (tevent_req_nomem(state->out_mem_ctx, req)) {
return tevent_req_post(req, ev);
}
/* make a temporary copy, that we pass to the dispatch function */
state->tmp = state->orig;
subreq = cli->dispatch_send(state, ev, cli,
&ndr_table_netlogon,
NDR_NETR_DSRGETDCSITECOVERAGEW,
&state->tmp);
if (tevent_req_nomem(subreq, req)) {
return tevent_req_post(req, ev);
}
tevent_req_set_callback(subreq, rpccli_netr_DsrGetDcSiteCoverageW_done, req);
return req;
}
static void rpccli_netr_DsrGetDcSiteCoverageW_done(struct tevent_req *subreq)
{
struct tevent_req *req = tevent_req_callback_data(
subreq, struct tevent_req);
struct rpccli_netr_DsrGetDcSiteCoverageW_state *state = tevent_req_data(
req, struct rpccli_netr_DsrGetDcSiteCoverageW_state);
NTSTATUS status;
TALLOC_CTX *mem_ctx;
if (state->out_mem_ctx) {
mem_ctx = state->out_mem_ctx;
} else {
mem_ctx = state;
}
status = state->dispatch_recv(subreq, mem_ctx);
TALLOC_FREE(subreq);
if (!NT_STATUS_IS_OK(status)) {
tevent_req_nterror(req, status);
return;
}
/* Copy out parameters */
*state->orig.out.ctr = *state->tmp.out.ctr;
/* Copy result */
state->orig.out.result = state->tmp.out.result;
/* Reset temporary structure */
ZERO_STRUCT(state->tmp);
tevent_req_done(req);
}
NTSTATUS rpccli_netr_DsrGetDcSiteCoverageW_recv(struct tevent_req *req,
TALLOC_CTX *mem_ctx,
WERROR *result)
{
struct rpccli_netr_DsrGetDcSiteCoverageW_state *state = tevent_req_data(
req, struct rpccli_netr_DsrGetDcSiteCoverageW_state);
NTSTATUS status;
if (tevent_req_is_nterror(req, &status)) {
tevent_req_received(req);
return status;
}
/* Steal possbile out parameters to the callers context */
talloc_steal(mem_ctx, state->out_mem_ctx);
/* Return result */
*result = state->orig.out.result;
tevent_req_received(req);
return NT_STATUS_OK;
}
NTSTATUS rpccli_netr_DsrGetDcSiteCoverageW(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
const char *server_name /* [in] [unique,charset(UTF16)] */,
struct DcSitesCtr **ctr /* [out] [ref] */,
WERROR *werror)
{
struct netr_DsrGetDcSiteCoverageW r;
NTSTATUS status;
/* In parameters */
r.in.server_name = server_name;
status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_DSRGETDCSITECOVERAGEW,
&r);
if (!NT_STATUS_IS_OK(status)) {
return status;
}
if (NT_STATUS_IS_ERR(status)) {
return status;
}
/* Return variables */
*ctr = *r.out.ctr;
/* Return result */
if (werror) {
*werror = r.out.result;
}
return werror_to_ntstatus(r.out.result);
}
struct rpccli_netr_LogonSamLogonEx_state {
struct netr_LogonSamLogonEx orig;
struct netr_LogonSamLogonEx tmp;
TALLOC_CTX *out_mem_ctx;
NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
};
static void rpccli_netr_LogonSamLogonEx_done(struct tevent_req *subreq);
struct tevent_req *rpccli_netr_LogonSamLogonEx_send(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
struct rpc_pipe_client *cli,
const char *_server_name /* [in] [unique,charset(UTF16)] */,
const char *_computer_name /* [in] [unique,charset(UTF16)] */,
enum netr_LogonInfoClass _logon_level /* [in] */,
union netr_LogonLevel *_logon /* [in] [ref,switch_is(logon_level)] */,
uint16_t _validation_level /* [in] */,
union netr_Validation *_validation /* [out] [ref,switch_is(validation_level)] */,
uint8_t *_authoritative /* [out] [ref] */,
uint32_t *_flags /* [in,out] [ref] */)
{
struct tevent_req *req;
struct rpccli_netr_LogonSamLogonEx_state *state;
struct tevent_req *subreq;
req = tevent_req_create(mem_ctx, &state,
struct rpccli_netr_LogonSamLogonEx_state);
if (req == NULL) {
return NULL;
}
state->out_mem_ctx = NULL;
state->dispatch_recv = cli->dispatch_recv;
/* In parameters */
state->orig.in.server_name = _server_name;
state->orig.in.computer_name = _computer_name;
state->orig.in.logon_level = _logon_level;
state->orig.in.logon = _logon;
state->orig.in.validation_level = _validation_level;
state->orig.in.flags = _flags;
/* Out parameters */
state->orig.out.validation = _validation;
state->orig.out.authoritative = _authoritative;
state->orig.out.flags = _flags;
/* Result */
ZERO_STRUCT(state->orig.out.result);
state->out_mem_ctx = talloc_named_const(state, 0,
"rpccli_netr_LogonSamLogonEx_out_memory");
if (tevent_req_nomem(state->out_mem_ctx, req)) {
return tevent_req_post(req, ev);
}
/* make a temporary copy, that we pass to the dispatch function */
state->tmp = state->orig;
subreq = cli->dispatch_send(state, ev, cli,
&ndr_table_netlogon,
NDR_NETR_LOGONSAMLOGONEX,
&state->tmp);
if (tevent_req_nomem(subreq, req)) {
return tevent_req_post(req, ev);
}
tevent_req_set_callback(subreq, rpccli_netr_LogonSamLogonEx_done, req);
return req;
}
static void rpccli_netr_LogonSamLogonEx_done(struct tevent_req *subreq)
{
struct tevent_req *req = tevent_req_callback_data(
subreq, struct tevent_req);
struct rpccli_netr_LogonSamLogonEx_state *state = tevent_req_data(
req, struct rpccli_netr_LogonSamLogonEx_state);
NTSTATUS status;
TALLOC_CTX *mem_ctx;
if (state->out_mem_ctx) {
mem_ctx = state->out_mem_ctx;
} else {
mem_ctx = state;
}
status = state->dispatch_recv(subreq, mem_ctx);
TALLOC_FREE(subreq);
if (!NT_STATUS_IS_OK(status)) {
tevent_req_nterror(req, status);
return;
}
/* Copy out parameters */
*state->orig.out.validation = *state->tmp.out.validation;
*state->orig.out.authoritative = *state->tmp.out.authoritative;
*state->orig.out.flags = *state->tmp.out.flags;
/* Copy result */
state->orig.out.result = state->tmp.out.result;
/* Reset temporary structure */
ZERO_STRUCT(state->tmp);
tevent_req_done(req);
}
NTSTATUS rpccli_netr_LogonSamLogonEx_recv(struct tevent_req *req,
TALLOC_CTX *mem_ctx,
NTSTATUS *result)
{
struct rpccli_netr_LogonSamLogonEx_state *state = tevent_req_data(
req, struct rpccli_netr_LogonSamLogonEx_state);
NTSTATUS status;
if (tevent_req_is_nterror(req, &status)) {
tevent_req_received(req);
return status;
}
/* Steal possbile out parameters to the callers context */
talloc_steal(mem_ctx, state->out_mem_ctx);
/* Return result */
*result = state->orig.out.result;
tevent_req_received(req);
return NT_STATUS_OK;
}
NTSTATUS rpccli_netr_LogonSamLogonEx(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
const char *server_name /* [in] [unique,charset(UTF16)] */,
const char *computer_name /* [in] [unique,charset(UTF16)] */,
enum netr_LogonInfoClass logon_level /* [in] */,
union netr_LogonLevel *logon /* [in] [ref,switch_is(logon_level)] */,
uint16_t validation_level /* [in] */,
union netr_Validation *validation /* [out] [ref,switch_is(validation_level)] */,
uint8_t *authoritative /* [out] [ref] */,
uint32_t *flags /* [in,out] [ref] */)
{
struct netr_LogonSamLogonEx r;
NTSTATUS status;
/* In parameters */
r.in.server_name = server_name;
r.in.computer_name = computer_name;
r.in.logon_level = logon_level;
r.in.logon = logon;
r.in.validation_level = validation_level;
r.in.flags = flags;
status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_LOGONSAMLOGONEX,
&r);
if (!NT_STATUS_IS_OK(status)) {
return status;
}
if (NT_STATUS_IS_ERR(status)) {
return status;
}
/* Return variables */
*validation = *r.out.validation;
*authoritative = *r.out.authoritative;
*flags = *r.out.flags;
/* Return result */
return r.out.result;
}
struct rpccli_netr_DsrEnumerateDomainTrusts_state {
struct netr_DsrEnumerateDomainTrusts orig;
struct netr_DsrEnumerateDomainTrusts tmp;
TALLOC_CTX *out_mem_ctx;
NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
};
static void rpccli_netr_DsrEnumerateDomainTrusts_done(struct tevent_req *subreq);
struct tevent_req *rpccli_netr_DsrEnumerateDomainTrusts_send(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
struct rpc_pipe_client *cli,
const char *_server_name /* [in] [unique,charset(UTF16)] */,
uint32_t _trust_flags /* [in] */,
struct netr_DomainTrustList *_trusts /* [out] [ref] */)
{
struct tevent_req *req;
struct rpccli_netr_DsrEnumerateDomainTrusts_state *state;
struct tevent_req *subreq;
req = tevent_req_create(mem_ctx, &state,
struct rpccli_netr_DsrEnumerateDomainTrusts_state);
if (req == NULL) {
return NULL;
}
state->out_mem_ctx = NULL;
state->dispatch_recv = cli->dispatch_recv;
/* In parameters */
state->orig.in.server_name = _server_name;
state->orig.in.trust_flags = _trust_flags;
/* Out parameters */
state->orig.out.trusts = _trusts;
/* Result */
ZERO_STRUCT(state->orig.out.result);
state->out_mem_ctx = talloc_named_const(state, 0,
"rpccli_netr_DsrEnumerateDomainTrusts_out_memory");
if (tevent_req_nomem(state->out_mem_ctx, req)) {
return tevent_req_post(req, ev);
}
/* make a temporary copy, that we pass to the dispatch function */
state->tmp = state->orig;
subreq = cli->dispatch_send(state, ev, cli,
&ndr_table_netlogon,
NDR_NETR_DSRENUMERATEDOMAINTRUSTS,
&state->tmp);
if (tevent_req_nomem(subreq, req)) {
return tevent_req_post(req, ev);
}
tevent_req_set_callback(subreq, rpccli_netr_DsrEnumerateDomainTrusts_done, req);
return req;
}
static void rpccli_netr_DsrEnumerateDomainTrusts_done(struct tevent_req *subreq)
{
struct tevent_req *req = tevent_req_callback_data(
subreq, struct tevent_req);
struct rpccli_netr_DsrEnumerateDomainTrusts_state *state = tevent_req_data(
req, struct rpccli_netr_DsrEnumerateDomainTrusts_state);
NTSTATUS status;
TALLOC_CTX *mem_ctx;
if (state->out_mem_ctx) {
mem_ctx = state->out_mem_ctx;
} else {
mem_ctx = state;
}
status = state->dispatch_recv(subreq, mem_ctx);
TALLOC_FREE(subreq);
if (!NT_STATUS_IS_OK(status)) {
tevent_req_nterror(req, status);
return;
}
/* Copy out parameters */
*state->orig.out.trusts = *state->tmp.out.trusts;
/* Copy result */
state->orig.out.result = state->tmp.out.result;
/* Reset temporary structure */
ZERO_STRUCT(state->tmp);
tevent_req_done(req);
}
NTSTATUS rpccli_netr_DsrEnumerateDomainTrusts_recv(struct tevent_req *req,
TALLOC_CTX *mem_ctx,
WERROR *result)
{
struct rpccli_netr_DsrEnumerateDomainTrusts_state *state = tevent_req_data(
req, struct rpccli_netr_DsrEnumerateDomainTrusts_state);
NTSTATUS status;
if (tevent_req_is_nterror(req, &status)) {
tevent_req_received(req);
return status;
}
/* Steal possbile out parameters to the callers context */
talloc_steal(mem_ctx, state->out_mem_ctx);
/* Return result */
*result = state->orig.out.result;
tevent_req_received(req);
return NT_STATUS_OK;
}
NTSTATUS rpccli_netr_DsrEnumerateDomainTrusts(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
const char *server_name /* [in] [unique,charset(UTF16)] */,
uint32_t trust_flags /* [in] */,
struct netr_DomainTrustList *trusts /* [out] [ref] */,
WERROR *werror)
{
struct netr_DsrEnumerateDomainTrusts r;
NTSTATUS status;
/* In parameters */
r.in.server_name = server_name;
r.in.trust_flags = trust_flags;
status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_DSRENUMERATEDOMAINTRUSTS,
&r);
if (!NT_STATUS_IS_OK(status)) {
return status;
}
if (NT_STATUS_IS_ERR(status)) {
return status;
}
/* Return variables */
*trusts = *r.out.trusts;
/* Return result */
if (werror) {
*werror = r.out.result;
}
return werror_to_ntstatus(r.out.result);
}
struct rpccli_netr_DsrDeregisterDNSHostRecords_state {
struct netr_DsrDeregisterDNSHostRecords orig;
struct netr_DsrDeregisterDNSHostRecords tmp;
TALLOC_CTX *out_mem_ctx;
NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
};
static void rpccli_netr_DsrDeregisterDNSHostRecords_done(struct tevent_req *subreq);
struct tevent_req *rpccli_netr_DsrDeregisterDNSHostRecords_send(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
struct rpc_pipe_client *cli,
const char *_server_name /* [in] [unique,charset(UTF16)] */,
const char *_domain /* [in] [unique,charset(UTF16)] */,
struct GUID *_domain_guid /* [in] [unique] */,
struct GUID *_dsa_guid /* [in] [unique] */,
const char *_dns_host /* [in] [ref,charset(UTF16)] */)
{
struct tevent_req *req;
struct rpccli_netr_DsrDeregisterDNSHostRecords_state *state;
struct tevent_req *subreq;
req = tevent_req_create(mem_ctx, &state,
struct rpccli_netr_DsrDeregisterDNSHostRecords_state);
if (req == NULL) {
return NULL;
}
state->out_mem_ctx = NULL;
state->dispatch_recv = cli->dispatch_recv;
/* In parameters */
state->orig.in.server_name = _server_name;
state->orig.in.domain = _domain;
state->orig.in.domain_guid = _domain_guid;
state->orig.in.dsa_guid = _dsa_guid;
state->orig.in.dns_host = _dns_host;
/* Out parameters */
/* Result */
ZERO_STRUCT(state->orig.out.result);
/* make a temporary copy, that we pass to the dispatch function */
state->tmp = state->orig;
subreq = cli->dispatch_send(state, ev, cli,
&ndr_table_netlogon,
NDR_NETR_DSRDEREGISTERDNSHOSTRECORDS,
&state->tmp);
if (tevent_req_nomem(subreq, req)) {
return tevent_req_post(req, ev);
}
tevent_req_set_callback(subreq, rpccli_netr_DsrDeregisterDNSHostRecords_done, req);
return req;
}
static void rpccli_netr_DsrDeregisterDNSHostRecords_done(struct tevent_req *subreq)
{
struct tevent_req *req = tevent_req_callback_data(
subreq, struct tevent_req);
struct rpccli_netr_DsrDeregisterDNSHostRecords_state *state = tevent_req_data(
req, struct rpccli_netr_DsrDeregisterDNSHostRecords_state);
NTSTATUS status;
TALLOC_CTX *mem_ctx;
if (state->out_mem_ctx) {
mem_ctx = state->out_mem_ctx;
} else {
mem_ctx = state;
}
status = state->dispatch_recv(subreq, mem_ctx);
TALLOC_FREE(subreq);
if (!NT_STATUS_IS_OK(status)) {
tevent_req_nterror(req, status);
return;
}
/* Copy out parameters */
/* Copy result */
state->orig.out.result = state->tmp.out.result;
/* Reset temporary structure */
ZERO_STRUCT(state->tmp);
tevent_req_done(req);
}
NTSTATUS rpccli_netr_DsrDeregisterDNSHostRecords_recv(struct tevent_req *req,
TALLOC_CTX *mem_ctx,
WERROR *result)
{
struct rpccli_netr_DsrDeregisterDNSHostRecords_state *state = tevent_req_data(
req, struct rpccli_netr_DsrDeregisterDNSHostRecords_state);
NTSTATUS status;
if (tevent_req_is_nterror(req, &status)) {
tevent_req_received(req);
return status;
}
/* Steal possbile out parameters to the callers context */
talloc_steal(mem_ctx, state->out_mem_ctx);
/* Return result */
*result = state->orig.out.result;
tevent_req_received(req);
return NT_STATUS_OK;
}
NTSTATUS rpccli_netr_DsrDeregisterDNSHostRecords(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
const char *server_name /* [in] [unique,charset(UTF16)] */,
const char *domain /* [in] [unique,charset(UTF16)] */,
struct GUID *domain_guid /* [in] [unique] */,
struct GUID *dsa_guid /* [in] [unique] */,
const char *dns_host /* [in] [ref,charset(UTF16)] */,
WERROR *werror)
{
struct netr_DsrDeregisterDNSHostRecords r;
NTSTATUS status;
/* In parameters */
r.in.server_name = server_name;
r.in.domain = domain;
r.in.domain_guid = domain_guid;
r.in.dsa_guid = dsa_guid;
r.in.dns_host = dns_host;
status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_DSRDEREGISTERDNSHOSTRECORDS,
&r);
if (!NT_STATUS_IS_OK(status)) {
return status;
}
if (NT_STATUS_IS_ERR(status)) {
return status;
}
/* Return variables */
/* Return result */
if (werror) {
*werror = r.out.result;
}
return werror_to_ntstatus(r.out.result);
}
struct rpccli_netr_ServerTrustPasswordsGet_state {
struct netr_ServerTrustPasswordsGet orig;
struct netr_ServerTrustPasswordsGet tmp;
TALLOC_CTX *out_mem_ctx;
NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
};
static void rpccli_netr_ServerTrustPasswordsGet_done(struct tevent_req *subreq);
struct tevent_req *rpccli_netr_ServerTrustPasswordsGet_send(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
struct rpc_pipe_client *cli,
const char *_server_name /* [in] [unique,charset(UTF16)] */,
const char *_account_name /* [in] [ref,charset(UTF16)] */,
enum netr_SchannelType _secure_channel_type /* [in] */,
const char *_computer_name /* [in] [ref,charset(UTF16)] */,
struct netr_Authenticator *_credential /* [in] [ref] */,
struct netr_Authenticator *_return_authenticator /* [out] [ref] */,
struct samr_Password *_password /* [out] [ref] */,
struct samr_Password *_password2 /* [out] [ref] */)
{
struct tevent_req *req;
struct rpccli_netr_ServerTrustPasswordsGet_state *state;
struct tevent_req *subreq;
req = tevent_req_create(mem_ctx, &state,
struct rpccli_netr_ServerTrustPasswordsGet_state);
if (req == NULL) {
return NULL;
}
state->out_mem_ctx = NULL;
state->dispatch_recv = cli->dispatch_recv;
/* In parameters */
state->orig.in.server_name = _server_name;
state->orig.in.account_name = _account_name;
state->orig.in.secure_channel_type = _secure_channel_type;
state->orig.in.computer_name = _computer_name;
state->orig.in.credential = _credential;
/* Out parameters */
state->orig.out.return_authenticator = _return_authenticator;
state->orig.out.password = _password;
state->orig.out.password2 = _password2;
/* Result */
ZERO_STRUCT(state->orig.out.result);
state->out_mem_ctx = talloc_named_const(state, 0,
"rpccli_netr_ServerTrustPasswordsGet_out_memory");
if (tevent_req_nomem(state->out_mem_ctx, req)) {
return tevent_req_post(req, ev);
}
/* make a temporary copy, that we pass to the dispatch function */
state->tmp = state->orig;
subreq = cli->dispatch_send(state, ev, cli,
&ndr_table_netlogon,
NDR_NETR_SERVERTRUSTPASSWORDSGET,
&state->tmp);
if (tevent_req_nomem(subreq, req)) {
return tevent_req_post(req, ev);
}
tevent_req_set_callback(subreq, rpccli_netr_ServerTrustPasswordsGet_done, req);
return req;
}
static void rpccli_netr_ServerTrustPasswordsGet_done(struct tevent_req *subreq)
{
struct tevent_req *req = tevent_req_callback_data(
subreq, struct tevent_req);
struct rpccli_netr_ServerTrustPasswordsGet_state *state = tevent_req_data(
req, struct rpccli_netr_ServerTrustPasswordsGet_state);
NTSTATUS status;
TALLOC_CTX *mem_ctx;
if (state->out_mem_ctx) {
mem_ctx = state->out_mem_ctx;
} else {
mem_ctx = state;
}
status = state->dispatch_recv(subreq, mem_ctx);
TALLOC_FREE(subreq);
if (!NT_STATUS_IS_OK(status)) {
tevent_req_nterror(req, status);
return;
}
/* Copy out parameters */
*state->orig.out.return_authenticator = *state->tmp.out.return_authenticator;
*state->orig.out.password = *state->tmp.out.password;
*state->orig.out.password2 = *state->tmp.out.password2;
/* Copy result */
state->orig.out.result = state->tmp.out.result;
/* Reset temporary structure */
ZERO_STRUCT(state->tmp);
tevent_req_done(req);
}
NTSTATUS rpccli_netr_ServerTrustPasswordsGet_recv(struct tevent_req *req,
TALLOC_CTX *mem_ctx,
NTSTATUS *result)
{
struct rpccli_netr_ServerTrustPasswordsGet_state *state = tevent_req_data(
req, struct rpccli_netr_ServerTrustPasswordsGet_state);
NTSTATUS status;
if (tevent_req_is_nterror(req, &status)) {
tevent_req_received(req);
return status;
}
/* Steal possbile out parameters to the callers context */
talloc_steal(mem_ctx, state->out_mem_ctx);
/* Return result */
*result = state->orig.out.result;
tevent_req_received(req);
return NT_STATUS_OK;
}
NTSTATUS rpccli_netr_ServerTrustPasswordsGet(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
const char *server_name /* [in] [unique,charset(UTF16)] */,
const char *account_name /* [in] [ref,charset(UTF16)] */,
enum netr_SchannelType secure_channel_type /* [in] */,
const char *computer_name /* [in] [ref,charset(UTF16)] */,
struct netr_Authenticator *credential /* [in] [ref] */,
struct netr_Authenticator *return_authenticator /* [out] [ref] */,
struct samr_Password *password /* [out] [ref] */,
struct samr_Password *password2 /* [out] [ref] */)
{
struct netr_ServerTrustPasswordsGet r;
NTSTATUS status;
/* In parameters */
r.in.server_name = server_name;
r.in.account_name = account_name;
r.in.secure_channel_type = secure_channel_type;
r.in.computer_name = computer_name;
r.in.credential = credential;
status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_SERVERTRUSTPASSWORDSGET,
&r);
if (!NT_STATUS_IS_OK(status)) {
return status;
}
if (NT_STATUS_IS_ERR(status)) {
return status;
}
/* Return variables */
*return_authenticator = *r.out.return_authenticator;
*password = *r.out.password;
*password2 = *r.out.password2;
/* Return result */
return r.out.result;
}
struct rpccli_netr_DsRGetForestTrustInformation_state {
struct netr_DsRGetForestTrustInformation orig;
struct netr_DsRGetForestTrustInformation tmp;
TALLOC_CTX *out_mem_ctx;
NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
};
static void rpccli_netr_DsRGetForestTrustInformation_done(struct tevent_req *subreq);
struct tevent_req *rpccli_netr_DsRGetForestTrustInformation_send(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
struct rpc_pipe_client *cli,
const char *_server_name /* [in] [unique,charset(UTF16)] */,
const char *_trusted_domain_name /* [in] [unique,charset(UTF16)] */,
uint32_t _flags /* [in] */,
struct lsa_ForestTrustInformation **_forest_trust_info /* [out] [ref] */)
{
struct tevent_req *req;
struct rpccli_netr_DsRGetForestTrustInformation_state *state;
struct tevent_req *subreq;
req = tevent_req_create(mem_ctx, &state,
struct rpccli_netr_DsRGetForestTrustInformation_state);
if (req == NULL) {
return NULL;
}
state->out_mem_ctx = NULL;
state->dispatch_recv = cli->dispatch_recv;
/* In parameters */
state->orig.in.server_name = _server_name;
state->orig.in.trusted_domain_name = _trusted_domain_name;
state->orig.in.flags = _flags;
/* Out parameters */
state->orig.out.forest_trust_info = _forest_trust_info;
/* Result */
ZERO_STRUCT(state->orig.out.result);
state->out_mem_ctx = talloc_named_const(state, 0,
"rpccli_netr_DsRGetForestTrustInformation_out_memory");
if (tevent_req_nomem(state->out_mem_ctx, req)) {
return tevent_req_post(req, ev);
}
/* make a temporary copy, that we pass to the dispatch function */
state->tmp = state->orig;
subreq = cli->dispatch_send(state, ev, cli,
&ndr_table_netlogon,
NDR_NETR_DSRGETFORESTTRUSTINFORMATION,
&state->tmp);
if (tevent_req_nomem(subreq, req)) {
return tevent_req_post(req, ev);
}
tevent_req_set_callback(subreq, rpccli_netr_DsRGetForestTrustInformation_done, req);
return req;
}
static void rpccli_netr_DsRGetForestTrustInformation_done(struct tevent_req *subreq)
{
struct tevent_req *req = tevent_req_callback_data(
subreq, struct tevent_req);
struct rpccli_netr_DsRGetForestTrustInformation_state *state = tevent_req_data(
req, struct rpccli_netr_DsRGetForestTrustInformation_state);
NTSTATUS status;
TALLOC_CTX *mem_ctx;
if (state->out_mem_ctx) {
mem_ctx = state->out_mem_ctx;
} else {
mem_ctx = state;
}
status = state->dispatch_recv(subreq, mem_ctx);
TALLOC_FREE(subreq);
if (!NT_STATUS_IS_OK(status)) {
tevent_req_nterror(req, status);
return;
}
/* Copy out parameters */
*state->orig.out.forest_trust_info = *state->tmp.out.forest_trust_info;
/* Copy result */
state->orig.out.result = state->tmp.out.result;
/* Reset temporary structure */
ZERO_STRUCT(state->tmp);
tevent_req_done(req);
}
NTSTATUS rpccli_netr_DsRGetForestTrustInformation_recv(struct tevent_req *req,
TALLOC_CTX *mem_ctx,
WERROR *result)
{
struct rpccli_netr_DsRGetForestTrustInformation_state *state = tevent_req_data(
req, struct rpccli_netr_DsRGetForestTrustInformation_state);
NTSTATUS status;
if (tevent_req_is_nterror(req, &status)) {
tevent_req_received(req);
return status;
}
/* Steal possbile out parameters to the callers context */
talloc_steal(mem_ctx, state->out_mem_ctx);
/* Return result */
*result = state->orig.out.result;
tevent_req_received(req);
return NT_STATUS_OK;
}
NTSTATUS rpccli_netr_DsRGetForestTrustInformation(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
const char *server_name /* [in] [unique,charset(UTF16)] */,
const char *trusted_domain_name /* [in] [unique,charset(UTF16)] */,
uint32_t flags /* [in] */,
struct lsa_ForestTrustInformation **forest_trust_info /* [out] [ref] */,
WERROR *werror)
{
struct netr_DsRGetForestTrustInformation r;
NTSTATUS status;
/* In parameters */
r.in.server_name = server_name;
r.in.trusted_domain_name = trusted_domain_name;
r.in.flags = flags;
status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_DSRGETFORESTTRUSTINFORMATION,
&r);
if (!NT_STATUS_IS_OK(status)) {
return status;
}
if (NT_STATUS_IS_ERR(status)) {
return status;
}
/* Return variables */
*forest_trust_info = *r.out.forest_trust_info;
/* Return result */
if (werror) {
*werror = r.out.result;
}
return werror_to_ntstatus(r.out.result);
}
struct rpccli_netr_GetForestTrustInformation_state {
struct netr_GetForestTrustInformation orig;
struct netr_GetForestTrustInformation tmp;
TALLOC_CTX *out_mem_ctx;
NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
};
static void rpccli_netr_GetForestTrustInformation_done(struct tevent_req *subreq);
struct tevent_req *rpccli_netr_GetForestTrustInformation_send(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
struct rpc_pipe_client *cli,
const char *_server_name /* [in] [unique,charset(UTF16)] */,
const char *_computer_name /* [in] [ref,charset(UTF16)] */,
struct netr_Authenticator *_credential /* [in] [ref] */,
struct netr_Authenticator *_return_authenticator /* [out] [ref] */,
uint32_t _flags /* [in] */,
struct lsa_ForestTrustInformation **_forest_trust_info /* [out] [ref] */)
{
struct tevent_req *req;
struct rpccli_netr_GetForestTrustInformation_state *state;
struct tevent_req *subreq;
req = tevent_req_create(mem_ctx, &state,
struct rpccli_netr_GetForestTrustInformation_state);
if (req == NULL) {
return NULL;
}
state->out_mem_ctx = NULL;
state->dispatch_recv = cli->dispatch_recv;
/* In parameters */
state->orig.in.server_name = _server_name;
state->orig.in.computer_name = _computer_name;
state->orig.in.credential = _credential;
state->orig.in.flags = _flags;
/* Out parameters */
state->orig.out.return_authenticator = _return_authenticator;
state->orig.out.forest_trust_info = _forest_trust_info;
/* Result */
ZERO_STRUCT(state->orig.out.result);
state->out_mem_ctx = talloc_named_const(state, 0,
"rpccli_netr_GetForestTrustInformation_out_memory");
if (tevent_req_nomem(state->out_mem_ctx, req)) {
return tevent_req_post(req, ev);
}
/* make a temporary copy, that we pass to the dispatch function */
state->tmp = state->orig;
subreq = cli->dispatch_send(state, ev, cli,
&ndr_table_netlogon,
NDR_NETR_GETFORESTTRUSTINFORMATION,
&state->tmp);
if (tevent_req_nomem(subreq, req)) {
return tevent_req_post(req, ev);
}
tevent_req_set_callback(subreq, rpccli_netr_GetForestTrustInformation_done, req);
return req;
}
static void rpccli_netr_GetForestTrustInformation_done(struct tevent_req *subreq)
{
struct tevent_req *req = tevent_req_callback_data(
subreq, struct tevent_req);
struct rpccli_netr_GetForestTrustInformation_state *state = tevent_req_data(
req, struct rpccli_netr_GetForestTrustInformation_state);
NTSTATUS status;
TALLOC_CTX *mem_ctx;
if (state->out_mem_ctx) {
mem_ctx = state->out_mem_ctx;
} else {
mem_ctx = state;
}
status = state->dispatch_recv(subreq, mem_ctx);
TALLOC_FREE(subreq);
if (!NT_STATUS_IS_OK(status)) {
tevent_req_nterror(req, status);
return;
}
/* Copy out parameters */
*state->orig.out.return_authenticator = *state->tmp.out.return_authenticator;
*state->orig.out.forest_trust_info = *state->tmp.out.forest_trust_info;
/* Copy result */
state->orig.out.result = state->tmp.out.result;
/* Reset temporary structure */
ZERO_STRUCT(state->tmp);
tevent_req_done(req);
}
NTSTATUS rpccli_netr_GetForestTrustInformation_recv(struct tevent_req *req,
TALLOC_CTX *mem_ctx,
NTSTATUS *result)
{
struct rpccli_netr_GetForestTrustInformation_state *state = tevent_req_data(
req, struct rpccli_netr_GetForestTrustInformation_state);
NTSTATUS status;
if (tevent_req_is_nterror(req, &status)) {
tevent_req_received(req);
return status;
}
/* Steal possbile out parameters to the callers context */
talloc_steal(mem_ctx, state->out_mem_ctx);
/* Return result */
*result = state->orig.out.result;
tevent_req_received(req);
return NT_STATUS_OK;
}
NTSTATUS rpccli_netr_GetForestTrustInformation(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
const char *server_name /* [in] [unique,charset(UTF16)] */,
const char *computer_name /* [in] [ref,charset(UTF16)] */,
struct netr_Authenticator *credential /* [in] [ref] */,
struct netr_Authenticator *return_authenticator /* [out] [ref] */,
uint32_t flags /* [in] */,
struct lsa_ForestTrustInformation **forest_trust_info /* [out] [ref] */)
{
struct netr_GetForestTrustInformation r;
NTSTATUS status;
/* In parameters */
r.in.server_name = server_name;
r.in.computer_name = computer_name;
r.in.credential = credential;
r.in.flags = flags;
status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_GETFORESTTRUSTINFORMATION,
&r);
if (!NT_STATUS_IS_OK(status)) {
return status;
}
if (NT_STATUS_IS_ERR(status)) {
return status;
}
/* Return variables */
*return_authenticator = *r.out.return_authenticator;
*forest_trust_info = *r.out.forest_trust_info;
/* Return result */
return r.out.result;
}
struct rpccli_netr_LogonSamLogonWithFlags_state {
struct netr_LogonSamLogonWithFlags orig;
struct netr_LogonSamLogonWithFlags tmp;
TALLOC_CTX *out_mem_ctx;
NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
};
static void rpccli_netr_LogonSamLogonWithFlags_done(struct tevent_req *subreq);
struct tevent_req *rpccli_netr_LogonSamLogonWithFlags_send(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
struct rpc_pipe_client *cli,
const char *_server_name /* [in] [unique,charset(UTF16)] */,
const char *_computer_name /* [in] [unique,charset(UTF16)] */,
struct netr_Authenticator *_credential /* [in] [unique] */,
struct netr_Authenticator *_return_authenticator /* [in,out] [unique] */,
enum netr_LogonInfoClass _logon_level /* [in] */,
union netr_LogonLevel *_logon /* [in] [ref,switch_is(logon_level)] */,
uint16_t _validation_level /* [in] */,
union netr_Validation *_validation /* [out] [ref,switch_is(validation_level)] */,
uint8_t *_authoritative /* [out] [ref] */,
uint32_t *_flags /* [in,out] [ref] */)
{
struct tevent_req *req;
struct rpccli_netr_LogonSamLogonWithFlags_state *state;
struct tevent_req *subreq;
req = tevent_req_create(mem_ctx, &state,
struct rpccli_netr_LogonSamLogonWithFlags_state);
if (req == NULL) {
return NULL;
}
state->out_mem_ctx = NULL;
state->dispatch_recv = cli->dispatch_recv;
/* In parameters */
state->orig.in.server_name = _server_name;
state->orig.in.computer_name = _computer_name;
state->orig.in.credential = _credential;
state->orig.in.return_authenticator = _return_authenticator;
state->orig.in.logon_level = _logon_level;
state->orig.in.logon = _logon;
state->orig.in.validation_level = _validation_level;
state->orig.in.flags = _flags;
/* Out parameters */
state->orig.out.return_authenticator = _return_authenticator;
state->orig.out.validation = _validation;
state->orig.out.authoritative = _authoritative;
state->orig.out.flags = _flags;
/* Result */
ZERO_STRUCT(state->orig.out.result);
state->out_mem_ctx = talloc_named_const(state, 0,
"rpccli_netr_LogonSamLogonWithFlags_out_memory");
if (tevent_req_nomem(state->out_mem_ctx, req)) {
return tevent_req_post(req, ev);
}
/* make a temporary copy, that we pass to the dispatch function */
state->tmp = state->orig;
subreq = cli->dispatch_send(state, ev, cli,
&ndr_table_netlogon,
NDR_NETR_LOGONSAMLOGONWITHFLAGS,
&state->tmp);
if (tevent_req_nomem(subreq, req)) {
return tevent_req_post(req, ev);
}
tevent_req_set_callback(subreq, rpccli_netr_LogonSamLogonWithFlags_done, req);
return req;
}
static void rpccli_netr_LogonSamLogonWithFlags_done(struct tevent_req *subreq)
{
struct tevent_req *req = tevent_req_callback_data(
subreq, struct tevent_req);
struct rpccli_netr_LogonSamLogonWithFlags_state *state = tevent_req_data(
req, struct rpccli_netr_LogonSamLogonWithFlags_state);
NTSTATUS status;
TALLOC_CTX *mem_ctx;
if (state->out_mem_ctx) {
mem_ctx = state->out_mem_ctx;
} else {
mem_ctx = state;
}
status = state->dispatch_recv(subreq, mem_ctx);
TALLOC_FREE(subreq);
if (!NT_STATUS_IS_OK(status)) {
tevent_req_nterror(req, status);
return;
}
/* Copy out parameters */
if (state->orig.out.return_authenticator && state->tmp.out.return_authenticator) {
*state->orig.out.return_authenticator = *state->tmp.out.return_authenticator;
}
*state->orig.out.validation = *state->tmp.out.validation;
*state->orig.out.authoritative = *state->tmp.out.authoritative;
*state->orig.out.flags = *state->tmp.out.flags;
/* Copy result */
state->orig.out.result = state->tmp.out.result;
/* Reset temporary structure */
ZERO_STRUCT(state->tmp);
tevent_req_done(req);
}
NTSTATUS rpccli_netr_LogonSamLogonWithFlags_recv(struct tevent_req *req,
TALLOC_CTX *mem_ctx,
NTSTATUS *result)
{
struct rpccli_netr_LogonSamLogonWithFlags_state *state = tevent_req_data(
req, struct rpccli_netr_LogonSamLogonWithFlags_state);
NTSTATUS status;
if (tevent_req_is_nterror(req, &status)) {
tevent_req_received(req);
return status;
}
/* Steal possbile out parameters to the callers context */
talloc_steal(mem_ctx, state->out_mem_ctx);
/* Return result */
*result = state->orig.out.result;
tevent_req_received(req);
return NT_STATUS_OK;
}
NTSTATUS rpccli_netr_LogonSamLogonWithFlags(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
const char *server_name /* [in] [unique,charset(UTF16)] */,
const char *computer_name /* [in] [unique,charset(UTF16)] */,
struct netr_Authenticator *credential /* [in] [unique] */,
struct netr_Authenticator *return_authenticator /* [in,out] [unique] */,
enum netr_LogonInfoClass logon_level /* [in] */,
union netr_LogonLevel *logon /* [in] [ref,switch_is(logon_level)] */,
uint16_t validation_level /* [in] */,
union netr_Validation *validation /* [out] [ref,switch_is(validation_level)] */,
uint8_t *authoritative /* [out] [ref] */,
uint32_t *flags /* [in,out] [ref] */)
{
struct netr_LogonSamLogonWithFlags r;
NTSTATUS status;
/* In parameters */
r.in.server_name = server_name;
r.in.computer_name = computer_name;
r.in.credential = credential;
r.in.return_authenticator = return_authenticator;
r.in.logon_level = logon_level;
r.in.logon = logon;
r.in.validation_level = validation_level;
r.in.flags = flags;
status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_LOGONSAMLOGONWITHFLAGS,
&r);
if (!NT_STATUS_IS_OK(status)) {
return status;
}
if (NT_STATUS_IS_ERR(status)) {
return status;
}
/* Return variables */
if (return_authenticator && r.out.return_authenticator) {
*return_authenticator = *r.out.return_authenticator;
}
*validation = *r.out.validation;
*authoritative = *r.out.authoritative;
*flags = *r.out.flags;
/* Return result */
return r.out.result;
}
struct rpccli_netr_ServerGetTrustInfo_state {
struct netr_ServerGetTrustInfo orig;
struct netr_ServerGetTrustInfo tmp;
TALLOC_CTX *out_mem_ctx;
NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
};
static void rpccli_netr_ServerGetTrustInfo_done(struct tevent_req *subreq);
struct tevent_req *rpccli_netr_ServerGetTrustInfo_send(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
struct rpc_pipe_client *cli,
const char *_server_name /* [in] [unique,charset(UTF16)] */,
const char *_account_name /* [in] [ref,charset(UTF16)] */,
enum netr_SchannelType _secure_channel_type /* [in] */,
const char *_computer_name /* [in] [ref,charset(UTF16)] */,
struct netr_Authenticator *_credential /* [in] [ref] */,
struct netr_Authenticator *_return_authenticator /* [out] [ref] */,
struct samr_Password *_new_owf_password /* [out] [ref] */,
struct samr_Password *_old_owf_password /* [out] [ref] */,
struct netr_TrustInfo **_trust_info /* [out] [ref] */)
{
struct tevent_req *req;
struct rpccli_netr_ServerGetTrustInfo_state *state;
struct tevent_req *subreq;
req = tevent_req_create(mem_ctx, &state,
struct rpccli_netr_ServerGetTrustInfo_state);
if (req == NULL) {
return NULL;
}
state->out_mem_ctx = NULL;
state->dispatch_recv = cli->dispatch_recv;
/* In parameters */
state->orig.in.server_name = _server_name;
state->orig.in.account_name = _account_name;
state->orig.in.secure_channel_type = _secure_channel_type;
state->orig.in.computer_name = _computer_name;
state->orig.in.credential = _credential;
/* Out parameters */
state->orig.out.return_authenticator = _return_authenticator;
state->orig.out.new_owf_password = _new_owf_password;
state->orig.out.old_owf_password = _old_owf_password;
state->orig.out.trust_info = _trust_info;
/* Result */
ZERO_STRUCT(state->orig.out.result);
state->out_mem_ctx = talloc_named_const(state, 0,
"rpccli_netr_ServerGetTrustInfo_out_memory");
if (tevent_req_nomem(state->out_mem_ctx, req)) {
return tevent_req_post(req, ev);
}
/* make a temporary copy, that we pass to the dispatch function */
state->tmp = state->orig;
subreq = cli->dispatch_send(state, ev, cli,
&ndr_table_netlogon,
NDR_NETR_SERVERGETTRUSTINFO,
&state->tmp);
if (tevent_req_nomem(subreq, req)) {
return tevent_req_post(req, ev);
}
tevent_req_set_callback(subreq, rpccli_netr_ServerGetTrustInfo_done, req);
return req;
}
static void rpccli_netr_ServerGetTrustInfo_done(struct tevent_req *subreq)
{
struct tevent_req *req = tevent_req_callback_data(
subreq, struct tevent_req);
struct rpccli_netr_ServerGetTrustInfo_state *state = tevent_req_data(
req, struct rpccli_netr_ServerGetTrustInfo_state);
NTSTATUS status;
TALLOC_CTX *mem_ctx;
if (state->out_mem_ctx) {
mem_ctx = state->out_mem_ctx;
} else {
mem_ctx = state;
}
status = state->dispatch_recv(subreq, mem_ctx);
TALLOC_FREE(subreq);
if (!NT_STATUS_IS_OK(status)) {
tevent_req_nterror(req, status);
return;
}
/* Copy out parameters */
*state->orig.out.return_authenticator = *state->tmp.out.return_authenticator;
*state->orig.out.new_owf_password = *state->tmp.out.new_owf_password;
*state->orig.out.old_owf_password = *state->tmp.out.old_owf_password;
*state->orig.out.trust_info = *state->tmp.out.trust_info;
/* Copy result */
state->orig.out.result = state->tmp.out.result;
/* Reset temporary structure */
ZERO_STRUCT(state->tmp);
tevent_req_done(req);
}
NTSTATUS rpccli_netr_ServerGetTrustInfo_recv(struct tevent_req *req,
TALLOC_CTX *mem_ctx,
NTSTATUS *result)
{
struct rpccli_netr_ServerGetTrustInfo_state *state = tevent_req_data(
req, struct rpccli_netr_ServerGetTrustInfo_state);
NTSTATUS status;
if (tevent_req_is_nterror(req, &status)) {
tevent_req_received(req);
return status;
}
/* Steal possbile out parameters to the callers context */
talloc_steal(mem_ctx, state->out_mem_ctx);
/* Return result */
*result = state->orig.out.result;
tevent_req_received(req);
return NT_STATUS_OK;
}
NTSTATUS rpccli_netr_ServerGetTrustInfo(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
const char *server_name /* [in] [unique,charset(UTF16)] */,
const char *account_name /* [in] [ref,charset(UTF16)] */,
enum netr_SchannelType secure_channel_type /* [in] */,
const char *computer_name /* [in] [ref,charset(UTF16)] */,
struct netr_Authenticator *credential /* [in] [ref] */,
struct netr_Authenticator *return_authenticator /* [out] [ref] */,
struct samr_Password *new_owf_password /* [out] [ref] */,
struct samr_Password *old_owf_password /* [out] [ref] */,
struct netr_TrustInfo **trust_info /* [out] [ref] */)
{
struct netr_ServerGetTrustInfo r;
NTSTATUS status;
/* In parameters */
r.in.server_name = server_name;
r.in.account_name = account_name;
r.in.secure_channel_type = secure_channel_type;
r.in.computer_name = computer_name;
r.in.credential = credential;
status = cli->dispatch(cli,
mem_ctx,
&ndr_table_netlogon,
NDR_NETR_SERVERGETTRUSTINFO,
&r);
if (!NT_STATUS_IS_OK(status)) {
return status;
}
if (NT_STATUS_IS_ERR(status)) {
return status;
}
/* Return variables */
*return_authenticator = *r.out.return_authenticator;
*new_owf_password = *r.out.new_owf_password;
*old_owf_password = *r.out.old_owf_password;
*trust_info = *r.out.trust_info;
/* Return result */
return r.out.result;
}