From f1c2fdb2704e04b05fe3247c53162006a25e75fb Mon Sep 17 00:00:00 2001 From: Luke Leighton Date: Tue, 21 Sep 1999 21:28:27 +0000 Subject: split matthew's sync command (only currently called from smbpasswd) into a separate module (This used to be commit d99eca020a255022dbc71f3671127343d75db59e) --- source3/rpc_client/cli_netlogon.c | 74 +-------------------------------------- 1 file changed, 1 insertion(+), 73 deletions(-) (limited to 'source3/rpc_client/cli_netlogon.c') diff --git a/source3/rpc_client/cli_netlogon.c b/source3/rpc_client/cli_netlogon.c index 6f0d7e1c3a..6b7db8ff6e 100644 --- a/source3/rpc_client/cli_netlogon.c +++ b/source3/rpc_client/cli_netlogon.c @@ -715,22 +715,19 @@ domain %s.\n", timestring(), domain)); return False; } -BOOL do_sam_sync(struct cli_state *cli, +BOOL do_sam_sync(struct cli_state *cli, uchar trust_passwd[16], SAM_DELTA_HDR hdr_deltas[MAX_SAM_DELTAS], SAM_DELTA_CTR deltas [MAX_SAM_DELTAS], uint32 *num_deltas) { uint16 nt_pipe_fnum; BOOL res = True; - unsigned char trust_passwd[16]; *num_deltas = 0; DEBUG(2,("Attempting SAM sync with PDC, domain: %s name: %s\n", cli->domain, global_myname)); - res = res ? trust_get_passwd(trust_passwd, cli->domain, global_myname) : False; - /* open NETLOGON session. negotiate credentials */ res = res ? cli_nt_session_open(cli, PIPE_NETLOGON, &nt_pipe_fnum) : False; @@ -755,72 +752,3 @@ BOOL do_sam_sync(struct cli_state *cli, return True; } -BOOL synchronise_passdb(void) -{ - struct cli_state cli; - SAM_DELTA_HDR hdr_deltas[MAX_SAM_DELTAS]; - SAM_DELTA_CTR deltas[MAX_SAM_DELTAS]; - uint32 num; - - SAM_ACCOUNT_INFO *acc; - struct smb_passwd pwd; - fstring nt_name; - unsigned char smb_passwd[16]; - unsigned char smb_nt_passwd[16]; - - char *mode; - BOOL success; - BOOL ret; - int i; - - if (!cli_connect_serverlist(&cli, lp_passwordserver())) - { - return False; - } - - pstrcpy(cli.domain, lp_workgroup()); - - ret = do_sam_sync(&cli, hdr_deltas, deltas, &num); - - if (ret) - { - for (i = 0; i < num; i++) - { - /* Currently only interested in accounts */ - if (hdr_deltas[i].type != 5) - { - continue; - } - - acc = &deltas[i].account_info; - pwdb_init_smb(&pwd); - - pwd.user_rid = acc->user_rid; - unistr2_to_ascii(nt_name, &(acc->uni_acct_name), sizeof(fstring)-1); - pwd.nt_name = nt_name; - pwd.acct_ctrl = acc->acb_info; - pwd.pass_last_set_time = nt_time_to_unix(&(acc->pwd_last_set_time)); - - sam_pwd_hash(acc->user_rid, smb_passwd, acc->pass.buf_lm_pwd, 0); - sam_pwd_hash(acc->user_rid, smb_nt_passwd, acc->pass.buf_nt_pwd, 0); - pwd.smb_passwd = smb_passwd; - pwd.smb_nt_passwd = smb_nt_passwd; - - mode = "modify"; - success = mod_smbpwd_entry(&pwd, True); - - if (!success) - { - mode = "add"; - success = add_smbpwd_entry(&pwd); - } - - DEBUG(0, ("Attempted to %s account for %s: %s\n", mode, - nt_name, success ? "OK" : "FAILED")); - } - } - - cli_ulogoff(&cli); - cli_shutdown(&cli); - return ret; -} -- cgit