summaryrefslogtreecommitdiff
path: root/source3/rpc_client
diff options
context:
space:
mode:
authorGünther Deschner <gd@samba.org>2021-11-18 11:18:59 +0100
committerAndreas Schneider <asn@cryptomilk.org>2021-12-02 13:59:31 +0000
commit016429acaf76bde53bd4ab81b48be23c2bcc28e3 (patch)
treeed72344d50f93177a07e1b854814d6c45e96f7d6 /source3/rpc_client
parentb3bf5bbaf81de369c8f9415d903816a2d7424ffc (diff)
downloadsamba-016429acaf76bde53bd4ab81b48be23c2bcc28e3.tar.gz
s3:rpc_client: Pass remote name and socket to cli_rpc_pipe_open()
BUG: https://bugzilla.samba.org/show_bug.cgi?id=14767 Pair-Programmed-With: Andreas Schneider <asn@samba.org> Signed-off-by: Guenther Deschner <gd@samba.org> Signed-off-by: Andreas Schneider <asn@samba.org> Reviewed-by: Stefan Metzmacher <metze@samba.org>
Diffstat (limited to 'source3/rpc_client')
-rw-r--r--source3/rpc_client/cli_pipe.c40
1 files changed, 33 insertions, 7 deletions
diff --git a/source3/rpc_client/cli_pipe.c b/source3/rpc_client/cli_pipe.c
index 7c3b9051ca8..7ed48023357 100644
--- a/source3/rpc_client/cli_pipe.c
+++ b/source3/rpc_client/cli_pipe.c
@@ -3136,13 +3136,15 @@ static NTSTATUS rpc_pipe_open_np(struct cli_state *cli,
static NTSTATUS cli_rpc_pipe_open(struct cli_state *cli,
enum dcerpc_transport_t transport,
const struct ndr_interface_table *table,
+ const char *remote_name,
+ const struct sockaddr_storage *remote_sockaddr,
struct rpc_pipe_client **presult)
{
switch (transport) {
case NCACN_IP_TCP:
return rpc_pipe_open_tcp(NULL,
- smbXcli_conn_remote_name(cli->conn),
- smbXcli_conn_remote_sockaddr(cli->conn),
+ remote_name,
+ remote_sockaddr,
table, presult);
case NCACN_NP:
return rpc_pipe_open_np(cli, table, presult);
@@ -3163,8 +3165,17 @@ NTSTATUS cli_rpc_pipe_open_noauth_transport(struct cli_state *cli,
struct rpc_pipe_client *result;
struct pipe_auth_data *auth;
NTSTATUS status;
+ const char *remote_name = smbXcli_conn_remote_name(cli->conn);
+ const struct sockaddr_storage *remote_sockaddr =
+ smbXcli_conn_remote_sockaddr(cli->conn);
- status = cli_rpc_pipe_open(cli, transport, table, &result);
+
+ status = cli_rpc_pipe_open(cli,
+ transport,
+ table,
+ remote_name,
+ remote_sockaddr,
+ &result);
if (!NT_STATUS_IS_OK(status)) {
return status;
}
@@ -3255,8 +3266,15 @@ NTSTATUS cli_rpc_pipe_open_with_creds(struct cli_state *cli,
struct pipe_auth_data *auth = NULL;
const char *target_service = table->authservices->names[0];
NTSTATUS status;
-
- status = cli_rpc_pipe_open(cli, transport, table, &result);
+ const struct sockaddr_storage *remote_sockaddr =
+ smbXcli_conn_remote_sockaddr(cli->conn);
+
+ status = cli_rpc_pipe_open(cli,
+ transport,
+ table,
+ server,
+ remote_sockaddr,
+ &result);
if (!NT_STATUS_IS_OK(status)) {
return status;
}
@@ -3306,8 +3324,16 @@ NTSTATUS cli_rpc_pipe_open_bind_schannel(
struct cli_credentials *cli_creds;
enum dcerpc_AuthLevel auth_level;
NTSTATUS status;
-
- status = cli_rpc_pipe_open(cli, transport, table, &rpccli);
+ const char *remote_name = smbXcli_conn_remote_name(cli->conn);
+ const struct sockaddr_storage *remote_sockaddr =
+ smbXcli_conn_remote_sockaddr(cli->conn);
+
+ status = cli_rpc_pipe_open(cli,
+ transport,
+ table,
+ remote_name,
+ remote_sockaddr,
+ &rpccli);
if (!NT_STATUS_IS_OK(status)) {
return status;
}