diff options
Diffstat (limited to 'source3/rpc_client')
-rw-r--r-- | source3/rpc_client/cli_login.c | 15 | ||||
-rw-r--r-- | source3/rpc_client/cli_netlogon.c | 16 | ||||
-rw-r--r-- | source3/rpc_client/cli_trust.c | 7 |
3 files changed, 23 insertions, 15 deletions
diff --git a/source3/rpc_client/cli_login.c b/source3/rpc_client/cli_login.c index de0c9ac62a..790fddd7c3 100644 --- a/source3/rpc_client/cli_login.c +++ b/source3/rpc_client/cli_login.c @@ -31,8 +31,9 @@ extern pstring global_myname; Initialize domain session credentials. ****************************************************************************/ -BOOL cli_nt_setup_creds(struct cli_state *cli, unsigned char mach_pwd[16]) +NTSTATUS cli_nt_setup_creds(struct cli_state *cli, unsigned char mach_pwd[16]) { + NTSTATUS result; DOM_CHAL clnt_chal; DOM_CHAL srv_chal; @@ -46,7 +47,7 @@ BOOL cli_nt_setup_creds(struct cli_state *cli, unsigned char mach_pwd[16]) if (!cli_net_req_chal(cli, &clnt_chal, &srv_chal)) { DEBUG(0,("cli_nt_setup_creds: request challenge failed\n")); - return False; + return NT_STATUS_UNSUCCESSFUL; } /**************** Long-term Session key **************/ @@ -66,14 +67,16 @@ BOOL cli_nt_setup_creds(struct cli_state *cli, unsigned char mach_pwd[16]) * Receive an auth-2 challenge response and check it. */ - if (!cli_net_auth2(cli, (lp_server_role() == ROLE_DOMAIN_MEMBER) ? - SEC_CHAN_WKSTA : SEC_CHAN_BDC, 0x000001ff, &srv_chal)) + result = cli_net_auth2(cli, (lp_server_role() == ROLE_DOMAIN_MEMBER) ? + SEC_CHAN_WKSTA : SEC_CHAN_BDC, 0x000001ff, &srv_chal); + + if (!NT_STATUS_IS_OK(result)) { DEBUG(0,("cli_nt_setup_creds: auth2 challenge failed\n")); - return False; + return result; } - return True; + return NT_STATUS_OK; } /**************************************************************************** diff --git a/source3/rpc_client/cli_netlogon.c b/source3/rpc_client/cli_netlogon.c index b1f4fe0257..324f5dc90f 100644 --- a/source3/rpc_client/cli_netlogon.c +++ b/source3/rpc_client/cli_netlogon.c @@ -118,13 +118,14 @@ Ensure that the server credential returned matches the session key encrypt of the server challenge originally received. JRA. ****************************************************************************/ -BOOL cli_net_auth2(struct cli_state *cli, uint16 sec_chan, - uint32 neg_flags, DOM_CHAL *srv_chal) +NTSTATUS cli_net_auth2(struct cli_state *cli, uint16 sec_chan, + uint32 neg_flags, DOM_CHAL *srv_chal) { prs_struct rbuf; prs_struct buf; NET_Q_AUTH_2 q_a; BOOL ok = False; + NTSTATUS result = NT_STATUS_UNSUCCESSFUL; prs_init(&buf , 1024, cli->mem_ctx, MARSHALL); prs_init(&rbuf, 0, cli->mem_ctx, UNMARSHALL); @@ -144,7 +145,7 @@ BOOL cli_net_auth2(struct cli_state *cli, uint16 sec_chan, DEBUG(0,("cli_net_auth2: Error : failed to marshall NET_Q_AUTH_2 struct.\n")); prs_mem_free(&buf); prs_mem_free(&rbuf); - return False; + return result; } /* send the data on \PIPE\ */ @@ -153,11 +154,12 @@ BOOL cli_net_auth2(struct cli_state *cli, uint16 sec_chan, NET_R_AUTH_2 r_a; ok = net_io_r_auth_2("", &r_a, &rbuf, 0); - - if (ok && !NT_STATUS_IS_OK(r_a.status)) + result = r_a.status; + + if (ok && !NT_STATUS_IS_OK(result)) { /* report error code */ - DEBUG(0,("cli_net_auth2: Error %s\n", get_nt_error_msg(r_a.status))); + DEBUG(0,("cli_net_auth2: Error %s\n", get_nt_error_msg(result))); ok = False; } @@ -200,7 +202,7 @@ password ?).\n", cli->desthost )); prs_mem_free(&buf); prs_mem_free(&rbuf); - return ok; + return result; } /**************************************************************************** diff --git a/source3/rpc_client/cli_trust.c b/source3/rpc_client/cli_trust.c index eed6ba7b2b..d7faf4975f 100644 --- a/source3/rpc_client/cli_trust.c +++ b/source3/rpc_client/cli_trust.c @@ -35,6 +35,7 @@ static BOOL modify_trust_password( char *domain, char *remote_machine, unsigned char new_trust_passwd_hash[16]) { struct cli_state cli; + NTSTATUS result; ZERO_STRUCT(cli); if(cli_initialise(&cli) == NULL) { @@ -131,9 +132,11 @@ machine %s. Error was : %s.\n", remote_machine, cli_errstr(&cli))); return False; } - if(cli_nt_setup_creds(&cli, orig_trust_passwd_hash) == False) { + result = cli_nt_setup_creds(&cli, orig_trust_passwd_hash); + + if (!NT_STATUS_IS_OK(result)) { DEBUG(0,("modify_trust_password: unable to setup the PDC credentials to machine \ -%s. Error was : %s.\n", remote_machine, cli_errstr(&cli))); +%s. Error was : %s.\n", remote_machine, get_nt_error_msg(result))); cli_nt_session_close(&cli); cli_ulogoff(&cli); cli_shutdown(&cli); |