diff options
author | Günther Deschner <gd@samba.org> | 2021-11-18 11:18:59 +0100 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2021-12-02 13:59:31 +0000 |
commit | 016429acaf76bde53bd4ab81b48be23c2bcc28e3 (patch) | |
tree | ed72344d50f93177a07e1b854814d6c45e96f7d6 /source3/rpc_client | |
parent | b3bf5bbaf81de369c8f9415d903816a2d7424ffc (diff) | |
download | samba-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.c | 40 |
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; } |