[SCM] Samba Shared Repository - branch v3-6-test updated
Jeremy Allison
jra at samba.org
Thu Jan 13 18:29:54 MST 2011
The branch, v3-6-test has been updated
via 8b821f3 s3-build: remove RPCCLI_WINREG subsystem.
via a0af428 s3-waf: remove RPCCLI_WINREG subsystem.
via 6843e28 s3-net_registry: prefer dcerpc_winreg_X functions.
via 05038766 s3-net: prefer dcerpc_winreg_X functions.
via fa76080 s3-spoolss: no need to include cli_winreg header anymore.
via 4bf214b s3-rpcclient: prefer dcerpc_winreg_X functions.
via c762b26 s3-build: remove RPCCLI_SRVSVC subsystem.
via b937ac1 s3-waf: remove RPCCLI_SRVSVC subsystem.
via 5bb3410 s3-rpcclient: prefer dcerpc_srvsvc_X functions.
via d13af6c s3-net: prefer dcerpc_srvsvc_X functions.
via 94694e3 s3-smbtree: prefer dcerpc_srvsvc_X functions.
via a17b8ec s3-lanman: prefer dcerpc_srvsvc_X functions.
via 7b9ce6f s3-libsmbclient: prefer dcerpc_srvsvc_X functions.
via 16dfb65 s3-smbclient: prefer dcerpc_srvsvc_X functions.
via 52b0f1c s3-libnetapi: prefer dcerpc_srvsvc_X functions.
via f26c759 s3-build: remove RPCCLI_NETLOGON subsystem.
via 116bd99 s3-waf: remove RPCCLI_NETLOGON subsystem.
via 24d92c5 s3-rpcclient: prefer dcerpc_netr_X functions.
via 9e34167 s3-winbind: prefer dcerpc_netr_X functions.
via cd6e7f1 s3-rpc_client: prefer dcerpc_netr_X functions.
via 1376fba s3-net: prefer dcerpc_netr_X functions.
via 662ba30 s3-libnet: prefer dcerpc_netr_X functions.
via 27e7f92 s3-libnetapi: prefer dcerpc_netr_X functions.
via 34d1e21 s3-net: remove some pointless fstrings in "net rpc service".
via c64837e s3-net: restructure "net rpc service" and add open_scm().
via d510583 s3-net: restructure "net rpc service" and add open_service().
via 102a81e s3-build: remove RPCCLI_SVCCTL subsystem.
via 6f27c46 s3-waf: remove RPCCLI_SVCCTL subsystem.
via 88a04a6 s3-svcctl: prefer dcerpc_svcctl_X functions.
from 10faf6c Fix bug #7909 - map SYNCHRONIZE acl permission statically in zfs_acl vfs module. (cherry picked from commit 75132a58c77257da5c90b92f08941dadb6aab00c)
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-6-test
- Log -----------------------------------------------------------------
commit 8b821f3dceb68b429ff3c32a1323596c1cb3ed14
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
(cherry picked from commit a556896d1e2c79c39e95f0903fb365fe3a308a2c)
commit a0af4286a24d2a293c5aac6e17e700f82148dca6
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>
(cherry picked from commit 2e54b01bde9af9df1a00a7b3df5cf6270b3fe56a)
commit 6843e286c3477714a6ddc18b4d1738289d924d75
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>
(cherry picked from commit 166504adb711e0bf582d71c38f5b08beb2806978)
commit 0503876636c7ec9bcd0e5c5b0e8668dfd93d71dd
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>
(cherry picked from commit da433458e5ba82e9cf94aed04ecfcda89b287331)
commit fa760803580cd74c556bde0af6b4119d0262f0c2
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>
(cherry picked from commit a451c54b3db9da5f0cfda0b72c7af1eae3ada6f8)
commit 4bf214b4dad4566a2c056a7f6cc055031642a3b1
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>
(cherry picked from commit d97eb89c2a0f7ab4543922a417f1fb9fcd8fbaec)
commit c762b26fd94c24718e7e0115be5b99c670eaad8b
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>
(cherry picked from commit 7e959004d790536cc932285c2d38a566ea130b5d)
commit b937ac133ec8fa6f54a1a1719de20642b29f3d86
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>
(cherry picked from commit 9204e04f274b69b34dd3da8bf63e4eeb7050cb50)
commit 5bb34107a7ece6293184849cb98e4f9f149ecf49
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>
(cherry picked from commit bded49f5d637c30ae33564d0642d1e58adddaaec)
commit d13af6c247c3a962d8254fe2127f9835cb35dbbf
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>
(cherry picked from commit 8aa5b067b9dfa1897dc12316987686d1e1c5946d)
commit 94694e3692f87b384939aeb2a84586d60045c860
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>
(cherry picked from commit 1ea6dd35f4ebca968e23602ba009f45e4f914161)
commit a17b8ec89efe79967d7f5c64b239bb8ce8a6e8ce
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>
(cherry picked from commit 4189c00caeaa9cdd71d9e5cbb35e2efdd9ad3ac6)
commit 7b9ce6fa65b002fd1f593e722f819ff82e70f905
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>
(cherry picked from commit 44e048f7a89a2fd26cca680cb9e53c02103d7750)
commit 16dfb6551f60a3a42401393a71c9365f81b51703
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>
(cherry picked from commit fccfd29283154d9ec252fcb4c26f21301150dc5f)
commit 52b0f1cadae996375245c66049d1e2b03c15d943
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>
(cherry picked from commit 1ef94dffe6e0b86e0ff30f7d37dc81fc251f6d95)
commit f26c759326eb47db638ec3be87dcfb4821a0b966
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>
(cherry picked from commit aa4efa154f9f7b2d152a99f822c3970f3b736705)
commit 116bd99611d10ea770b5039aae44387996243a99
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>
(cherry picked from commit 9a9ee03ae8331e81281c12b159df1dd66b5cc851)
commit 24d92c5e240011f034b3db4379a869c31e6a015d
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>
(cherry picked from commit 5e4b327c4f1a9a09cb46514e7ed5c213031f1218)
commit 9e34167824df5cc88220658c2cfeb4b3e78a28af
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>
(cherry picked from commit c9b3404c68b0b5b1f2f3008736d77c476cc0e398)
commit cd6e7f13cc3a239d4a9ad9ab5b61999ecb8b6627
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>
(cherry picked from commit 232378c6e5b1db9facd3c74b7fa82ed9a3b4ef67)
commit 1376fbab84ec4c85b5deb58f102cdcdbc1e6ad8f
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>
(cherry picked from commit 1259e93ac07fa86eacf0870744b7c6a056a30c57)
commit 662ba308dc3c84c116748486109ba7baaada8106
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>
(cherry picked from commit f3eb5c234e3c4e07c9839c940c4558a169087dbf)
commit 27e7f92e5f0042a78447ed0cc6a24c29ad58a801
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>
(cherry picked from commit 425753ebe3e85e1e7ea939937269c10bc5f7fd73)
commit 34d1e21b90fe7dbd1bd1319e5f67ea380b8ae5ca
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>
(cherry picked from commit f9ca6904a474e8c33532708977878940ad5696e0)
commit c64837e5f7ddd75ea9caed062df8e03ea9da4eed
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>
(cherry picked from commit d0c05ab2ec5af5090048091d65a48736dcc2ba6b)
commit d510583b03e99c06a3f31d8aa4f68a7cce1e2980
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>
(cherry picked from commit 3e2821acda1dd2197b82048e80ef190f46068832)
commit 102a81e2ccebcfede391a32d324e23ade00b7f5b
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>
(cherry picked from commit 5ad7d6aaa8f0067e23ce5ef892026a0898fc1068)
commit 6f27c46d04185c6a5a250e0e0d3bf8da64317cd9
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>
(cherry picked from commit 067e54881846baf35a456fcc546a7cc9e3180ac4)
commit 88a04a6e281840963c62456d5f065f0838887ee9
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>
(cherry picked from commit 8e588550b9c373b0be50c27978782a4574b92728)
-----------------------------------------------------------------------
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