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 <[email protected]>
Date:   Wed Jan 12 22:55:43 2011 +0100

    s3-build: remove RPCCLI_WINREG subsystem.
    
    Guenther
    
    Signed-off-by: Andreas Schneider <[email protected]>
    
    Autobuild-User: Andreas Schneider <[email protected]>
    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 <[email protected]>
Date:   Wed Jan 12 22:55:34 2011 +0100

    s3-waf: remove RPCCLI_WINREG subsystem.
    
    Guenther
    
    Signed-off-by: Andreas Schneider <[email protected]>
    (cherry picked from commit 2e54b01bde9af9df1a00a7b3df5cf6270b3fe56a)

commit 6843e286c3477714a6ddc18b4d1738289d924d75
Author: Günther Deschner <[email protected]>
Date:   Wed Jan 12 22:53:52 2011 +0100

    s3-net_registry: prefer dcerpc_winreg_X functions.
    
    Guenther
    
    Signed-off-by: Andreas Schneider <[email protected]>
    (cherry picked from commit 166504adb711e0bf582d71c38f5b08beb2806978)

commit 0503876636c7ec9bcd0e5c5b0e8668dfd93d71dd
Author: Günther Deschner <[email protected]>
Date:   Wed Jan 12 21:59:23 2011 +0100

    s3-net: prefer dcerpc_winreg_X functions.
    
    Guenther
    
    Signed-off-by: Andreas Schneider <[email protected]>
    (cherry picked from commit da433458e5ba82e9cf94aed04ecfcda89b287331)

commit fa760803580cd74c556bde0af6b4119d0262f0c2
Author: Günther Deschner <[email protected]>
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 <[email protected]>
    (cherry picked from commit a451c54b3db9da5f0cfda0b72c7af1eae3ada6f8)

commit 4bf214b4dad4566a2c056a7f6cc055031642a3b1
Author: Günther Deschner <[email protected]>
Date:   Wed Jan 12 21:11:17 2011 +0100

    s3-rpcclient: prefer dcerpc_winreg_X functions.
    
    Guenther
    
    Signed-off-by: Andreas Schneider <[email protected]>
    (cherry picked from commit d97eb89c2a0f7ab4543922a417f1fb9fcd8fbaec)

commit c762b26fd94c24718e7e0115be5b99c670eaad8b
Author: Günther Deschner <[email protected]>
Date:   Wed Jan 12 13:25:51 2011 +0100

    s3-build: remove RPCCLI_SRVSVC subsystem.
    
    Guenther
    
    Signed-off-by: Andreas Schneider <[email protected]>
    (cherry picked from commit 7e959004d790536cc932285c2d38a566ea130b5d)

commit b937ac133ec8fa6f54a1a1719de20642b29f3d86
Author: Günther Deschner <[email protected]>
Date:   Wed Jan 12 13:25:42 2011 +0100

    s3-waf: remove RPCCLI_SRVSVC subsystem.
    
    Guenther
    
    Signed-off-by: Andreas Schneider <[email protected]>
    (cherry picked from commit 9204e04f274b69b34dd3da8bf63e4eeb7050cb50)

commit 5bb34107a7ece6293184849cb98e4f9f149ecf49
Author: Günther Deschner <[email protected]>
Date:   Wed Jan 12 13:22:08 2011 +0100

    s3-rpcclient: prefer dcerpc_srvsvc_X functions.
    
    Guenther
    
    Signed-off-by: Andreas Schneider <[email protected]>
    (cherry picked from commit bded49f5d637c30ae33564d0642d1e58adddaaec)

commit d13af6c247c3a962d8254fe2127f9835cb35dbbf
Author: Günther Deschner <[email protected]>
Date:   Wed Jan 12 13:11:41 2011 +0100

    s3-net: prefer dcerpc_srvsvc_X functions.
    
    Guenther
    
    Signed-off-by: Andreas Schneider <[email protected]>
    (cherry picked from commit 8aa5b067b9dfa1897dc12316987686d1e1c5946d)

commit 94694e3692f87b384939aeb2a84586d60045c860
Author: Günther Deschner <[email protected]>
Date:   Wed Jan 12 13:01:57 2011 +0100

    s3-smbtree: prefer dcerpc_srvsvc_X functions.
    
    Guenther
    
    Signed-off-by: Andreas Schneider <[email protected]>
    (cherry picked from commit 1ea6dd35f4ebca968e23602ba009f45e4f914161)

commit a17b8ec89efe79967d7f5c64b239bb8ce8a6e8ce
Author: Günther Deschner <[email protected]>
Date:   Wed Jan 12 13:00:49 2011 +0100

    s3-lanman: prefer dcerpc_srvsvc_X functions.
    
    Guenther
    
    Signed-off-by: Andreas Schneider <[email protected]>
    (cherry picked from commit 4189c00caeaa9cdd71d9e5cbb35e2efdd9ad3ac6)

commit 7b9ce6fa65b002fd1f593e722f819ff82e70f905
Author: Günther Deschner <[email protected]>
Date:   Wed Jan 12 12:58:44 2011 +0100

    s3-libsmbclient: prefer dcerpc_srvsvc_X functions.
    
    Guenther
    
    Signed-off-by: Andreas Schneider <[email protected]>
    (cherry picked from commit 44e048f7a89a2fd26cca680cb9e53c02103d7750)

commit 16dfb6551f60a3a42401393a71c9365f81b51703
Author: Günther Deschner <[email protected]>
Date:   Wed Jan 12 12:56:55 2011 +0100

    s3-smbclient: prefer dcerpc_srvsvc_X functions.
    
    Guenther
    
    Signed-off-by: Andreas Schneider <[email protected]>
    (cherry picked from commit fccfd29283154d9ec252fcb4c26f21301150dc5f)

commit 52b0f1cadae996375245c66049d1e2b03c15d943
Author: Günther Deschner <[email protected]>
Date:   Wed Jan 12 12:51:07 2011 +0100

    s3-libnetapi: prefer dcerpc_srvsvc_X functions.
    
    Guenther
    
    Signed-off-by: Andreas Schneider <[email protected]>
    (cherry picked from commit 1ef94dffe6e0b86e0ff30f7d37dc81fc251f6d95)

commit f26c759326eb47db638ec3be87dcfb4821a0b966
Author: Günther Deschner <[email protected]>
Date:   Wed Jan 12 12:12:32 2011 +0100

    s3-build: remove RPCCLI_NETLOGON subsystem.
    
    Guenther
    
    Signed-off-by: Andreas Schneider <[email protected]>
    (cherry picked from commit aa4efa154f9f7b2d152a99f822c3970f3b736705)

commit 116bd99611d10ea770b5039aae44387996243a99
Author: Günther Deschner <[email protected]>
Date:   Wed Jan 12 12:12:22 2011 +0100

    s3-waf: remove RPCCLI_NETLOGON subsystem.
    
    Guenther
    
    Signed-off-by: Andreas Schneider <[email protected]>
    (cherry picked from commit 9a9ee03ae8331e81281c12b159df1dd66b5cc851)

commit 24d92c5e240011f034b3db4379a869c31e6a015d
Author: Günther Deschner <[email protected]>
Date:   Wed Jan 12 12:08:42 2011 +0100

    s3-rpcclient: prefer dcerpc_netr_X functions.
    
    Guenther
    
    Signed-off-by: Andreas Schneider <[email protected]>
    (cherry picked from commit 5e4b327c4f1a9a09cb46514e7ed5c213031f1218)

commit 9e34167824df5cc88220658c2cfeb4b3e78a28af
Author: Günther Deschner <[email protected]>
Date:   Wed Jan 12 11:55:34 2011 +0100

    s3-winbind: prefer dcerpc_netr_X functions.
    
    Guenther
    
    Signed-off-by: Andreas Schneider <[email protected]>
    (cherry picked from commit c9b3404c68b0b5b1f2f3008736d77c476cc0e398)

commit cd6e7f13cc3a239d4a9ad9ab5b61999ecb8b6627
Author: Günther Deschner <[email protected]>
Date:   Wed Jan 12 11:36:06 2011 +0100

    s3-rpc_client: prefer dcerpc_netr_X functions.
    
    Guenther
    
    Signed-off-by: Andreas Schneider <[email protected]>
    (cherry picked from commit 232378c6e5b1db9facd3c74b7fa82ed9a3b4ef67)

commit 1376fbab84ec4c85b5deb58f102cdcdbc1e6ad8f
Author: Günther Deschner <[email protected]>
Date:   Wed Jan 12 11:27:26 2011 +0100

    s3-net: prefer dcerpc_netr_X functions.
    
    Guenther
    
    Signed-off-by: Andreas Schneider <[email protected]>
    (cherry picked from commit 1259e93ac07fa86eacf0870744b7c6a056a30c57)

commit 662ba308dc3c84c116748486109ba7baaada8106
Author: Günther Deschner <[email protected]>
Date:   Wed Jan 12 11:21:18 2011 +0100

    s3-libnet: prefer dcerpc_netr_X functions.
    
    Guenther
    
    Signed-off-by: Andreas Schneider <[email protected]>
    (cherry picked from commit f3eb5c234e3c4e07c9839c940c4558a169087dbf)

commit 27e7f92e5f0042a78447ed0cc6a24c29ad58a801
Author: Günther Deschner <[email protected]>
Date:   Wed Jan 12 11:17:48 2011 +0100

    s3-libnetapi: prefer dcerpc_netr_X functions.
    
    Guenther
    
    Signed-off-by: Andreas Schneider <[email protected]>
    (cherry picked from commit 425753ebe3e85e1e7ea939937269c10bc5f7fd73)

commit 34d1e21b90fe7dbd1bd1319e5f67ea380b8ae5ca
Author: Günther Deschner <[email protected]>
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 <[email protected]>
    (cherry picked from commit f9ca6904a474e8c33532708977878940ad5696e0)

commit c64837e5f7ddd75ea9caed062df8e03ea9da4eed
Author: Günther Deschner <[email protected]>
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 <[email protected]>
    (cherry picked from commit d0c05ab2ec5af5090048091d65a48736dcc2ba6b)

commit d510583b03e99c06a3f31d8aa4f68a7cce1e2980
Author: Günther Deschner <[email protected]>
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 <[email protected]>
    (cherry picked from commit 3e2821acda1dd2197b82048e80ef190f46068832)

commit 102a81e2ccebcfede391a32d324e23ade00b7f5b
Author: Günther Deschner <[email protected]>
Date:   Tue Jan 11 23:22:18 2011 +0100

    s3-build: remove RPCCLI_SVCCTL subsystem.
    
    Guenther
    
    Signed-off-by: Andreas Schneider <[email protected]>
    (cherry picked from commit 5ad7d6aaa8f0067e23ce5ef892026a0898fc1068)

commit 6f27c46d04185c6a5a250e0e0d3bf8da64317cd9
Author: Günther Deschner <[email protected]>
Date:   Tue Jan 11 23:22:07 2011 +0100

    s3-waf: remove RPCCLI_SVCCTL subsystem.
    
    Guenther
    
    Signed-off-by: Andreas Schneider <[email protected]>
    (cherry picked from commit 067e54881846baf35a456fcc546a7cc9e3180ac4)

commit 88a04a6e281840963c62456d5f065f0838887ee9
Author: Günther Deschner <[email protected]>
Date:   Tue Jan 11 23:21:41 2011 +0100

    s3-svcctl: prefer dcerpc_svcctl_X functions.
    
    Guenther
    
    Signed-off-by: Andreas Schneider <[email protected]>
    (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

Reply via email to