From c56e1c08cef107ff33a34346ceeca3475a102b19 Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Sun, 20 Apr 2008 14:05:25 +0200 Subject: [PATCH] Introduce rpc_pipe_np_smb_conn() This abstracts away all references to rpc_pipe_client->cli, the only reference is now in cli_pipe.c. --- source/lib/netapi/cm.c | 2 +- source/rpc_client/cli_pipe.c | 5 +++++ source/rpc_server/srv_spoolss_nt.c | 2 +- source/rpcclient/cmd_spoolss.c | 2 +- source/rpcclient/cmd_test.c | 6 ++++-- source/utils/net_rpc.c | 21 +++++++++++---------- 6 files changed, 23 insertions(+), 15 deletions(-) diff --git a/source/lib/netapi/cm.c b/source/lib/netapi/cm.c index 2e16b98ffba..ae1091c5044 100644 --- a/source/lib/netapi/cm.c +++ b/source/lib/netapi/cm.c @@ -99,7 +99,7 @@ static struct rpc_pipe_client *pipe_cm_find(struct cli_state *cli, for (p = pipe_connections; p; p = p->next) { - if (!p->pipe->cli) { + if (!rpc_pipe_np_smb_conn(p->pipe)) { *status = NT_STATUS_PIPE_EMPTY; return NULL; } diff --git a/source/rpc_client/cli_pipe.c b/source/rpc_client/cli_pipe.c index b0d6f8eafd6..1ea01c94f04 100644 --- a/source/rpc_client/cli_pipe.c +++ b/source/rpc_client/cli_pipe.c @@ -2140,6 +2140,11 @@ bool rpccli_is_pipe_idx(struct rpc_pipe_client *cli, int pipe_idx) return (cli->abstract_syntax == pipe_names[pipe_idx].abstr_syntax); } +struct cli_state *rpc_pipe_np_smb_conn(struct rpc_pipe_client *p) +{ + return p->cli; +} + static int rpc_pipe_destructor(struct rpc_pipe_client *p) { bool ret; diff --git a/source/rpc_server/srv_spoolss_nt.c b/source/rpc_server/srv_spoolss_nt.c index 722ad549510..4c5fcf53418 100644 --- a/source/rpc_server/srv_spoolss_nt.c +++ b/source/rpc_server/srv_spoolss_nt.c @@ -164,7 +164,7 @@ static void srv_spoolss_replycloseprinter(int snum, POLICY_HND *handle) /* if it's the last connection, deconnect the IPC$ share */ if (smb_connections==1) { - cli_shutdown( notify_cli_pipe->cli ); + cli_shutdown( rpc_pipe_np_smb_conn(notify_cli_pipe) ); notify_cli_pipe = NULL; /* The above call shuts downn the pipe also. */ messaging_deregister(smbd_messaging_context(), diff --git a/source/rpcclient/cmd_spoolss.c b/source/rpcclient/cmd_spoolss.c index eb42836b6c9..c89f9874467 100644 --- a/source/rpcclient/cmd_spoolss.c +++ b/source/rpcclient/cmd_spoolss.c @@ -2645,7 +2645,7 @@ static WERROR cmd_spoolss_printercmp(struct rpc_pipe_client *cli, { fstring printername, servername1, servername2; char *printername_path = NULL; - struct cli_state *cli_server1 = cli->cli; + struct cli_state *cli_server1 = rpc_pipe_np_smb_conn(cli); struct cli_state *cli_server2 = NULL; struct rpc_pipe_client *cli2 = NULL; POLICY_HND hPrinter1, hPrinter2; diff --git a/source/rpcclient/cmd_test.c b/source/rpcclient/cmd_test.c index f9ea5c0fc2d..dd956604cc5 100644 --- a/source/rpcclient/cmd_test.c +++ b/source/rpcclient/cmd_test.c @@ -30,10 +30,12 @@ static NTSTATUS cmd_testme(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, d_printf("testme\n"); - lsa_pipe = cli_rpc_pipe_open_noauth(cli->cli, PI_LSARPC, &status); + lsa_pipe = cli_rpc_pipe_open_noauth(rpc_pipe_np_smb_conn(cli), + PI_LSARPC, &status); if (lsa_pipe == NULL) goto done; - samr_pipe = cli_rpc_pipe_open_noauth(cli->cli, PI_SAMR, &status); + samr_pipe = cli_rpc_pipe_open_noauth(rpc_pipe_np_smb_conn(cli), + PI_SAMR, &status); if (samr_pipe == NULL) goto done; status = rpccli_lsa_open_policy(lsa_pipe, mem_ctx, False, diff --git a/source/utils/net_rpc.c b/source/utils/net_rpc.c index f6f0c4054ca..924398fc33b 100644 --- a/source/utils/net_rpc.c +++ b/source/utils/net_rpc.c @@ -1221,8 +1221,8 @@ static NTSTATUS rpc_sh_handle_user(TALLOC_CTX *mem_ctx, ZERO_STRUCT(domain_pol); ZERO_STRUCT(user_pol); - result = net_rpc_lookup_name(mem_ctx, pipe_hnd->cli, argv[0], - NULL, NULL, &sid, &type); + result = net_rpc_lookup_name(mem_ctx, rpc_pipe_np_smb_conn(pipe_hnd), + argv[0], NULL, NULL, &sid, &type); if (!NT_STATUS_IS_OK(result)) { d_fprintf(stderr, "Could not lookup %s: %s\n", argv[0], nt_errstr(result)); @@ -2087,8 +2087,8 @@ static NTSTATUS rpc_add_aliasmem(struct rpc_pipe_client *pipe_hnd, return NT_STATUS_UNSUCCESSFUL; } - result = get_sid_from_name(pipe_hnd->cli, mem_ctx, member, - &member_sid, &member_type); + result = get_sid_from_name(rpc_pipe_np_smb_conn(pipe_hnd), mem_ctx, + member, &member_sid, &member_type); if (!NT_STATUS_IS_OK(result)) { d_fprintf(stderr, "Could not lookup up group member %s\n", member); @@ -2282,8 +2282,8 @@ static NTSTATUS rpc_del_aliasmem(struct rpc_pipe_client *pipe_hnd, if (!sid_split_rid(&sid, &alias_rid)) return NT_STATUS_UNSUCCESSFUL; - result = get_sid_from_name(pipe_hnd->cli, mem_ctx, member, - &member_sid, &member_type); + result = get_sid_from_name(rpc_pipe_np_smb_conn(pipe_hnd), mem_ctx, + member, &member_sid, &member_type); if (!NT_STATUS_IS_OK(result)) { d_fprintf(stderr, "Could not lookup up group member %s\n", member); @@ -2736,7 +2736,8 @@ static NTSTATUS rpc_list_alias_members(struct rpc_pipe_client *pipe_hnd, return NT_STATUS_OK; } - lsa_pipe = cli_rpc_pipe_open_noauth(pipe_hnd->cli, PI_LSARPC, &result); + lsa_pipe = cli_rpc_pipe_open_noauth(rpc_pipe_np_smb_conn(pipe_hnd), + PI_LSARPC, &result); if (!lsa_pipe) { d_fprintf(stderr, "Couldn't open LSA pipe. Error was %s\n", nt_errstr(result) ); @@ -4480,7 +4481,7 @@ static void show_userlist(struct rpc_pipe_client *pipe_hnd, int fnum; SEC_DESC *share_sd = NULL; SEC_DESC *root_sd = NULL; - struct cli_state *cli = pipe_hnd->cli; + struct cli_state *cli = rpc_pipe_np_smb_conn(pipe_hnd); int i; union srvsvc_NetShareInfo info; WERROR result; @@ -5945,8 +5946,8 @@ static NTSTATUS vampire_trusted_domain(struct rpc_pipe_client *pipe_hnd, data = data_blob(info->password.password->data, info->password.password->length); - cleartextpwd = decrypt_trustdom_secret(pipe_hnd->cli->pwd.password, - &data); + cleartextpwd = decrypt_trustdom_secret( + rpc_pipe_np_smb_conn(pipe_hnd)->pwd.password, &data); if (cleartextpwd == NULL) { DEBUG(0,("retrieved NULL password\n")); -- 2.11.4.GIT