[SCM] Samba Shared Repository - branch master updated

Andreas Schneider asn at samba.org
Thu Jan 13 07:07:02 MST 2011


The branch, master has been updated
       via  a556896 s3-build: remove RPCCLI_WINREG subsystem.
       via  2e54b01 s3-waf: remove RPCCLI_WINREG subsystem.
       via  166504a s3-net_registry: prefer dcerpc_winreg_X functions.
       via  da43345 s3-net: prefer dcerpc_winreg_X functions.
       via  a451c54 s3-spoolss: no need to include cli_winreg header anymore.
       via  d97eb89 s3-rpcclient: prefer dcerpc_winreg_X functions.
       via  7e95900 s3-build: remove RPCCLI_SRVSVC subsystem.
       via  9204e04 s3-waf: remove RPCCLI_SRVSVC subsystem.
       via  bded49f s3-rpcclient: prefer dcerpc_srvsvc_X functions.
       via  8aa5b06 s3-net: prefer dcerpc_srvsvc_X functions.
       via  1ea6dd3 s3-smbtree: prefer dcerpc_srvsvc_X functions.
       via  4189c00 s3-lanman: prefer dcerpc_srvsvc_X functions.
       via  44e048f s3-libsmbclient: prefer dcerpc_srvsvc_X functions.
       via  fccfd29 s3-smbclient: prefer dcerpc_srvsvc_X functions.
       via  1ef94df s3-libnetapi: prefer dcerpc_srvsvc_X functions.
       via  aa4efa1 s3-build: remove RPCCLI_NETLOGON subsystem.
       via  9a9ee03 s3-waf: remove RPCCLI_NETLOGON subsystem.
       via  5e4b327 s3-rpcclient: prefer dcerpc_netr_X functions.
       via  c9b3404 s3-winbind: prefer dcerpc_netr_X functions.
       via  232378c s3-rpc_client: prefer dcerpc_netr_X functions.
       via  1259e93 s3-net: prefer dcerpc_netr_X functions.
       via  f3eb5c2 s3-libnet: prefer dcerpc_netr_X functions.
       via  425753e s3-libnetapi: prefer dcerpc_netr_X functions.
       via  f9ca690 s3-net: remove some pointless fstrings in "net rpc service".
       via  d0c05ab s3-net: restructure "net rpc service" and add open_scm().
       via  3e2821a s3-net: restructure "net rpc service" and add open_service().
       via  5ad7d6a s3-build: remove RPCCLI_SVCCTL subsystem.
       via  067e548 s3-waf: remove RPCCLI_SVCCTL subsystem.
       via  8e58855 s3-svcctl: prefer dcerpc_svcctl_X functions.
      from  3b78fcf s4:torture/nbench/nbench.c - initialise "n"

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit a556896d1e2c79c39e95f0903fb365fe3a308a2c
Author: Günther Deschner <gd at samba.org>
Date:   Wed Jan 12 22:55:43 2011 +0100

    s3-build: remove RPCCLI_WINREG subsystem.
    
    Guenther
    
    Signed-off-by: Andreas Schneider <asn at samba.org>
    
    Autobuild-User: Andreas Schneider <asn at samba.org>
    Autobuild-Date: Thu Jan 13 15:06:36 CET 2011 on sn-devel-104

commit 2e54b01bde9af9df1a00a7b3df5cf6270b3fe56a
Author: Günther Deschner <gd at samba.org>
Date:   Wed Jan 12 22:55:34 2011 +0100

    s3-waf: remove RPCCLI_WINREG subsystem.
    
    Guenther
    
    Signed-off-by: Andreas Schneider <asn at samba.org>

commit 166504adb711e0bf582d71c38f5b08beb2806978
Author: Günther Deschner <gd at samba.org>
Date:   Wed Jan 12 22:53:52 2011 +0100

    s3-net_registry: prefer dcerpc_winreg_X functions.
    
    Guenther
    
    Signed-off-by: Andreas Schneider <asn at samba.org>

commit da433458e5ba82e9cf94aed04ecfcda89b287331
Author: Günther Deschner <gd at samba.org>
Date:   Wed Jan 12 21:59:23 2011 +0100

    s3-net: prefer dcerpc_winreg_X functions.
    
    Guenther
    
    Signed-off-by: Andreas Schneider <asn at samba.org>

commit a451c54b3db9da5f0cfda0b72c7af1eae3ada6f8
Author: Günther Deschner <gd at samba.org>
Date:   Wed Jan 12 21:11:44 2011 +0100

    s3-spoolss: no need to include cli_winreg header anymore.
    
    Guenther
    
    Signed-off-by: Andreas Schneider <asn at samba.org>

commit d97eb89c2a0f7ab4543922a417f1fb9fcd8fbaec
Author: Günther Deschner <gd at samba.org>
Date:   Wed Jan 12 21:11:17 2011 +0100

    s3-rpcclient: prefer dcerpc_winreg_X functions.
    
    Guenther
    
    Signed-off-by: Andreas Schneider <asn at samba.org>

commit 7e959004d790536cc932285c2d38a566ea130b5d
Author: Günther Deschner <gd at samba.org>
Date:   Wed Jan 12 13:25:51 2011 +0100

    s3-build: remove RPCCLI_SRVSVC subsystem.
    
    Guenther
    
    Signed-off-by: Andreas Schneider <asn at samba.org>

commit 9204e04f274b69b34dd3da8bf63e4eeb7050cb50
Author: Günther Deschner <gd at samba.org>
Date:   Wed Jan 12 13:25:42 2011 +0100

    s3-waf: remove RPCCLI_SRVSVC subsystem.
    
    Guenther
    
    Signed-off-by: Andreas Schneider <asn at samba.org>

commit bded49f5d637c30ae33564d0642d1e58adddaaec
Author: Günther Deschner <gd at samba.org>
Date:   Wed Jan 12 13:22:08 2011 +0100

    s3-rpcclient: prefer dcerpc_srvsvc_X functions.
    
    Guenther
    
    Signed-off-by: Andreas Schneider <asn at samba.org>

commit 8aa5b067b9dfa1897dc12316987686d1e1c5946d
Author: Günther Deschner <gd at samba.org>
Date:   Wed Jan 12 13:11:41 2011 +0100

    s3-net: prefer dcerpc_srvsvc_X functions.
    
    Guenther
    
    Signed-off-by: Andreas Schneider <asn at samba.org>

commit 1ea6dd35f4ebca968e23602ba009f45e4f914161
Author: Günther Deschner <gd at samba.org>
Date:   Wed Jan 12 13:01:57 2011 +0100

    s3-smbtree: prefer dcerpc_srvsvc_X functions.
    
    Guenther
    
    Signed-off-by: Andreas Schneider <asn at samba.org>

commit 4189c00caeaa9cdd71d9e5cbb35e2efdd9ad3ac6
Author: Günther Deschner <gd at samba.org>
Date:   Wed Jan 12 13:00:49 2011 +0100

    s3-lanman: prefer dcerpc_srvsvc_X functions.
    
    Guenther
    
    Signed-off-by: Andreas Schneider <asn at samba.org>

commit 44e048f7a89a2fd26cca680cb9e53c02103d7750
Author: Günther Deschner <gd at samba.org>
Date:   Wed Jan 12 12:58:44 2011 +0100

    s3-libsmbclient: prefer dcerpc_srvsvc_X functions.
    
    Guenther
    
    Signed-off-by: Andreas Schneider <asn at samba.org>

commit fccfd29283154d9ec252fcb4c26f21301150dc5f
Author: Günther Deschner <gd at samba.org>
Date:   Wed Jan 12 12:56:55 2011 +0100

    s3-smbclient: prefer dcerpc_srvsvc_X functions.
    
    Guenther
    
    Signed-off-by: Andreas Schneider <asn at samba.org>

commit 1ef94dffe6e0b86e0ff30f7d37dc81fc251f6d95
Author: Günther Deschner <gd at samba.org>
Date:   Wed Jan 12 12:51:07 2011 +0100

    s3-libnetapi: prefer dcerpc_srvsvc_X functions.
    
    Guenther
    
    Signed-off-by: Andreas Schneider <asn at samba.org>

commit aa4efa154f9f7b2d152a99f822c3970f3b736705
Author: Günther Deschner <gd at samba.org>
Date:   Wed Jan 12 12:12:32 2011 +0100

    s3-build: remove RPCCLI_NETLOGON subsystem.
    
    Guenther
    
    Signed-off-by: Andreas Schneider <asn at samba.org>

commit 9a9ee03ae8331e81281c12b159df1dd66b5cc851
Author: Günther Deschner <gd at samba.org>
Date:   Wed Jan 12 12:12:22 2011 +0100

    s3-waf: remove RPCCLI_NETLOGON subsystem.
    
    Guenther
    
    Signed-off-by: Andreas Schneider <asn at samba.org>

commit 5e4b327c4f1a9a09cb46514e7ed5c213031f1218
Author: Günther Deschner <gd at samba.org>
Date:   Wed Jan 12 12:08:42 2011 +0100

    s3-rpcclient: prefer dcerpc_netr_X functions.
    
    Guenther
    
    Signed-off-by: Andreas Schneider <asn at samba.org>

commit c9b3404c68b0b5b1f2f3008736d77c476cc0e398
Author: Günther Deschner <gd at samba.org>
Date:   Wed Jan 12 11:55:34 2011 +0100

    s3-winbind: prefer dcerpc_netr_X functions.
    
    Guenther
    
    Signed-off-by: Andreas Schneider <asn at samba.org>

commit 232378c6e5b1db9facd3c74b7fa82ed9a3b4ef67
Author: Günther Deschner <gd at samba.org>
Date:   Wed Jan 12 11:36:06 2011 +0100

    s3-rpc_client: prefer dcerpc_netr_X functions.
    
    Guenther
    
    Signed-off-by: Andreas Schneider <asn at samba.org>

commit 1259e93ac07fa86eacf0870744b7c6a056a30c57
Author: Günther Deschner <gd at samba.org>
Date:   Wed Jan 12 11:27:26 2011 +0100

    s3-net: prefer dcerpc_netr_X functions.
    
    Guenther
    
    Signed-off-by: Andreas Schneider <asn at samba.org>

commit f3eb5c234e3c4e07c9839c940c4558a169087dbf
Author: Günther Deschner <gd at samba.org>
Date:   Wed Jan 12 11:21:18 2011 +0100

    s3-libnet: prefer dcerpc_netr_X functions.
    
    Guenther
    
    Signed-off-by: Andreas Schneider <asn at samba.org>

commit 425753ebe3e85e1e7ea939937269c10bc5f7fd73
Author: Günther Deschner <gd at samba.org>
Date:   Wed Jan 12 11:17:48 2011 +0100

    s3-libnetapi: prefer dcerpc_netr_X functions.
    
    Guenther
    
    Signed-off-by: Andreas Schneider <asn at samba.org>

commit f9ca6904a474e8c33532708977878940ad5696e0
Author: Günther Deschner <gd at samba.org>
Date:   Wed Jan 12 19:12:07 2011 +0100

    s3-net: remove some pointless fstrings in "net rpc service".
    
    Guenther
    
    Signed-off-by: Andreas Schneider <asn at samba.org>

commit d0c05ab2ec5af5090048091d65a48736dcc2ba6b
Author: Günther Deschner <gd at samba.org>
Date:   Wed Jan 12 19:08:48 2011 +0100

    s3-net: restructure "net rpc service" and add open_scm().
    
    Guenther
    
    Signed-off-by: Andreas Schneider <asn at samba.org>

commit 3e2821acda1dd2197b82048e80ef190f46068832
Author: Günther Deschner <gd at samba.org>
Date:   Wed Jan 12 19:00:16 2011 +0100

    s3-net: restructure "net rpc service" and add open_service().
    
    Guenther
    
    Signed-off-by: Andreas Schneider <asn at samba.org>

commit 5ad7d6aaa8f0067e23ce5ef892026a0898fc1068
Author: Günther Deschner <gd at samba.org>
Date:   Tue Jan 11 23:22:18 2011 +0100

    s3-build: remove RPCCLI_SVCCTL subsystem.
    
    Guenther
    
    Signed-off-by: Andreas Schneider <asn at samba.org>

commit 067e54881846baf35a456fcc546a7cc9e3180ac4
Author: Günther Deschner <gd at samba.org>
Date:   Tue Jan 11 23:22:07 2011 +0100

    s3-waf: remove RPCCLI_SVCCTL subsystem.
    
    Guenther
    
    Signed-off-by: Andreas Schneider <asn at samba.org>

commit 8e588550b9c373b0be50c27978782a4574b92728
Author: Günther Deschner <gd at samba.org>
Date:   Tue Jan 11 23:21:41 2011 +0100

    s3-svcctl: prefer dcerpc_svcctl_X functions.
    
    Guenther
    
    Signed-off-by: Andreas Schneider <asn at samba.org>

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

Summary of changes:
 source3/Makefile.in                   |   12 +-
 source3/client/client.c               |    7 +-
 source3/lib/netapi/file.c             |   29 ++-
 source3/lib/netapi/getdc.c            |   22 ++-
 source3/lib/netapi/netlogon.c         |   23 ++-
 source3/lib/netapi/serverinfo.c       |   25 ++-
 source3/lib/netapi/share.c            |   47 +++-
 source3/libnet/libnet_join.c          |    2 +-
 source3/libnet/libnet_samsync.c       |   28 ++-
 source3/libsmb/libsmb_dir.c           |   22 ++-
 source3/rpc_client/cli_netlogon.c     |   92 +++++--
 source3/rpc_server/srv_spoolss_util.c |    2 +-
 source3/rpcclient/cmd_netlogon.c      |  109 ++++++--
 source3/rpcclient/cmd_srvsvc.c        |  118 +++++++--
 source3/rpcclient/cmd_winreg.c        |   21 +-
 source3/smbd/lanman.c                 |   12 +-
 source3/utils/net_rpc.c               |  100 ++++++--
 source3/utils/net_rpc_registry.c      |  373 ++++++++++++++++++++--------
 source3/utils/net_rpc_service.c       |  451 ++++++++++++++++++++-------------
 source3/utils/smbtree.c               |    7 +-
 source3/winbindd/winbindd_ads.c       |   14 +-
 source3/winbindd/winbindd_cm.c        |   32 ++-
 source3/winbindd/winbindd_dual_srv.c  |   42 ++-
 source3/winbindd/winbindd_misc.c      |    1 -
 source3/wscript_build                 |   36 +--
 25 files changed, 1117 insertions(+), 510 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/Makefile.in b/source3/Makefile.in
index 5928973..dd719a1 100644
--- a/source3/Makefile.in
+++ b/source3/Makefile.in
@@ -349,8 +349,7 @@ LIBCLI_SPOOLSS_OBJ = librpc/gen_ndr/cli_spoolss.o \
 
 LIBCLI_EVENTLOG_OBJ = librpc/gen_ndr/ndr_eventlog_c.o
 
-LIBCLI_WINREG_OBJ = librpc/gen_ndr/cli_winreg.o \
-                    librpc/gen_ndr/ndr_winreg_c.o
+LIBCLI_WINREG_OBJ = librpc/gen_ndr/ndr_winreg_c.o
 
 LIBCLI_NTSVCS_OBJ = librpc/gen_ndr/ndr_ntsvcs_c.o
 
@@ -365,13 +364,11 @@ LIBCLI_INITSHUTDOWN_OBJ = librpc/gen_ndr/ndr_initshutdown_c.o
 
 LIBCLI_DSSETUP_OBJ = librpc/gen_ndr/ndr_dssetup_c.o
 
-LIBCLI_SVCCTL_OBJ = librpc/gen_ndr/cli_svcctl.o \
-		    librpc/gen_ndr/ndr_svcctl_c.o
+LIBCLI_SVCCTL_OBJ = librpc/gen_ndr/ndr_svcctl_c.o
 
 LIBCLI_WKSSVC_OBJ = librpc/gen_ndr/ndr_wkssvc_c.o
 
-LIBCLI_SRVSVC_OBJ = librpc/gen_ndr/cli_srvsvc.o \
-		    librpc/gen_ndr/ndr_srvsvc_c.o
+LIBCLI_SRVSVC_OBJ = librpc/gen_ndr/ndr_srvsvc_c.o
 
 LIBCLI_LSA_OBJ = librpc/gen_ndr/cli_lsa.o \
 		 librpc/gen_ndr/ndr_lsa_c.o \
@@ -382,8 +379,7 @@ LIBCLI_SAMR_OBJ = librpc/gen_ndr/cli_samr.o \
 		  librpc/gen_ndr/ndr_samr_c.o \
 		  rpc_client/cli_samr.o
 
-LIBCLI_NETLOGON_OBJ = librpc/gen_ndr/cli_netlogon.o \
-		      librpc/gen_ndr/ndr_netlogon_c.o \
+LIBCLI_NETLOGON_OBJ = librpc/gen_ndr/ndr_netlogon_c.o \
 		      rpc_client/cli_netlogon.o
 
 LIBCLI_EPMAPPER_OBJ = librpc/gen_ndr/ndr_epmapper_c.o
diff --git a/source3/client/client.c b/source3/client/client.c
index 8486bb2..33c1a24 100644
--- a/source3/client/client.c
+++ b/source3/client/client.c
@@ -24,7 +24,7 @@
 #include "includes.h"
 #include "popt_common.h"
 #include "client/client_proto.h"
-#include "../librpc/gen_ndr/cli_srvsvc.h"
+#include "../librpc/gen_ndr/ndr_srvsvc_c.h"
 #include "../lib/util/select.h"
 #include "system/readline.h"
 #include "../libcli/smbreadline/smbreadline.h"
@@ -3973,6 +3973,7 @@ static bool browse_host_rpc(bool sort)
 	uint32_t resume_handle = 0;
 	uint32_t total_entries = 0;
 	int i;
+	struct dcerpc_binding_handle *b;
 
 	status = cli_rpc_pipe_open_noauth(cli, &ndr_table_srvsvc.syntax_id,
 					  &pipe_hnd);
@@ -3984,13 +3985,15 @@ static bool browse_host_rpc(bool sort)
 		return false;
 	}
 
+	b = pipe_hnd->binding_handle;
+
 	ZERO_STRUCT(info_ctr);
 	ZERO_STRUCT(ctr1);
 
 	info_ctr.level = 1;
 	info_ctr.ctr.ctr1 = &ctr1;
 
-	status = rpccli_srvsvc_NetShareEnumAll(pipe_hnd, frame,
+	status = dcerpc_srvsvc_NetShareEnumAll(b, frame,
 					      pipe_hnd->desthost,
 					      &info_ctr,
 					      0xffffffff,
diff --git a/source3/lib/netapi/file.c b/source3/lib/netapi/file.c
index 6d76be0..a8342ac 100644
--- a/source3/lib/netapi/file.c
+++ b/source3/lib/netapi/file.c
@@ -23,7 +23,7 @@
 #include "lib/netapi/netapi.h"
 #include "lib/netapi/netapi_private.h"
 #include "lib/netapi/libnetapi.h"
-#include "../librpc/gen_ndr/cli_srvsvc.h"
+#include "../librpc/gen_ndr/ndr_srvsvc_c.h"
 
 /****************************************************************
 ****************************************************************/
@@ -34,6 +34,7 @@ WERROR NetFileClose_r(struct libnetapi_ctx *ctx,
 	WERROR werr;
 	NTSTATUS status;
 	struct rpc_pipe_client *pipe_cli = NULL;
+	struct dcerpc_binding_handle *b;
 
 	werr = libnetapi_open_pipe(ctx, r->in.server_name,
 				   &ndr_table_srvsvc.syntax_id,
@@ -42,7 +43,9 @@ WERROR NetFileClose_r(struct libnetapi_ctx *ctx,
 		goto done;
 	}
 
-	status = rpccli_srvsvc_NetFileClose(pipe_cli, talloc_tos(),
+	b = pipe_cli->binding_handle;
+
+	status = dcerpc_srvsvc_NetFileClose(b, talloc_tos(),
 					    r->in.server_name,
 					    r->in.fileid,
 					    &werr);
@@ -116,6 +119,7 @@ WERROR NetFileGetInfo_r(struct libnetapi_ctx *ctx,
 	struct rpc_pipe_client *pipe_cli = NULL;
 	union srvsvc_NetFileInfo info;
 	uint32_t num_entries = 0;
+	struct dcerpc_binding_handle *b;
 
 	if (!r->out.buffer) {
 		return WERR_INVALID_PARAM;
@@ -136,12 +140,19 @@ WERROR NetFileGetInfo_r(struct libnetapi_ctx *ctx,
 		goto done;
 	}
 
-	status = rpccli_srvsvc_NetFileGetInfo(pipe_cli, talloc_tos(),
+	b = pipe_cli->binding_handle;
+
+	status = dcerpc_srvsvc_NetFileGetInfo(b, talloc_tos(),
 					      r->in.server_name,
 					      r->in.fileid,
 					      r->in.level,
 					      &info,
 					      &werr);
+	if (!NT_STATUS_IS_OK(status)) {
+		werr = ntstatus_to_werror(status);
+		goto done;
+	}
+
 	if (!W_ERROR_IS_OK(werr)) {
 		goto done;
 	}
@@ -182,6 +193,7 @@ WERROR NetFileEnum_r(struct libnetapi_ctx *ctx,
 	struct srvsvc_NetFileCtr3 ctr3;
 	uint32_t num_entries = 0;
 	uint32_t i;
+	struct dcerpc_binding_handle *b;
 
 	if (!r->out.buffer) {
 		return WERR_INVALID_PARAM;
@@ -202,6 +214,8 @@ WERROR NetFileEnum_r(struct libnetapi_ctx *ctx,
 		goto done;
 	}
 
+	b = pipe_cli->binding_handle;
+
 	ZERO_STRUCT(info_ctr);
 
 	info_ctr.level = r->in.level;
@@ -216,7 +230,7 @@ WERROR NetFileEnum_r(struct libnetapi_ctx *ctx,
 			break;
 	}
 
-	status = rpccli_srvsvc_NetFileEnum(pipe_cli, talloc_tos(),
+	status = dcerpc_srvsvc_NetFileEnum(b, talloc_tos(),
 					   r->in.server_name,
 					   r->in.base_path,
 					   r->in.user_name,
@@ -225,7 +239,12 @@ WERROR NetFileEnum_r(struct libnetapi_ctx *ctx,
 					   r->out.total_entries,
 					   r->out.resume_handle,
 					   &werr);
-	if (NT_STATUS_IS_ERR(status)) {
+	if (!NT_STATUS_IS_OK(status)) {
+		werr = ntstatus_to_werror(status);
+		goto done;
+	}
+
+	if (!W_ERROR_IS_OK(werr) && !W_ERROR_EQUAL(werr, WERR_MORE_DATA)) {
 		goto done;
 	}
 
diff --git a/source3/lib/netapi/getdc.c b/source3/lib/netapi/getdc.c
index faf2672..fd5cdc2 100644
--- a/source3/lib/netapi/getdc.c
+++ b/source3/lib/netapi/getdc.c
@@ -19,7 +19,7 @@
 
 #include "includes.h"
 
-#include "../librpc/gen_ndr/cli_netlogon.h"
+#include "../librpc/gen_ndr/ndr_netlogon_c.h"
 #include "librpc/gen_ndr/libnetapi.h"
 #include "lib/netapi/netapi.h"
 #include "lib/netapi/netapi_private.h"
@@ -43,6 +43,7 @@ WERROR NetGetDCName_r(struct libnetapi_ctx *ctx,
 	struct rpc_pipe_client *pipe_cli = NULL;
 	NTSTATUS status;
 	WERROR werr;
+	struct dcerpc_binding_handle *b;
 
 	werr = libnetapi_open_pipe(ctx, r->in.server_name,
 				   &ndr_table_netlogon.syntax_id,
@@ -51,7 +52,9 @@ WERROR NetGetDCName_r(struct libnetapi_ctx *ctx,
 		goto done;
 	}
 
-	status = rpccli_netr_GetDcName(pipe_cli, talloc_tos(),
+	b = pipe_cli->binding_handle;
+
+	status = dcerpc_netr_GetDcName(b, talloc_tos(),
 				       r->in.server_name,
 				       r->in.domain_name,
 				       (const char **)r->out.buffer,
@@ -83,6 +86,7 @@ WERROR NetGetAnyDCName_r(struct libnetapi_ctx *ctx,
 	struct rpc_pipe_client *pipe_cli = NULL;
 	NTSTATUS status;
 	WERROR werr;
+	struct dcerpc_binding_handle *b;
 
 	werr = libnetapi_open_pipe(ctx, r->in.server_name,
 				   &ndr_table_netlogon.syntax_id,
@@ -91,12 +95,15 @@ WERROR NetGetAnyDCName_r(struct libnetapi_ctx *ctx,
 		goto done;
 	}
 
-	status = rpccli_netr_GetAnyDCName(pipe_cli, talloc_tos(),
+	b = pipe_cli->binding_handle;
+
+	status = dcerpc_netr_GetAnyDCName(b, talloc_tos(),
 					  r->in.server_name,
 					  r->in.domain_name,
 					  (const char **)r->out.buffer,
 					  &werr);
 	if (!NT_STATUS_IS_OK(status)) {
+		werr = ntstatus_to_werror(status);
 		goto done;
 	}
  done:
@@ -142,6 +149,7 @@ WERROR DsGetDcName_r(struct libnetapi_ctx *ctx,
 	WERROR werr;
 	NTSTATUS status = NT_STATUS_DOMAIN_CONTROLLER_NOT_FOUND;
 	struct rpc_pipe_client *pipe_cli = NULL;
+	struct dcerpc_binding_handle *b;
 
 	werr = libnetapi_open_pipe(ctx, r->in.server_name,
 				   &ndr_table_netlogon.syntax_id,
@@ -150,7 +158,9 @@ WERROR DsGetDcName_r(struct libnetapi_ctx *ctx,
 		goto done;
 	}
 
-	status = rpccli_netr_DsRGetDCNameEx(pipe_cli,
+	b = pipe_cli->binding_handle;
+
+	status = dcerpc_netr_DsRGetDCNameEx(b,
 					    ctx,
 					    r->in.server_name,
 					    r->in.domain_name,
@@ -159,11 +169,11 @@ WERROR DsGetDcName_r(struct libnetapi_ctx *ctx,
 					    r->in.flags,
 					    (struct netr_DsRGetDCNameInfo **)r->out.dc_info,
 					    &werr);
-	if (NT_STATUS_IS_OK(status)) {
+	if (NT_STATUS_IS_OK(status) && W_ERROR_IS_OK(werr)) {
 		goto done;
 	}
 
-	status = rpccli_netr_DsRGetDCName(pipe_cli,
+	status = dcerpc_netr_DsRGetDCName(b,
 					  ctx,
 					  r->in.server_name,
 					  r->in.domain_name,
diff --git a/source3/lib/netapi/netlogon.c b/source3/lib/netapi/netlogon.c
index 8c30d6c..0a15063 100644
--- a/source3/lib/netapi/netlogon.c
+++ b/source3/lib/netapi/netlogon.c
@@ -19,7 +19,7 @@
 
 #include "includes.h"
 
-#include "../librpc/gen_ndr/cli_netlogon.h"
+#include "../librpc/gen_ndr/ndr_netlogon_c.h"
 #include "librpc/gen_ndr/libnetapi.h"
 #include "lib/netapi/netapi.h"
 #include "lib/netapi/netapi_private.h"
@@ -131,6 +131,7 @@ WERROR I_NetLogonControl_r(struct libnetapi_ctx *ctx,
 	NTSTATUS status;
 	struct rpc_pipe_client *pipe_cli = NULL;
 	union netr_CONTROL_QUERY_INFORMATION query;
+	struct dcerpc_binding_handle *b;
 
 	werr = libnetapi_open_pipe(ctx, r->in.server_name,
 				   &ndr_table_netlogon.syntax_id,
@@ -139,7 +140,9 @@ WERROR I_NetLogonControl_r(struct libnetapi_ctx *ctx,
 		goto done;
 	}
 
-	status = rpccli_netr_LogonControl(pipe_cli, talloc_tos(),
+	b = pipe_cli->binding_handle;
+
+	status = dcerpc_netr_LogonControl(b, talloc_tos(),
 					  r->in.server_name,
 					  r->in.function_code,
 					  r->in.query_level,
@@ -149,6 +152,9 @@ WERROR I_NetLogonControl_r(struct libnetapi_ctx *ctx,
 		werr = ntstatus_to_werror(status);
 		goto done;
 	}
+	if (!W_ERROR_IS_OK(werr)) {
+		goto done;
+	}
 
 	werr = construct_buffer(ctx, r->in.query_level, &query,
 				r->out.buffer);
@@ -180,6 +186,7 @@ WERROR I_NetLogonControl2_r(struct libnetapi_ctx *ctx,
 	struct rpc_pipe_client *pipe_cli = NULL;
 	union netr_CONTROL_DATA_INFORMATION data;
 	union netr_CONTROL_QUERY_INFORMATION query;
+	struct dcerpc_binding_handle *b;
 
 	werr = construct_data(r->in.function_code, r->in.data, &data);
 	if (!W_ERROR_IS_OK(werr)) {
@@ -193,11 +200,13 @@ WERROR I_NetLogonControl2_r(struct libnetapi_ctx *ctx,
 		goto done;
 	}
 
+	b = pipe_cli->binding_handle;
+
 	switch (r->in.function_code) {
 	case NETLOGON_CONTROL_TC_VERIFY:
 	case NETLOGON_CONTROL_SET_DBFLAG:
 	case NETLOGON_CONTROL_FORCE_DNS_REG:
-		status = rpccli_netr_LogonControl2Ex(pipe_cli, talloc_tos(),
+		status = dcerpc_netr_LogonControl2Ex(b, talloc_tos(),
 						     r->in.server_name,
 						     r->in.function_code,
 						     r->in.query_level,
@@ -206,7 +215,7 @@ WERROR I_NetLogonControl2_r(struct libnetapi_ctx *ctx,
 						     &werr);
 		break;
 	default:
-		status = rpccli_netr_LogonControl2(pipe_cli, talloc_tos(),
+		status = dcerpc_netr_LogonControl2(b, talloc_tos(),
 						   r->in.server_name,
 						   r->in.function_code,
 						   r->in.query_level,
@@ -216,12 +225,12 @@ WERROR I_NetLogonControl2_r(struct libnetapi_ctx *ctx,
 		break;
 	}
 
-	if (!W_ERROR_IS_OK(werr)) {
+	if (!NT_STATUS_IS_OK(status)) {
+		werr = ntstatus_to_werror(status);
 		goto done;
 	}
 
-	if (!NT_STATUS_IS_OK(status)) {
-		werr = ntstatus_to_werror(status);
+	if (!W_ERROR_IS_OK(werr)) {
 		goto done;
 	}
 
diff --git a/source3/lib/netapi/serverinfo.c b/source3/lib/netapi/serverinfo.c
index 83b7498..6de97b9 100644
--- a/source3/lib/netapi/serverinfo.c
+++ b/source3/lib/netapi/serverinfo.c
@@ -23,7 +23,7 @@
 #include "lib/netapi/netapi.h"
 #include "lib/netapi/netapi_private.h"
 #include "lib/netapi/libnetapi.h"
-#include "../librpc/gen_ndr/cli_srvsvc.h"
+#include "../librpc/gen_ndr/ndr_srvsvc_c.h"
 #include "lib/smbconf/smbconf.h"
 #include "lib/smbconf/smbconf_reg.h"
 
@@ -484,6 +484,7 @@ WERROR NetServerGetInfo_r(struct libnetapi_ctx *ctx,
 	NTSTATUS status;
 	WERROR werr;
 	union srvsvc_NetSrvInfo info;
+	struct dcerpc_binding_handle *b;
 
 	if (!r->out.buffer) {
 		return WERR_INVALID_PARAM;
@@ -509,7 +510,9 @@ WERROR NetServerGetInfo_r(struct libnetapi_ctx *ctx,
 		goto done;
 	}
 
-	status = rpccli_srvsvc_NetSrvGetInfo(pipe_cli, talloc_tos(),
+	b = pipe_cli->binding_handle;
+
+	status = dcerpc_srvsvc_NetSrvGetInfo(b, talloc_tos(),
 					     r->in.server_name,
 					     r->in.level,
 					     &info,
@@ -519,6 +522,10 @@ WERROR NetServerGetInfo_r(struct libnetapi_ctx *ctx,
 		goto done;
 	}
 
+	if (!W_ERROR_IS_OK(werr)) {
+		goto done;
+	}
+
 	status = map_server_info_to_SERVER_INFO_buffer(ctx, r->in.level, &info,
 						       r->out.buffer);
 	if (!NT_STATUS_IS_OK(status)) {
@@ -598,6 +605,7 @@ WERROR NetServerSetInfo_r(struct libnetapi_ctx *ctx,
 	NTSTATUS status;
 	WERROR werr;
 	union srvsvc_NetSrvInfo info;
+	struct dcerpc_binding_handle *b;
 
 	werr = libnetapi_open_pipe(ctx, r->in.server_name,
 				   &ndr_table_srvsvc.syntax_id,
@@ -606,6 +614,8 @@ WERROR NetServerSetInfo_r(struct libnetapi_ctx *ctx,
 		goto done;
 	}
 
+	b = pipe_cli->binding_handle;
+
 	switch (r->in.level) {
 		case 1005:
 			info.info1005 = (struct srvsvc_NetSrvInfo1005 *)r->in.buffer;
@@ -615,7 +625,7 @@ WERROR NetServerSetInfo_r(struct libnetapi_ctx *ctx,
 			goto done;
 	}
 
-	status = rpccli_srvsvc_NetSrvSetInfo(pipe_cli, talloc_tos(),
+	status = dcerpc_srvsvc_NetSrvSetInfo(b, talloc_tos(),
 					     r->in.server_name,
 					     r->in.level,
 					     &info,
@@ -640,6 +650,7 @@ WERROR NetRemoteTOD_r(struct libnetapi_ctx *ctx,
 	NTSTATUS status;
 	WERROR werr;
 	struct srvsvc_NetRemoteTODInfo *info = NULL;
+	struct dcerpc_binding_handle *b;
 
 	werr = libnetapi_open_pipe(ctx, r->in.server_name,
 				   &ndr_table_srvsvc.syntax_id,
@@ -648,7 +659,9 @@ WERROR NetRemoteTOD_r(struct libnetapi_ctx *ctx,
 		goto done;
 	}
 
-	status = rpccli_srvsvc_NetRemoteTOD(pipe_cli, talloc_tos(),
+	b = pipe_cli->binding_handle;
+
+	status = dcerpc_srvsvc_NetRemoteTOD(b, talloc_tos(),
 					    r->in.server_name,
 					    &info,
 					    &werr);
@@ -657,6 +670,10 @@ WERROR NetRemoteTOD_r(struct libnetapi_ctx *ctx,
 		goto done;
 	}
 
+	if (!W_ERROR_IS_OK(werr)) {
+		goto done;
+	}
+
 	*r->out.buffer = (uint8_t *)talloc_memdup(ctx, info,
 			  sizeof(struct srvsvc_NetRemoteTODInfo));
 	W_ERROR_HAVE_NO_MEMORY(*r->out.buffer);
diff --git a/source3/lib/netapi/share.c b/source3/lib/netapi/share.c
index 4232a9e..c9c6d14 100644
--- a/source3/lib/netapi/share.c
+++ b/source3/lib/netapi/share.c
@@ -184,6 +184,7 @@ WERROR NetShareAdd_r(struct libnetapi_ctx *ctx,
 	NTSTATUS status;
 	struct rpc_pipe_client *pipe_cli = NULL;
 	union srvsvc_NetShareInfo info;
+	struct dcerpc_binding_handle *b;
 
 	if (!r->in.buffer) {
 		return WERR_INVALID_PARAM;
@@ -206,6 +207,8 @@ WERROR NetShareAdd_r(struct libnetapi_ctx *ctx,
 		goto done;
 	}
 
+	b = pipe_cli->binding_handle;
+
 	status = map_SHARE_INFO_buffer_to_srvsvc_share_info(ctx,
 							    r->in.buffer,
 							    r->in.level,
@@ -215,12 +218,17 @@ WERROR NetShareAdd_r(struct libnetapi_ctx *ctx,
 		goto done;
 	}
 
-	status = rpccli_srvsvc_NetShareAdd(pipe_cli, talloc_tos(),
+	status = dcerpc_srvsvc_NetShareAdd(b, talloc_tos(),
 					   r->in.server_name,
 					   r->in.level,
 					   &info,
 					   r->out.parm_err,
 					   &werr);
+	if (!NT_STATUS_IS_OK(status)) {
+		werr = ntstatus_to_werror(status);
+		goto done;
+	}
+
 	if (!W_ERROR_IS_OK(werr)) {
 		goto done;
 	}
@@ -247,6 +255,7 @@ WERROR NetShareDel_r(struct libnetapi_ctx *ctx,
 	WERROR werr;


-- 
Samba Shared Repository


More information about the samba-cvs mailing list