diff options
author | Luke Leighton <lkcl@samba.org> | 1999-11-29 21:47:14 +0000 |
---|---|---|
committer | Luke Leighton <lkcl@samba.org> | 1999-11-29 21:47:14 +0000 |
commit | 0d44ff9a765f2e89be8b0ee99ec7c907e7c225c3 (patch) | |
tree | d0c87722e19013a188c29096d35205ba675c7d89 /source3/rpc_client/cli_login.c | |
parent | 44334ace985b55295dfc1c93e92d46e01d39fb97 (diff) | |
download | samba-0d44ff9a765f2e89be8b0ee99ec7c907e7c225c3.tar.gz samba-0d44ff9a765f2e89be8b0ee99ec7c907e7c225c3.tar.bz2 samba-0d44ff9a765f2e89be8b0ee99ec7c907e7c225c3.zip |
attempting to resolve the issue that multiple servers often specified in
parameters to connect to \PIPE\NETLOGON.
(This used to be commit d1986ade30bdcac1f49707221a3e5a5ae597ce62)
Diffstat (limited to 'source3/rpc_client/cli_login.c')
-rw-r--r-- | source3/rpc_client/cli_login.c | 28 |
1 files changed, 22 insertions, 6 deletions
diff --git a/source3/rpc_client/cli_login.c b/source3/rpc_client/cli_login.c index 6bb9fed063..832731d92d 100644 --- a/source3/rpc_client/cli_login.c +++ b/source3/rpc_client/cli_login.c @@ -29,10 +29,11 @@ extern int DEBUGLEVEL; Initialize domain session credentials. ****************************************************************************/ -uint32 cli_nt_setup_creds( const char* srv_name, const char* myhostname, +uint32 cli_nt_setup_creds( char* servers, const char* myhostname, const char* trust_acct, unsigned char trust_pwd[16], - uint16 sec_chan) + uint16 sec_chan, + char *srv_name) { DOM_CHAL clnt_chal; DOM_CHAL srv_chal; @@ -41,12 +42,25 @@ uint32 cli_nt_setup_creds( const char* srv_name, const char* myhostname, uint8 sess_key[16]; DOM_CRED clnt_cred; + /******************* make connection **********************/ + struct cli_connection *con = NULL; + + if (!cli_connection_init_list(servers, PIPE_NETLOGON, &con)) + { + return False; + } + + if (!cli_con_get_srvname(con, srv_name)) + { + return False; + } + /******************* Request Challenge ********************/ generate_random_buffer( clnt_chal.data, 8, False); /* send a client challenge; receive a server challenge */ - ret = cli_net_req_chal(srv_name, myhostname, &clnt_chal, &srv_chal); + ret = cli_net_req_chal(servers, myhostname, &clnt_chal, &srv_chal); if (ret != 0) { DEBUG(1,("cli_nt_setup_creds: request challenge failed\n")); @@ -233,7 +247,7 @@ BOOL cli_nt_logoff(const char* srv_name, const char* myhostname, /**************************************************************************** NT SAM database sync ****************************************************************************/ -BOOL net_sam_sync(const char* srv_name, const char* myhostname, +BOOL net_sam_sync(char* servers, const char* myhostname, const char* trust_acct, uchar trust_passwd[16], SAM_DELTA_HDR hdr_deltas[MAX_SAM_DELTAS], @@ -241,15 +255,17 @@ BOOL net_sam_sync(const char* srv_name, const char* myhostname, uint32 *num_deltas) { BOOL res = True; + fstring srv_name; *num_deltas = 0; DEBUG(5,("Attempting SAM sync with PDC: %s\n", srv_name)); - res = res ? cli_nt_setup_creds( srv_name, myhostname, + res = res ? cli_nt_setup_creds( servers, myhostname, trust_acct, - trust_passwd, SEC_CHAN_BDC) == 0x0 : False; + trust_passwd, SEC_CHAN_BDC, + srv_name) == 0x0 : False; memset(trust_passwd, 0, 16); |