[SCM] Samba Shared Repository - branch v3-3-test updated - release-3-2-0pre2-3377-g26a40f7

Volker Lendecke vlendec at samba.org
Mon Jul 21 12:38:37 GMT 2008


The branch, v3-3-test has been updated
       via  26a40f708a44fa460459a43014a101a383586e54 (commit)
       via  ffd2ff5325ef24f08dcb63e4561f5f62bffef6d3 (commit)
       via  287ffc17a072d5e1a5b0e1ecae089faf67b814b7 (commit)
       via  6d2209ba5da0937ce17e71951a1628ff1f5deacb (commit)
       via  e949b9d11f439c32c85a3cd9ae4c1a859a4c284a (commit)
       via  b60a681dd09349426aa522d697abacf62ebfdaf2 (commit)
       via  e89bbab1b875a0b55b70913dcc1e3e73137c8b90 (commit)
       via  40247e8d3d53502fa8d7cc6b3eb9ed43f51142f3 (commit)
       via  0df0e81784362c36a79954c6b9e3b341ea59fb6d (commit)
       via  ed4a447103cd9ada59222d79f5784818fe033209 (commit)
       via  e02a550527307f7b300d3fe13631e2d29dbc5e06 (commit)
       via  2e60701e8d41132f90e64a86bccd99cc188d38c9 (commit)
       via  0f77746f36b98acc5171727fa3fc236af9fd2000 (commit)
       via  85c8363d5179e7053adc05e8abce2fb26cf9b968 (commit)
       via  850166ec0d17eb85a0c921dc3b966fac0677af4a (commit)
       via  85db87c451dacf80e9575c04e9e08c625b3f1199 (commit)
       via  726e56c72fdb685ab5eddefd2fd8b043dc38d6ad (commit)
      from  25cd227aaecf91dfa3114ae0fd2b47c783434aad (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-3-test


- Log -----------------------------------------------------------------
commit 26a40f708a44fa460459a43014a101a383586e54
Author: Volker Lendecke <vl at samba.org>
Date:   Mon Jul 21 13:30:45 2008 +0200

    YESS -- remove the PI_* pipe constants

commit ffd2ff5325ef24f08dcb63e4561f5f62bffef6d3
Author: Volker Lendecke <vl at samba.org>
Date:   Mon Jul 21 13:04:41 2008 +0200

    Make idl: cli_do_rpc_ndr does not use pipe_idx anymore

commit 287ffc17a072d5e1a5b0e1ecae089faf67b814b7
Author: Volker Lendecke <vl at samba.org>
Date:   Mon Jul 21 13:04:13 2008 +0200

    Remove unused function rpccli_is_pipe_idx

commit 6d2209ba5da0937ce17e71951a1628ff1f5deacb
Author: Volker Lendecke <vl at samba.org>
Date:   Mon Jul 21 12:50:32 2008 +0200

    Refactoring: CLI_DO_RPC_* uses interface instead of pipe_idx

commit e949b9d11f439c32c85a3cd9ae4c1a859a4c284a
Author: Volker Lendecke <vl at samba.org>
Date:   Mon Jul 21 12:49:50 2008 +0200

    Remove a reference to pipe_idx

commit b60a681dd09349426aa522d697abacf62ebfdaf2
Author: Volker Lendecke <vl at samba.org>
Date:   Mon Jul 21 12:05:46 2008 +0200

    Remove some unused code

commit e89bbab1b875a0b55b70913dcc1e3e73137c8b90
Author: Volker Lendecke <vl at samba.org>
Date:   Mon Jul 21 12:04:44 2008 +0200

    Remove one reference to PI_NETLOGON

commit 40247e8d3d53502fa8d7cc6b3eb9ed43f51142f3
Author: Volker Lendecke <vl at samba.org>
Date:   Mon Jul 21 12:01:12 2008 +0200

    Remove one reference to PI_LSARPC

commit 0df0e81784362c36a79954c6b9e3b341ea59fb6d
Author: Volker Lendecke <vl at samba.org>
Date:   Mon Jul 21 11:57:11 2008 +0200

    Remove some fully outdated sample code

commit ed4a447103cd9ada59222d79f5784818fe033209
Author: Volker Lendecke <vl at samba.org>
Date:   Sun Jul 20 18:48:44 2008 +0200

    Remove now unused cli_get_pipe_name

commit e02a550527307f7b300d3fe13631e2d29dbc5e06
Author: Volker Lendecke <vl at samba.org>
Date:   Sun Jul 20 18:46:13 2008 +0200

    Remove now unused cli_get_pipe_idx

commit 2e60701e8d41132f90e64a86bccd99cc188d38c9
Author: Volker Lendecke <vl at samba.org>
Date:   Sun Jul 20 18:45:39 2008 +0200

    Remove now unused cli_get_iface

commit 0f77746f36b98acc5171727fa3fc236af9fd2000
Author: Volker Lendecke <vl at samba.org>
Date:   Sun Jul 20 18:44:32 2008 +0200

    Refactoring: connect_dst_pipe uses ndr_syntax_id instead of pipe_idx

commit 85c8363d5179e7053adc05e8abce2fb26cf9b968
Author: Volker Lendecke <vl at samba.org>
Date:   Sun Jul 20 18:40:31 2008 +0200

    Refactoring: net_sh_run uses ndr_syntax_id instead of pipe_idx

commit 850166ec0d17eb85a0c921dc3b966fac0677af4a
Author: Volker Lendecke <vl at samba.org>
Date:   Sun Jul 20 18:36:31 2008 +0200

    Refactoring: run_rpc_command uses ndr_syntax_id instead of pipe_idx

commit 85db87c451dacf80e9575c04e9e08c625b3f1199
Author: Volker Lendecke <vl at samba.org>
Date:   Sun Jul 20 18:17:52 2008 +0200

    Refactoring: rpcclient uses ndr_syntax_id instead of pipe_idx

commit 726e56c72fdb685ab5eddefd2fd8b043dc38d6ad
Author: Volker Lendecke <vl at samba.org>
Date:   Sun Jul 20 17:59:30 2008 +0200

    Refactoring: libnetapi_open_pipe takes an interface instead of pipe_idx

-----------------------------------------------------------------------

Summary of changes:
 source/include/proto.h                   |    9 +-
 source/include/rpc_client.h              |    8 +-
 source/include/smb.h                     |   18 ---
 source/lib/netapi/cm.c                   |   76 ++++++------
 source/lib/netapi/getdc.c                |    9 +-
 source/lib/netapi/group.c                |   21 ++-
 source/lib/netapi/joindomain.c           |   12 ++-
 source/lib/netapi/localgroup.c           |   15 ++-
 source/lib/netapi/netapi_private.h       |    4 +-
 source/lib/netapi/serverinfo.c           |    9 +-
 source/lib/netapi/user.c                 |   15 ++-
 source/librpc/gen_ndr/cli_dfs.c          |   23 ----
 source/librpc/gen_ndr/cli_drsuapi.c      |   25 ----
 source/librpc/gen_ndr/cli_dssetup.c      |   11 --
 source/librpc/gen_ndr/cli_echo.c         |   10 --
 source/librpc/gen_ndr/cli_epmapper.c     |    8 --
 source/librpc/gen_ndr/cli_eventlog.c     |   24 ----
 source/librpc/gen_ndr/cli_initshutdown.c |    3 -
 source/librpc/gen_ndr/cli_lsa.c          |   82 -------------
 source/librpc/gen_ndr/cli_netlogon.c     |   47 -------
 source/librpc/gen_ndr/cli_ntsvcs.c       |   65 ----------
 source/librpc/gen_ndr/cli_samr.c         |   68 -----------
 source/librpc/gen_ndr/cli_srvsvc.c       |   54 ---------
 source/librpc/gen_ndr/cli_svcctl.c       |   44 -------
 source/librpc/gen_ndr/cli_winreg.c       |   35 ------
 source/librpc/gen_ndr/cli_wkssvc.c       |   31 -----
 source/libsmb/libsmb_xattr.c             |    3 +-
 source/rpc_client/cli_lsarpc.c           |  102 ----------------
 source/rpc_client/cli_netlogon.c         |   94 +--------------
 source/rpc_client/cli_pipe.c             |   45 +------
 source/rpc_client/cli_spoolss.c          |  104 ++++++++--------
 source/rpc_client/cli_spoolss_notify.c   |   10 +-
 source/rpc_client/cli_svcctl.c           |   11 +-
 source/rpc_client/ndr.c                  |    5 +-
 source/rpcclient/cmd_dfs.c               |   12 +-
 source/rpcclient/cmd_drsuapi.c           |    6 +-
 source/rpcclient/cmd_dssetup.c           |    2 +-
 source/rpcclient/cmd_echo.c              |    8 +-
 source/rpcclient/cmd_lsarpc.c            |   42 ++++----
 source/rpcclient/cmd_netlogon.c          |   38 +++---
 source/rpcclient/cmd_ntsvcs.c            |   12 +-
 source/rpcclient/cmd_samr.c              |   66 +++++-----
 source/rpcclient/cmd_shutdown.c          |    4 +-
 source/rpcclient/cmd_spoolss.c           |   58 +++++-----
 source/rpcclient/cmd_srvsvc.c            |   26 ++--
 source/rpcclient/cmd_test.c              |    2 +-
 source/rpcclient/cmd_wkssvc.c            |    8 +-
 source/rpcclient/rpcclient.c             |   64 ++++++-----
 source/rpcclient/rpcclient.h             |    2 +-
 source/utils/net.h                       |    2 +-
 source/utils/net_dom.c                   |   11 +-
 source/utils/net_proto.h                 |    5 +-
 source/utils/net_rpc.c                   |  192 ++++++++++++++++--------------
 source/utils/net_rpc_audit.c             |   10 +-
 source/utils/net_rpc_printer.c           |   15 ++-
 source/utils/net_rpc_registry.c          |   18 ++--
 source/utils/net_rpc_rights.c            |   12 +-
 source/utils/net_rpc_samsync.c           |   10 +-
 source/utils/net_rpc_service.c           |   12 +-
 source/utils/net_rpc_sh_acct.c           |   16 ++--
 source/utils/net_rpc_shell.c             |    5 +-
 source/utils/net_util.c                  |    5 +-
 62 files changed, 520 insertions(+), 1243 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/include/proto.h b/source/include/proto.h
index 2612953..f31eee8 100644
--- a/source/include/proto.h
+++ b/source/include/proto.h
@@ -7073,7 +7073,6 @@ NTSTATUS rpc_pipe_bind(struct rpc_pipe_client *cli,
 		       struct cli_pipe_auth_data *auth);
 unsigned int rpccli_set_timeout(struct rpc_pipe_client *cli,
 				unsigned int timeout);
-bool rpccli_is_pipe_idx(struct rpc_pipe_client *cli, int pipe_idx);
 bool rpccli_get_pwd_hash(struct rpc_pipe_client *cli, uint8_t nt_hash[16]);
 struct cli_state *rpc_pipe_np_smb_conn(struct rpc_pipe_client *p);
 NTSTATUS rpccli_anon_bind_data(TALLOC_CTX *mem_ctx,
@@ -7707,7 +7706,7 @@ void init_srvsvc_NetConnInfo1(struct srvsvc_NetConnInfo1 *r,
 /* The following definitions come from rpc_client/ndr.c  */
 
 NTSTATUS cli_do_rpc_ndr(struct rpc_pipe_client *cli,
-			TALLOC_CTX *mem_ctx, int p_idx,
+			TALLOC_CTX *mem_ctx,
 			const struct ndr_interface_table *table,
 			uint32 opnum, void *r);
 
@@ -7910,9 +7909,9 @@ bool prs_data_blob(prs_struct *prs, DATA_BLOB *blob, TALLOC_CTX *mem_ctx);
 
 /* The following definitions come from rpc_parse/parse_rpc.c  */
 
-const char *cli_get_pipe_name(int pipe_idx);
-int cli_get_pipe_idx(const RPC_IFACE *syntax);
-const struct ndr_syntax_id *cli_get_iface(int pipe_idx);
+const char *cli_get_pipe_name_from_iface(TALLOC_CTX *mem_ctx,
+					 struct cli_state *cli,
+					 const struct ndr_syntax_id *interface);
 void init_rpc_hdr(RPC_HDR *hdr, enum RPC_PKT_TYPE pkt_type, uint8 flags,
 				uint32 call_id, int data_len, int auth_len);
 bool smb_io_rpc_hdr(const char *desc,  RPC_HDR *rpc, prs_struct *ps, int depth);
diff --git a/source/include/rpc_client.h b/source/include/rpc_client.h
index 466370e..d1af6f9 100644
--- a/source/include/rpc_client.h
+++ b/source/include/rpc_client.h
@@ -42,10 +42,10 @@
 
 /* macro to expand cookie-cutter code in cli_xxx() using rpc_api_pipe_req() */
 
-#define CLI_DO_RPC_INTERNAL( pcli, ctx, p_idx, opnum, q_in, r_out, \
+#define CLI_DO_RPC_INTERNAL( pcli, ctx, interface, opnum, q_in, r_out, \
                              q_ps, r_ps, q_io_fn, r_io_fn, default_error, copy_sess_key ) \
 {\
-	SMB_ASSERT(pcli->pipe_idx == p_idx); \
+	SMB_ASSERT(ndr_syntax_id_equal(&pcli->abstract_syntax, interface)); \
 	if (!prs_init( &q_ps, RPC_MAX_PDU_FRAG_LEN, ctx, MARSHALL )) { \
 		return NT_STATUS_NO_MEMORY;\
 	}\
@@ -90,10 +90,10 @@
 
 /* Arrrgg. Same but with WERRORS. Needed for registry code. */
 
-#define CLI_DO_RPC_WERR( pcli, ctx, p_idx, opnum, q_in, r_out, \
+#define CLI_DO_RPC_WERR( pcli, ctx, interface, opnum, q_in, r_out, \
                              q_ps, r_ps, q_io_fn, r_io_fn, default_error ) \
 {\
-	SMB_ASSERT(rpccli_is_pipe_idx(pcli, p_idx)); \
+	SMB_ASSERT(ndr_syntax_id_equal(&pcli->abstract_syntax, interface)); \
 	if (!prs_init( &q_ps, RPC_MAX_PDU_FRAG_LEN, ctx, MARSHALL )) { \
 		return WERR_NOMEM;\
 	}\
diff --git a/source/include/smb.h b/source/include/smb.h
index eadbd71..32ba8a2 100644
--- a/source/include/smb.h
+++ b/source/include/smb.h
@@ -174,24 +174,6 @@ typedef uint32 codepoint_t;
 /* pipe string names */
 #define PIPE_LANMAN   "\\PIPE\\LANMAN"
 
-#define PI_LSARPC		0
-#define PI_DSSETUP		1
-#define PI_SAMR			2
-#define PI_NETLOGON		3
-#define PI_SRVSVC		4
-#define PI_WKSSVC		5
-#define PI_WINREG		6
-#define PI_SPOOLSS		7
-#define PI_NETDFS		8
-#define PI_RPCECHO 		9
-#define PI_INITSHUTDOWN		10
-#define PI_SVCCTL		11
-#define PI_EVENTLOG 		12
-#define PI_NTSVCS		13
-#define PI_EPMAPPER		14
-#define PI_DRSUAPI		15
-#define PI_MAX_PIPES		16
-
 /* 64 bit time (100usec) since ????? - cifs6.txt, section 3.5, page 30 */
 typedef uint64_t NTTIME;
 
diff --git a/source/lib/netapi/cm.c b/source/lib/netapi/cm.c
index fe5490c..8eaabb3 100644
--- a/source/lib/netapi/cm.c
+++ b/source/lib/netapi/cm.c
@@ -91,75 +91,70 @@ static struct client_pipe_connection *pipe_connections;
 /********************************************************************
 ********************************************************************/
 
-static struct rpc_pipe_client *pipe_cm_find(struct cli_state *cli,
-					    int pipe_idx,
-					    NTSTATUS *status)
+static NTSTATUS pipe_cm_find(struct cli_state *cli,
+			     const struct ndr_syntax_id *interface,
+			     struct rpc_pipe_client **presult)
 {
 	struct client_pipe_connection *p;
 
 	for (p = pipe_connections; p; p = p->next) {
 
 		if (!rpc_pipe_np_smb_conn(p->pipe)) {
-			*status = NT_STATUS_PIPE_EMPTY;
-			return NULL;
+			return NT_STATUS_PIPE_EMPTY;
 		}
 
-		if (strequal(cli->desthost, p->pipe->desthost) &&
-		    rpccli_is_pipe_idx(p->pipe, pipe_idx)) {
-			*status = NT_STATUS_OK;
-			return p->pipe;
+		if (strequal(cli->desthost, p->pipe->desthost)
+		    && ndr_syntax_id_equal(&p->pipe->abstract_syntax,
+					   interface)) {
+			*presult = p->pipe;
+			return NT_STATUS_OK;
 		}
 	}
 
-	*status = NT_STATUS_PIPE_NOT_AVAILABLE;
-
-	return NULL;
+	return NT_STATUS_PIPE_NOT_AVAILABLE;
 }
 
 /********************************************************************
 ********************************************************************/
 
-static struct rpc_pipe_client *pipe_cm_connect(TALLOC_CTX *mem_ctx,
-					       struct cli_state *cli,
-					       int pipe_idx,
-					       NTSTATUS *status)
+static NTSTATUS pipe_cm_connect(TALLOC_CTX *mem_ctx,
+				struct cli_state *cli,
+				const struct ndr_syntax_id *interface,
+				struct rpc_pipe_client **presult)
 {
 	struct client_pipe_connection *p;
+	NTSTATUS status;
 
 	p = TALLOC_ZERO_ARRAY(mem_ctx, struct client_pipe_connection, 1);
 	if (!p) {
-		*status = NT_STATUS_NO_MEMORY;
-		return NULL;
+		return NT_STATUS_NO_MEMORY;
 	}
 
-	*status = cli_rpc_pipe_open_noauth(cli, cli_get_iface(pipe_idx),
-					   &p->pipe);
-	if (!NT_STATUS_IS_OK(*status)) {
+	status = cli_rpc_pipe_open_noauth(cli, interface, &p->pipe);
+	if (!NT_STATUS_IS_OK(status)) {
 		TALLOC_FREE(p);
-		return NULL;
+		return status;
 	}
 
 	DLIST_ADD(pipe_connections, p);
 
-	return p->pipe;
+	*presult = p->pipe;
+	return NT_STATUS_OK;
 }
 
 /********************************************************************
 ********************************************************************/
 
-static struct rpc_pipe_client *pipe_cm_open(TALLOC_CTX *ctx,
-					    struct cli_state *cli,
-					    int pipe_idx,
-					    NTSTATUS *status)
+static NTSTATUS pipe_cm_open(TALLOC_CTX *ctx,
+			     struct cli_state *cli,
+			     const struct ndr_syntax_id *interface,
+			     struct rpc_pipe_client **presult)
 {
-	struct rpc_pipe_client *p;
-
-	p = pipe_cm_find(cli, pipe_idx, status);
-	if (!p) {
-		p = pipe_cm_connect(ctx, cli, pipe_idx, status);
+	if (NT_STATUS_IS_OK(pipe_cm_find(cli, interface, presult))) {
+		return NT_STATUS_OK;
 	}
 
-	return p;
+	return pipe_cm_connect(ctx, cli, interface, presult);
 }
 
 /********************************************************************
@@ -167,23 +162,26 @@ static struct rpc_pipe_client *pipe_cm_open(TALLOC_CTX *ctx,
 
 WERROR libnetapi_open_pipe(struct libnetapi_ctx *ctx,
 			   struct cli_state *cli,
-			   int pipe_idx,
-			   struct rpc_pipe_client **pipe_cli)
+			   const struct ndr_syntax_id *interface,
+			   struct rpc_pipe_client **presult)
 {
+	struct rpc_pipe_client *result;
 	NTSTATUS status;
 
-	if (!cli || !pipe_cli) {
+	if (!cli || !presult) {
 		return WERR_INVALID_PARAM;
 	}
 
-	*pipe_cli = pipe_cm_open(ctx, cli, pipe_idx, &status);
-	if (!*pipe_cli) {
+	status = pipe_cm_open(ctx, cli, interface, &result);
+	if (!NT_STATUS_IS_OK(status)) {
 		libnetapi_set_error_string(ctx, "failed to open PIPE %s: %s",
-			cli_get_pipe_name(pipe_idx),
+			cli_get_pipe_name_from_iface(debug_ctx(), cli,
+						     interface),
 			get_friendly_nt_error_msg(status));
 		return WERR_DEST_NOT_FOUND;
 	}
 
+	*presult = result;
 	return WERR_OK;
 }
 
diff --git a/source/lib/netapi/getdc.c b/source/lib/netapi/getdc.c
index c1d021b..4636042 100644
--- a/source/lib/netapi/getdc.c
+++ b/source/lib/netapi/getdc.c
@@ -50,7 +50,8 @@ WERROR NetGetDCName_r(struct libnetapi_ctx *ctx,
 		goto done;
 	}
 
-	werr = libnetapi_open_pipe(ctx, cli, PI_NETLOGON, &pipe_cli);
+	werr = libnetapi_open_pipe(ctx, cli, &ndr_table_netlogon.syntax_id,
+				   &pipe_cli);
 	if (!W_ERROR_IS_OK(werr)) {
 		goto done;
 	}
@@ -90,7 +91,8 @@ WERROR NetGetAnyDCName_r(struct libnetapi_ctx *ctx,
 		goto done;
 	}
 
-	werr = libnetapi_open_pipe(ctx, cli, PI_NETLOGON, &pipe_cli);
+	werr = libnetapi_open_pipe(ctx, cli, &ndr_table_netlogon.syntax_id,
+				   &pipe_cli);
 	if (!W_ERROR_IS_OK(werr)) {
 		goto done;
 	}
@@ -149,7 +151,8 @@ WERROR DsGetDcName_r(struct libnetapi_ctx *ctx,
 		goto done;
 	}
 
-	werr = libnetapi_open_pipe(ctx, cli, PI_NETLOGON, &pipe_cli);
+	werr = libnetapi_open_pipe(ctx, cli, &ndr_table_netlogon.syntax_id,
+				   &pipe_cli);
 	if (!W_ERROR_IS_OK(werr)) {
 		goto done;
 	}
diff --git a/source/lib/netapi/group.c b/source/lib/netapi/group.c
index 15580b3..04ffb7c 100644
--- a/source/lib/netapi/group.c
+++ b/source/lib/netapi/group.c
@@ -76,7 +76,8 @@ WERROR NetGroupAdd_r(struct libnetapi_ctx *ctx,
 		goto done;
 	}
 
-	werr = libnetapi_open_pipe(ctx, cli, PI_SAMR, &pipe_cli);
+	werr = libnetapi_open_pipe(ctx, cli, &ndr_table_samr.syntax_id,
+				   &pipe_cli);
 	if (!W_ERROR_IS_OK(werr)) {
 		goto done;
 	}
@@ -255,7 +256,8 @@ WERROR NetGroupDel_r(struct libnetapi_ctx *ctx,
 		goto done;
 	}
 
-	werr = libnetapi_open_pipe(ctx, cli, PI_SAMR, &pipe_cli);
+	werr = libnetapi_open_pipe(ctx, cli, &ndr_table_samr.syntax_id,
+				   &pipe_cli);
 	if (!W_ERROR_IS_OK(werr)) {
 		goto done;
 	}
@@ -428,7 +430,8 @@ WERROR NetGroupSetInfo_r(struct libnetapi_ctx *ctx,
 		goto done;
 	}
 
-	werr = libnetapi_open_pipe(ctx, cli, PI_SAMR, &pipe_cli);
+	werr = libnetapi_open_pipe(ctx, cli, &ndr_table_samr.syntax_id,
+				   &pipe_cli);
 	if (!W_ERROR_IS_OK(werr)) {
 		goto done;
 	}
@@ -671,7 +674,8 @@ WERROR NetGroupGetInfo_r(struct libnetapi_ctx *ctx,
 		goto done;
 	}
 
-	werr = libnetapi_open_pipe(ctx, cli, PI_SAMR, &pipe_cli);
+	werr = libnetapi_open_pipe(ctx, cli, &ndr_table_samr.syntax_id,
+				   &pipe_cli);
 	if (!W_ERROR_IS_OK(werr)) {
 		goto done;
 	}
@@ -795,7 +799,8 @@ WERROR NetGroupAddUser_r(struct libnetapi_ctx *ctx,
 		goto done;
 	}
 
-	werr = libnetapi_open_pipe(ctx, cli, PI_SAMR, &pipe_cli);
+	werr = libnetapi_open_pipe(ctx, cli, &ndr_table_samr.syntax_id,
+				   &pipe_cli);
 	if (!W_ERROR_IS_OK(werr)) {
 		goto done;
 	}
@@ -924,7 +929,8 @@ WERROR NetGroupDelUser_r(struct libnetapi_ctx *ctx,
 		goto done;
 	}
 
-	werr = libnetapi_open_pipe(ctx, cli, PI_SAMR, &pipe_cli);
+	werr = libnetapi_open_pipe(ctx, cli, &ndr_table_samr.syntax_id,
+				   &pipe_cli);
 	if (!W_ERROR_IS_OK(werr)) {
 		goto done;
 	}
@@ -1210,7 +1216,8 @@ WERROR NetGroupEnum_r(struct libnetapi_ctx *ctx,
 		goto done;
 	}
 
-	werr = libnetapi_open_pipe(ctx, cli, PI_SAMR, &pipe_cli);
+	werr = libnetapi_open_pipe(ctx, cli, &ndr_table_samr.syntax_id,
+				   &pipe_cli);
 	if (!W_ERROR_IS_OK(werr)) {
 		goto done;
 	}
diff --git a/source/lib/netapi/joindomain.c b/source/lib/netapi/joindomain.c
index a33e0ee..8d5202f 100644
--- a/source/lib/netapi/joindomain.c
+++ b/source/lib/netapi/joindomain.c
@@ -110,7 +110,8 @@ WERROR NetJoinDomain_r(struct libnetapi_ctx *ctx,
 		goto done;
 	}
 
-	werr = libnetapi_open_pipe(ctx, cli, PI_WKSSVC, &pipe_cli);
+	werr = libnetapi_open_pipe(ctx, cli, &ndr_table_wkssvc.syntax_id,
+				   &pipe_cli);
 	if (!W_ERROR_IS_OK(werr)) {
 		goto done;
 	}
@@ -241,7 +242,8 @@ WERROR NetUnjoinDomain_r(struct libnetapi_ctx *ctx,
 		goto done;
 	}
 
-	werr = libnetapi_open_pipe(ctx, cli, PI_WKSSVC, &pipe_cli);
+	werr = libnetapi_open_pipe(ctx, cli, &ndr_table_wkssvc.syntax_id,
+				   &pipe_cli);
 	if (!W_ERROR_IS_OK(werr)) {
 		goto done;
 	}
@@ -293,7 +295,8 @@ WERROR NetGetJoinInformation_r(struct libnetapi_ctx *ctx,
 		goto done;
 	}
 
-	werr = libnetapi_open_pipe(ctx, cli, PI_WKSSVC, &pipe_cli);
+	werr = libnetapi_open_pipe(ctx, cli, &ndr_table_wkssvc.syntax_id,
+				   &pipe_cli);
 	if (!W_ERROR_IS_OK(werr)) {
 		goto done;
 	}
@@ -427,7 +430,8 @@ WERROR NetGetJoinableOUs_r(struct libnetapi_ctx *ctx,
 		goto done;
 	}
 
-	werr = libnetapi_open_pipe(ctx, cli, PI_WKSSVC, &pipe_cli);
+	werr = libnetapi_open_pipe(ctx, cli, &ndr_table_wkssvc.syntax_id,
+				   &pipe_cli);
 	if (!W_ERROR_IS_OK(werr)) {
 		goto done;
 	}
diff --git a/source/lib/netapi/localgroup.c b/source/lib/netapi/localgroup.c
index faf57cc..fe36d86 100644
--- a/source/lib/netapi/localgroup.c
+++ b/source/lib/netapi/localgroup.c
@@ -166,7 +166,8 @@ WERROR NetLocalGroupAdd_r(struct libnetapi_ctx *ctx,
 		goto done;
 	}
 
-	werr = libnetapi_open_pipe(ctx, cli, PI_SAMR, &pipe_cli);
+	werr = libnetapi_open_pipe(ctx, cli, &ndr_table_samr.syntax_id,
+				   &pipe_cli);
 	if (!W_ERROR_IS_OK(werr)) {
 		goto done;
 	}
@@ -293,7 +294,8 @@ WERROR NetLocalGroupDel_r(struct libnetapi_ctx *ctx,
 		goto done;
 	}
 
-	werr = libnetapi_open_pipe(ctx, cli, PI_SAMR, &pipe_cli);
+	werr = libnetapi_open_pipe(ctx, cli, &ndr_table_samr.syntax_id,
+				   &pipe_cli);
 	if (!W_ERROR_IS_OK(werr)) {
 		goto done;
 	}
@@ -472,7 +474,8 @@ WERROR NetLocalGroupGetInfo_r(struct libnetapi_ctx *ctx,
 		goto done;
 	}
 
-	werr = libnetapi_open_pipe(ctx, cli, PI_SAMR, &pipe_cli);
+	werr = libnetapi_open_pipe(ctx, cli, &ndr_table_samr.syntax_id,
+				   &pipe_cli);
 	if (!W_ERROR_IS_OK(werr)) {
 		goto done;
 	}
@@ -650,7 +653,8 @@ WERROR NetLocalGroupSetInfo_r(struct libnetapi_ctx *ctx,
 		goto done;
 	}
 
-	werr = libnetapi_open_pipe(ctx, cli, PI_SAMR, &pipe_cli);
+	werr = libnetapi_open_pipe(ctx, cli, &ndr_table_samr.syntax_id,
+				   &pipe_cli);
 	if (!W_ERROR_IS_OK(werr)) {
 		goto done;
 	}
@@ -792,7 +796,8 @@ WERROR NetLocalGroupEnum_r(struct libnetapi_ctx *ctx,
 		goto done;
 	}
 
-	werr = libnetapi_open_pipe(ctx, cli, PI_SAMR, &pipe_cli);
+	werr = libnetapi_open_pipe(ctx, cli, &ndr_table_samr.syntax_id,
+				   &pipe_cli);
 	if (!W_ERROR_IS_OK(werr)) {
 		goto done;
 	}
diff --git a/source/lib/netapi/netapi_private.h b/source/lib/netapi/netapi_private.h
index 915d606..ef6e7cf 100644
--- a/source/lib/netapi/netapi_private.h
+++ b/source/lib/netapi/netapi_private.h
@@ -49,8 +49,8 @@ WERROR libnetapi_open_ipc_connection(struct libnetapi_ctx *ctx,
 WERROR libnetapi_shutdown_cm(struct libnetapi_ctx *ctx);
 WERROR libnetapi_open_pipe(struct libnetapi_ctx *ctx,
 			   struct cli_state *cli,
-			   int pipe_idx,
-			   struct rpc_pipe_client **pipe_cli);
+			   const struct ndr_syntax_id *interface,
+			   struct rpc_pipe_client **presult);
 WERROR libnetapi_samr_open_domain(struct libnetapi_ctx *mem_ctx,
 				  struct rpc_pipe_client *pipe_cli,
 				  uint32_t connect_mask,
diff --git a/source/lib/netapi/serverinfo.c b/source/lib/netapi/serverinfo.c
index 7920bc2..a591d37 100644
--- a/source/lib/netapi/serverinfo.c
+++ b/source/lib/netapi/serverinfo.c
@@ -75,7 +75,8 @@ WERROR NetServerGetInfo_r(struct libnetapi_ctx *ctx,
 		goto done;
 	}
 
-	werr = libnetapi_open_pipe(ctx, cli, PI_SRVSVC, &pipe_cli);
+	werr = libnetapi_open_pipe(ctx, cli, &ndr_table_srvsvc.syntax_id,
+				   &pipe_cli);
 	if (!W_ERROR_IS_OK(werr)) {
 		goto done;
 	}
@@ -175,7 +176,8 @@ WERROR NetServerSetInfo_r(struct libnetapi_ctx *ctx,
 		goto done;
 	}
 
-	werr = libnetapi_open_pipe(ctx, cli, PI_SRVSVC, &pipe_cli);
+	werr = libnetapi_open_pipe(ctx, cli, &ndr_table_srvsvc.syntax_id,
+				   &pipe_cli);
 	if (!W_ERROR_IS_OK(werr)) {
 		goto done;
 	}
@@ -221,7 +223,8 @@ WERROR NetRemoteTOD_r(struct libnetapi_ctx *ctx,
 		goto done;
 	}
 
-	werr = libnetapi_open_pipe(ctx, cli, PI_SRVSVC, &pipe_cli);
+	werr = libnetapi_open_pipe(ctx, cli, &ndr_table_srvsvc.syntax_id,
+				   &pipe_cli);
 	if (!W_ERROR_IS_OK(werr)) {
 		goto done;
 	}
diff --git a/source/lib/netapi/user.c b/source/lib/netapi/user.c
index 8d69536..f896dde 100644
--- a/source/lib/netapi/user.c
+++ b/source/lib/netapi/user.c
@@ -170,7 +170,8 @@ WERROR NetUserAdd_r(struct libnetapi_ctx *ctx,
 		goto done;
 	}
 
-	werr = libnetapi_open_pipe(ctx, cli, PI_SAMR, &pipe_cli);
+	werr = libnetapi_open_pipe(ctx, cli, &ndr_table_samr.syntax_id,
+				   &pipe_cli);


-- 
Samba Shared Repository


More information about the samba-cvs mailing list