summaryrefslogtreecommitdiff
path: root/source3
diff options
context:
space:
mode:
Diffstat (limited to 'source3')
-rw-r--r--source3/libsmb/cli_netlogon.c44
1 files changed, 15 insertions, 29 deletions
diff --git a/source3/libsmb/cli_netlogon.c b/source3/libsmb/cli_netlogon.c
index ee0ed82829..47b7c2f22e 100644
--- a/source3/libsmb/cli_netlogon.c
+++ b/source3/libsmb/cli_netlogon.c
@@ -81,19 +81,15 @@ void cli_netlogon_shutdown(struct cli_state *cli)
cli_shutdown(cli);
}
-/***************************************************************************
-Synchronise SAM Database (requires SEC_CHAN_BDC).
-****************************************************************************/
-BOOL cli_net_sam_sync(struct cli_state *cli, TALLOC_CTX *mem_ctx,
- char *srv_name, uint32 database_id, uint32 *num_deltas,
- SAM_DELTA_HDR *hdr_deltas, SAM_DELTA_CTR *deltas)
+/* Logon Control 2 */
+
+uint32 cli_netlogon_logon_ctrl2(struct cli_state *cli, TALLOC_CTX *mem_ctx,
+ uint32 query_level)
{
prs_struct qbuf, rbuf;
- NET_Q_SAM_SYNC q;
- NET_R_SAM_SYNC r;
+ NET_Q_LOGON_CTRL2 q;
+ NET_R_LOGON_CTRL2 r;
uint32 result = NT_STATUS_UNSUCCESSFUL;
- DOM_CRED new_clnt_cred;
- uint8 sess_key[16];
ZERO_STRUCT(q);
ZERO_STRUCT(r);
@@ -105,38 +101,28 @@ BOOL cli_net_sam_sync(struct cli_state *cli, TALLOC_CTX *mem_ctx,
/* Initialise input parameters */
- init_q_sam_sync(&q, srv_name, cli->clnt_name_slash, &new_clnt_cred,
- database_id);
+ init_net_q_logon_ctrl2(&q, cli->srv_name_slash, query_level);
/* Marshall data and send request */
- if (!net_io_q_sam_sync("", &q, &qbuf, 0) ||
- !rpc_api_pipe_req(cli, NET_SAM_SYNC, &qbuf, &rbuf)) {
+ if (!net_io_q_logon_ctrl2("", &q, &qbuf, 0) ||
+ !rpc_api_pipe_req(cli, NET_LOGON_CTRL2, &qbuf, &rbuf)) {
+ result = NT_STATUS_UNSUCCESSFUL;
goto done;
}
- r.hdr_deltas = hdr_deltas;
- r.deltas = deltas;
-
- if (!net_io_r_sam_sync("", sess_key, &r, &rbuf, 0)) {
- goto done;
- }
+ /* Unmarshall response */
- if ((result = r.status) != NT_STATUS_NOPROBLEMO) {
+ if (!net_io_r_logon_ctrl2("", &r, &rbuf, 0)) {
+ result = NT_STATUS_UNSUCCESSFUL;
goto done;
}
-#if 0
- /* Update the credentials. */
- if (ok && !cli_con_deal_with_creds(con, &(r_s.srv_creds)))
- {
- *num_deltas = r_s.num_deltas2;
- }
-#endif
+ result = r.status;
done:
- prs_mem_free(&rbuf);
prs_mem_free(&qbuf);
+ prs_mem_free(&rbuf);
return result;
}