diff options
author | Luke Leighton <lkcl@samba.org> | 1999-09-21 21:28:27 +0000 |
---|---|---|
committer | Luke Leighton <lkcl@samba.org> | 1999-09-21 21:28:27 +0000 |
commit | d99eca020a255022dbc71f3671127343d75db59e (patch) | |
tree | 5cd7de499e2f32cef9d3648e99bba8ea6641e69e /source/rpc_client/cli_netlogon.c | |
parent | cc19d5cc5c20665beb3b7c5fcf7787d54e37ea71 (diff) | |
download | samba-d99eca020a255022dbc71f3671127343d75db59e.tar.gz samba-d99eca020a255022dbc71f3671127343d75db59e.tar.xz samba-d99eca020a255022dbc71f3671127343d75db59e.zip |
split matthew's sync command (only currently called from smbpasswd)
into a separate module
Diffstat (limited to 'source/rpc_client/cli_netlogon.c')
-rw-r--r-- | source/rpc_client/cli_netlogon.c | 74 |
1 files changed, 1 insertions, 73 deletions
diff --git a/source/rpc_client/cli_netlogon.c b/source/rpc_client/cli_netlogon.c index 6f0d7e1c3a4..6b7db8ff6e9 100644 --- a/source/rpc_client/cli_netlogon.c +++ b/source/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; -} |