diff options
Diffstat (limited to 'source3/rpc_client')
-rw-r--r-- | source3/rpc_client/cli_lsarpc.c | 20 | ||||
-rw-r--r-- | source3/rpc_client/cli_netlogon.c | 16 |
2 files changed, 21 insertions, 15 deletions
diff --git a/source3/rpc_client/cli_lsarpc.c b/source3/rpc_client/cli_lsarpc.c index 6570903e79..2f9952f5cb 100644 --- a/source3/rpc_client/cli_lsarpc.c +++ b/source3/rpc_client/cli_lsarpc.c @@ -35,7 +35,7 @@ extern int DEBUGLEVEL; /**************************************************************************** do a LSA Open Policy ****************************************************************************/ -BOOL do_lsa_open_policy(struct cli_state *cli, int t_idx, uint16 fnum, +BOOL do_lsa_open_policy(struct cli_state *cli, char *server_name, POLICY_HND *hnd) { prs_struct rbuf; @@ -59,7 +59,7 @@ BOOL do_lsa_open_policy(struct cli_state *cli, int t_idx, uint16 fnum, lsa_io_q_open_pol("", &q_o, &buf, 0); /* send the data on \PIPE\ */ - if (rpc_api_pipe_req(cli, t_idx, fnum, LSA_OPENPOLICY, &buf, &rbuf)) + if (rpc_api_pipe_req(cli, LSA_OPENPOLICY, &buf, &rbuf)) { LSA_R_OPEN_POL r_o; BOOL p; @@ -91,7 +91,7 @@ BOOL do_lsa_open_policy(struct cli_state *cli, int t_idx, uint16 fnum, /**************************************************************************** do a LSA Query Info Policy ****************************************************************************/ -BOOL do_lsa_query_info_pol(struct cli_state *cli, int t_idx, uint16 fnum, +BOOL do_lsa_query_info_pol(struct cli_state *cli, POLICY_HND *hnd, uint16 info_class, fstring domain_name, fstring domain_sid) { @@ -116,7 +116,7 @@ BOOL do_lsa_query_info_pol(struct cli_state *cli, int t_idx, uint16 fnum, lsa_io_q_query("", &q_q, &buf, 0); /* send the data on \PIPE\ */ - if (rpc_api_pipe_req(cli, t_idx, fnum, LSA_QUERYINFOPOLICY, &buf, &rbuf)) + if (rpc_api_pipe_req(cli, LSA_QUERYINFOPOLICY, &buf, &rbuf)) { LSA_R_QUERY_INFO r_q; BOOL p; @@ -148,9 +148,8 @@ BOOL do_lsa_query_info_pol(struct cli_state *cli, int t_idx, uint16 fnum, { char *dom_name = unistrn2(r_q.dom.id3.uni_domain_name.buffer, r_q.dom.id3.uni_domain_name.uni_str_len); - char *dom_sid = dom_sid_to_string(&(r_q.dom.id3.dom_sid.sid)); fstrcpy(domain_name, dom_name); - pstrcpy(domain_sid , dom_sid); + sid_to_string(domain_sid, &(r_q.dom.id3.dom_sid.sid)); valid_response = True; break; @@ -159,9 +158,8 @@ BOOL do_lsa_query_info_pol(struct cli_state *cli, int t_idx, uint16 fnum, { char *dom_name = unistrn2(r_q.dom.id5.uni_domain_name.buffer, r_q.dom.id5.uni_domain_name.uni_str_len); - char *dom_sid = dom_sid_to_string(&(r_q.dom.id5.dom_sid.sid)); fstrcpy(domain_name, dom_name); - pstrcpy(domain_sid , dom_sid); + sid_to_string(domain_sid, &(r_q.dom.id5.dom_sid.sid)); valid_response = True; break; @@ -189,7 +187,7 @@ BOOL do_lsa_query_info_pol(struct cli_state *cli, int t_idx, uint16 fnum, /**************************************************************************** do a LSA Close ****************************************************************************/ -BOOL do_lsa_close(struct cli_state *cli, int t_idx, uint16 fnum, POLICY_HND *hnd) +BOOL do_lsa_close(struct cli_state *cli, POLICY_HND *hnd) { prs_struct rbuf; prs_struct buf; @@ -212,7 +210,7 @@ BOOL do_lsa_close(struct cli_state *cli, int t_idx, uint16 fnum, POLICY_HND *hnd lsa_io_q_close("", &q_c, &buf, 0); /* send the data on \PIPE\ */ - if (rpc_api_pipe_req(cli, t_idx, fnum, LSA_CLOSE, &buf, &rbuf)) + if (rpc_api_pipe_req(cli, LSA_CLOSE, &buf, &rbuf)) { LSA_R_CLOSE r_c; BOOL p; @@ -253,3 +251,5 @@ BOOL do_lsa_close(struct cli_state *cli, int t_idx, uint16 fnum, POLICY_HND *hnd return valid_close; } + + diff --git a/source3/rpc_client/cli_netlogon.c b/source3/rpc_client/cli_netlogon.c index 757c5166e8..9af2a05f27 100644 --- a/source3/rpc_client/cli_netlogon.c +++ b/source3/rpc_client/cli_netlogon.c @@ -30,6 +30,7 @@ #include "includes.h" extern int DEBUGLEVEL; +extern pstring scope; extern pstring global_myname; extern fstring global_myworkgroup; @@ -474,8 +475,8 @@ static BOOL modify_trust_password( char *domain, char *remote_machine, unsigned char orig_trust_passwd_hash[16], unsigned char new_trust_passwd_hash[16]) { - struct in_addr dest_ip; struct cli_state cli; + struct nmb_name calling, called; ZERO_STRUCT(cli); if(cli_initialise(&cli) == False) { @@ -483,24 +484,29 @@ static BOOL modify_trust_password( char *domain, char *remote_machine, return False; } - if(!resolve_name( remote_machine, &dest_ip)) { + if(!resolve_name( remote_machine, &cli.dest_ip)) { DEBUG(0,("modify_trust_password: Can't resolve address for %s\n", remote_machine)); return False; } - if (ismyip(dest_ip)) { + if (ismyip(cli.dest_ip)) { DEBUG(0,("modify_trust_password: Machine %s is one of our addresses. Cannot add \ to ourselves.\n", remote_machine)); return False; } - if (!cli_connect(&cli, remote_machine, &dest_ip)) { + if (!cli_connect(&cli, remote_machine, &cli.dest_ip)) { DEBUG(0,("modify_trust_password: unable to connect to SMB server on \ machine %s. Error was : %s.\n", remote_machine, cli_errstr(&cli) )); return False; } - if (!cli_session_request(&cli, remote_machine, 0x20, global_myname)) { + + make_nmb_name(&calling, global_myname , 0x0 , scope); + make_nmb_name(&called , remote_machine, 0x20, scope); + + if (!cli_session_request(&cli, &calling, &called)) + { DEBUG(0,("modify_trust_password: machine %s rejected the session setup. \ Error was : %s.\n", remote_machine, cli_errstr(&cli) )); cli_shutdown(&cli); |