summaryrefslogtreecommitdiff
path: root/source3
diff options
context:
space:
mode:
Diffstat (limited to 'source3')
-rw-r--r--source3/rpc_client/cli_pipe.c38
1 files changed, 36 insertions, 2 deletions
diff --git a/source3/rpc_client/cli_pipe.c b/source3/rpc_client/cli_pipe.c
index 8f410379ab..cec2797a73 100644
--- a/source3/rpc_client/cli_pipe.c
+++ b/source3/rpc_client/cli_pipe.c
@@ -2796,7 +2796,7 @@ NTSTATUS rpc_pipe_open_ncalrpc(TALLOC_CTX *mem_ctx, const char *socket_path,
*
****************************************************************************/
-static struct rpc_pipe_client *cli_rpc_pipe_open(struct cli_state *cli, int pipe_idx, NTSTATUS *perr)
+static struct rpc_pipe_client *rpc_pipe_open_np(struct cli_state *cli, int pipe_idx, NTSTATUS *perr)
{
struct rpc_pipe_client *result;
int fnum;
@@ -2849,7 +2849,7 @@ static struct rpc_pipe_client *cli_rpc_pipe_open(struct cli_state *cli, int pipe
fnum = cli_nt_create(cli, result->trans.np.pipe_name,
DESIRED_ACCESS_PIPE);
if (fnum == -1) {
- DEBUG(1,("cli_rpc_pipe_open: cli_nt_create failed on pipe %s "
+ DEBUG(1,("rpc_pipe_open_np: cli_nt_create failed on pipe %s "
"to machine %s. Error was %s\n",
result->trans.np.pipe_name, cli->desthost,
cli_errstr(cli)));
@@ -2869,6 +2869,40 @@ static struct rpc_pipe_client *cli_rpc_pipe_open(struct cli_state *cli, int pipe
}
/****************************************************************************
+ Open a pipe to a remote server.
+ ****************************************************************************/
+
+static struct rpc_pipe_client *cli_rpc_pipe_open(struct cli_state *cli,
+ int pipe_idx,
+ NTSTATUS *perr)
+{
+ struct rpc_pipe_client *result;
+
+ *perr = NT_STATUS_PIPE_NOT_AVAILABLE;
+
+ switch (pipe_idx) {
+ case PI_DRSUAPI:
+ *perr = rpc_pipe_open_tcp(NULL, cli->desthost,
+ &ndr_table_drsuapi.syntax_id,
+ &result);
+ if (!NT_STATUS_IS_OK(*perr)) {
+ return NULL;
+ }
+ break;
+ default:
+ result = rpc_pipe_open_np(cli, pipe_idx, perr);
+ if (result == NULL) {
+ return NULL;
+ }
+ break;
+ }
+
+ *perr = NT_STATUS_OK;
+
+ return result;
+}
+
+/****************************************************************************
Open a named pipe to an SMB server and bind anonymously.
****************************************************************************/