The branch, v3-3-test has been updated
       via  4a4e90a3872d34791de43c3849c60e2f4e713d47 (commit)
       via  93210f04c3b1e4fe977a395531ddc0387a65dab5 (commit)
       via  eee28804b7efc3089ce3528f13de6c930cf00adb (commit)
       via  0259914f8ff04514a8395d8e1af61aadd50c5efb (commit)
       via  aa70e588803e3767796dc958b139f4ee464d8626 (commit)
       via  bded298e022028d6237e25e1c785509bc983be9d (commit)
       via  dcf6d879a14a70ce5795eb8dcfbfe2fc5a8ad859 (commit)
      from  60718a203c1d90dbdcdcb2eaf6b37f6135fb411b (commit)

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


- Log -----------------------------------------------------------------
commit 4a4e90a3872d34791de43c3849c60e2f4e713d47
Author: Günther Deschner <[EMAIL PROTECTED]>
Date:   Wed Aug 13 13:59:08 2008 +0200

    netapi: add some remaining documentation fixes.
    
    Guenther

commit 93210f04c3b1e4fe977a395531ddc0387a65dab5
Author: Günther Deschner <[EMAIL PROTECTED]>
Date:   Tue Aug 12 19:47:37 2008 +0200

    netapi: add doxygen documentation for NetUserModalsGet and NetUserModalsSet.
    
    Guenther

commit eee28804b7efc3089ce3528f13de6c930cf00adb
Author: Günther Deschner <[EMAIL PROTECTED]>
Date:   Tue Aug 12 19:39:38 2008 +0200

    netapi: add doxygen documentation for NetLocalGroup{Add,Del,Set,Get}Members.
    
    Guenther

commit 0259914f8ff04514a8395d8e1af61aadd50c5efb
Author: Günther Deschner <[EMAIL PROTECTED]>
Date:   Tue Aug 12 17:59:23 2008 +0200

    netapi: make libnetapi_open_ipc_connection static.
    
    Guenther

commit aa70e588803e3767796dc958b139f4ee464d8626
Author: Günther Deschner <[EMAIL PROTECTED]>
Date:   Tue Aug 12 15:25:06 2008 +0200

    netapi: make non-implemented local calls default to remote "localhost" 
calls.
    
    Guenther

commit bded298e022028d6237e25e1c785509bc983be9d
Author: Günther Deschner <[EMAIL PROTECTED]>
Date:   Tue Aug 12 12:49:19 2008 +0200

    netapi: add NetLocalGroupGetMembers example code.
    
    Guenther

commit dcf6d879a14a70ce5795eb8dcfbfe2fc5a8ad859
Author: Günther Deschner <[EMAIL PROTECTED]>
Date:   Mon Aug 11 20:39:14 2008 +0200

    netapi: let libnetapi_samr_lookup_and_open_alias return NTSTATUS.
    
    Guenther

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

Summary of changes:
 source/lib/netapi/cm.c                             |   20 ++-
 source/lib/netapi/examples/Makefile.in             |    6 +
 .../localgroup_getmembers.c}                       |   88 ++++---
 source/lib/netapi/getdc.c                          |   31 +--
 source/lib/netapi/group.c                          |   79 +++----
 source/lib/netapi/joindomain.c                     |   36 +--
 source/lib/netapi/localgroup.c                     |  238 +++++++++-----------
 source/lib/netapi/netapi.h                         |  111 +++++++++-
 source/lib/netapi/netapi_private.h                 |   13 +-
 source/lib/netapi/serverinfo.c                     |   29 +--
 source/lib/netapi/user.c                           |   99 +++------
 11 files changed, 390 insertions(+), 360 deletions(-)
 copy source/lib/netapi/examples/{group/group_enum.c => 
localgroup/localgroup_getmembers.c} (57%)


Changeset truncated at 500 lines:

diff --git a/source/lib/netapi/cm.c b/source/lib/netapi/cm.c
index 8ea31e5..a5c85bf 100644
--- a/source/lib/netapi/cm.c
+++ b/source/lib/netapi/cm.c
@@ -25,9 +25,9 @@
 /********************************************************************
 ********************************************************************/
 
-WERROR libnetapi_open_ipc_connection(struct libnetapi_ctx *ctx,
-                                    const char *server_name,
-                                    struct cli_state **cli)
+static WERROR libnetapi_open_ipc_connection(struct libnetapi_ctx *ctx,
+                                           const char *server_name,
+                                           struct cli_state **cli)
 {
        struct cli_state *cli_ipc = NULL;
 
@@ -161,17 +161,25 @@ static NTSTATUS pipe_cm_open(TALLOC_CTX *ctx,
 ********************************************************************/
 
 WERROR libnetapi_open_pipe(struct libnetapi_ctx *ctx,
-                          struct cli_state *cli,
+                          const char *server_name,
                           const struct ndr_syntax_id *interface,
+                          struct cli_state **pcli,
                           struct rpc_pipe_client **presult)
 {
        struct rpc_pipe_client *result = NULL;
        NTSTATUS status;
+       WERROR werr;
+       struct cli_state *cli = NULL;
 
-       if (!cli || !presult) {
+       if (!presult) {
                return WERR_INVALID_PARAM;
        }
 
+       werr = libnetapi_open_ipc_connection(ctx, server_name, &cli);
+       if (!W_ERROR_IS_OK(werr)) {
+               return werr;
+       }
+
        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",
@@ -182,6 +190,8 @@ WERROR libnetapi_open_pipe(struct libnetapi_ctx *ctx,
        }
 
        *presult = result;
+       *pcli = cli;
+
        return WERR_OK;
 }
 
diff --git a/source/lib/netapi/examples/Makefile.in 
b/source/lib/netapi/examples/Makefile.in
index 158df4f..0b7553c 100644
--- a/source/lib/netapi/examples/Makefile.in
+++ b/source/lib/netapi/examples/Makefile.in
@@ -47,6 +47,7 @@ PROGS = bin/[EMAIL PROTECTED]@ \
        bin/[EMAIL PROTECTED]@ \
        bin/[EMAIL PROTECTED]@ \
        bin/[EMAIL PROTECTED]@ \
+       bin/[EMAIL PROTECTED]@ \
        bin/[EMAIL PROTECTED]@
 
 all: $(PROGS)
@@ -106,6 +107,7 @@ LOCALGROUPENUM_OBJ = localgroup/localgroup_enum.o 
$(CMDLINE_OBJ)
 LOCALGROUPADDMEMBERS_OBJ = localgroup/localgroup_addmembers.o $(CMDLINE_OBJ)
 LOCALGROUPDELMEMBERS_OBJ = localgroup/localgroup_delmembers.o $(CMDLINE_OBJ)
 LOCALGROUPSETMEMBERS_OBJ = localgroup/localgroup_setmembers.o $(CMDLINE_OBJ)
+LOCALGROUPGETMEMBERS_OBJ = localgroup/localgroup_getmembers.o $(CMDLINE_OBJ)
 REMOTETOD_OBJ = server/remote_tod.o $(CMDLINE_OBJ)
 
 bin/[EMAIL PROTECTED]@: $(BINARY_PREREQS) $(GETDC_OBJ)
@@ -228,6 +230,10 @@ bin/[EMAIL PROTECTED]@: $(BINARY_PREREQS) 
$(LOCALGROUPSETMEMBERS_OBJ)
        @echo Linking $@
        @$(CC) $(FLAGS) -o $@ $(LOCALGROUPSETMEMBERS_OBJ) $(LDFLAGS) $(DYNEXP) 
$(CMDLINE_LIBS)
 
+bin/[EMAIL PROTECTED]@: $(BINARY_PREREQS) $(LOCALGROUPGETMEMBERS_OBJ)
+       @echo Linking $@
+       @$(CC) $(FLAGS) -o $@ $(LOCALGROUPGETMEMBERS_OBJ) $(LDFLAGS) $(DYNEXP) 
$(CMDLINE_LIBS)
+
 bin/[EMAIL PROTECTED]@: $(BINARY_PREREQS) $(REMOTETOD_OBJ)
        @echo Linking $@
        @$(CC) $(FLAGS) -o $@ $(REMOTETOD_OBJ) $(LDFLAGS) $(DYNEXP) 
$(CMDLINE_LIBS)
diff --git a/source/lib/netapi/examples/group/group_enum.c 
b/source/lib/netapi/examples/localgroup/localgroup_getmembers.c
similarity index 57%
copy from source/lib/netapi/examples/group/group_enum.c
copy to source/lib/netapi/examples/localgroup/localgroup_getmembers.c
index fe2aee1..0589870 100644
--- a/source/lib/netapi/examples/group/group_enum.c
+++ b/source/lib/netapi/examples/localgroup/localgroup_getmembers.c
@@ -1,6 +1,6 @@
 /*
  *  Unix SMB/CIFS implementation.
- *  NetGroupEnum query
+ *  NetLocalGroupGetMembers query
  *  Copyright (C) Guenther Deschner 2008
  *
  *  This program is free software; you can redistribute it and/or modify
@@ -32,18 +32,19 @@ int main(int argc, const char **argv)
        NET_API_STATUS status;
        struct libnetapi_ctx *ctx = NULL;
        const char *hostname = NULL;
+       const char *groupname = NULL;
        uint32_t level = 0;
        uint8_t *buffer = NULL;
        uint32_t entries_read = 0;
        uint32_t total_entries = 0;
        uint32_t resume_handle = 0;
-       int i;
        char *sid_str = NULL;
+       int i;
 
-       struct GROUP_INFO_0 *info0 = NULL;
-       struct GROUP_INFO_1 *info1 = NULL;
-       struct GROUP_INFO_2 *info2 = NULL;
-       struct GROUP_INFO_3 *info3 = NULL;
+       struct LOCALGROUP_MEMBERS_INFO_0 *info0 = NULL;
+       struct LOCALGROUP_MEMBERS_INFO_1 *info1 = NULL;
+       struct LOCALGROUP_MEMBERS_INFO_2 *info2 = NULL;
+       struct LOCALGROUP_MEMBERS_INFO_3 *info3 = NULL;
 
        poptContext pc;
        int opt;
@@ -59,9 +60,9 @@ int main(int argc, const char **argv)
                return status;
        }
 
-       pc = poptGetContext("group_enum", argc, argv, long_options, 0);
+       pc = poptGetContext("localgroup_getmembers", argc, argv, long_options, 
0);
 
-       poptSetOtherOptionHelp(pc, "hostname level");
+       poptSetOtherOptionHelp(pc, "hostname groupname level");
        while((opt = poptGetNextOpt(pc)) != -1) {
        }
 
@@ -70,35 +71,41 @@ int main(int argc, const char **argv)
                goto out;
        }
        hostname = poptGetArg(pc);
+       if (!poptPeekArg(pc)) {
+               poptPrintHelp(pc, stderr, 0);
+               goto out;
+       }
+       groupname = poptGetArg(pc);
 
        if (poptPeekArg(pc)) {
                level = atoi(poptGetArg(pc));
        }
 
-       /* NetGroupEnum */
+       /* NetLocalGroupGetMembers */
 
        do {
-               status = NetGroupEnum(hostname,
-                                     level,
-                                     &buffer,
-                                     (uint32_t)-1,
-                                     &entries_read,
-                                     &total_entries,
-                                     &resume_handle);
+               status = NetLocalGroupGetMembers(hostname,
+                                                groupname,
+                                                level,
+                                                &buffer,
+                                                (uint32_t)-1,
+                                                &entries_read,
+                                                &total_entries,
+                                                &resume_handle);
                if (status == 0 || status == ERROR_MORE_DATA) {
                        printf("total entries: %d\n", total_entries);
                        switch (level) {
                                case 0:
-                                       info0 = (struct GROUP_INFO_0 *)buffer;
+                                       info0 = (struct 
LOCALGROUP_MEMBERS_INFO_0 *)buffer;
                                        break;
                                case 1:
-                                       info1 = (struct GROUP_INFO_1 *)buffer;
+                                       info1 = (struct 
LOCALGROUP_MEMBERS_INFO_1 *)buffer;
                                        break;
                                case 2:
-                                       info2 = (struct GROUP_INFO_2 *)buffer;
+                                       info2 = (struct 
LOCALGROUP_MEMBERS_INFO_2 *)buffer;
                                        break;
                                case 3:
-                                       info3 = (struct GROUP_INFO_3 *)buffer;
+                                       info3 = (struct 
LOCALGROUP_MEMBERS_INFO_3 *)buffer;
                                        break;
                                default:
                                        break;
@@ -106,34 +113,39 @@ int main(int argc, const char **argv)
                        for (i=0; i<entries_read; i++) {
                                switch (level) {
                                        case 0:
-                                               printf("#%d group: %s\n", i, 
info0->grpi0_name);
+                                               if 
(ConvertSidToStringSid(info0->lgrmi0_sid,
+                                                                         
&sid_str)) {
+                                                       printf("#%d member sid: 
%s\n", i, sid_str);
+                                                       free(sid_str);
+                                               }
                                                info0++;
                                                break;
                                        case 1:
-                                               printf("#%d group: %s\n", i, 
info1->grpi1_name);
-                                               printf("#%d comment: %s\n", i, 
info1->grpi1_comment);
+                                               if 
(ConvertSidToStringSid(info1->lgrmi1_sid,
+                                                                         
&sid_str)) {
+                                                       printf("#%d member sid: 
%s\n", i, sid_str);
+                                                       free(sid_str);
+                                               }
+                                               printf("#%d sid type: %d\n", i, 
info1->lgrmi1_sidusage);
+                                               printf("#%d name: %s\n", i, 
info1->lgrmi1_name);
                                                info1++;
                                                break;
                                        case 2:
-                                               printf("#%d group: %s\n", i, 
info2->grpi2_name);
-                                               printf("#%d comment: %s\n", i, 
info2->grpi2_comment);
-                                               printf("#%d rid: %d\n", i, 
info2->grpi2_group_id);
-                                               printf("#%d attributes: 
0x%08x\n", i, info2->grpi2_attributes);
-                                               info2++;
-                                               break;
-                                       case 3:
-                                               printf("#%d group: %s\n", i, 
info3->grpi3_name);
-                                               printf("#%d comment: %s\n", i, 
info3->grpi3_comment);
-                                               if 
(ConvertSidToStringSid(info3->grpi3_group_sid,
+                                               if 
(ConvertSidToStringSid(info2->lgrmi2_sid,
                                                                          
&sid_str)) {
-                                                       printf("#%d group_sid: 
%s\n", i, sid_str);
+                                                       printf("#%d member sid: 
%s\n", i, sid_str);
                                                        free(sid_str);
                                                }
-                                               printf("#%d attributes: 
0x%08x\n", i, info3->grpi3_attributes);
+                                               printf("#%d sid type: %d\n", i, 
info2->lgrmi2_sidusage);
+                                               printf("#%d full name: %s\n", 
i, info2->lgrmi2_domainandname);
+                                               info2++;
+                                               break;
+                                       case 3:
+                                               printf("#%d full name: %s\n", 
i, info3->lgrmi3_domainandname);
                                                info3++;
                                                break;
-
-
+                                       default:
+                                               break;
                                }
                        }
                        NetApiBufferFree(buffer);
@@ -141,7 +153,7 @@ int main(int argc, const char **argv)
        } while (status == ERROR_MORE_DATA);
 
        if (status != 0) {
-               printf("NetGroupEnum failed with: %s\n",
+               printf("NetLocalGroupGetMembers failed with: %s\n",
                        libnetapi_get_error_string(ctx, status));
        }
 
diff --git a/source/lib/netapi/getdc.c b/source/lib/netapi/getdc.c
index 4636042..07a6544 100644
--- a/source/lib/netapi/getdc.c
+++ b/source/lib/netapi/getdc.c
@@ -31,7 +31,7 @@
 WERROR NetGetDCName_l(struct libnetapi_ctx *ctx,
                      struct NetGetDCName *r)
 {
-       return WERR_NOT_SUPPORTED;
+       LIBNETAPI_REDIRECT_TO_LOCALHOST(ctx, r, NetGetDCName);
 }
 
 /********************************************************************
@@ -45,12 +45,9 @@ WERROR NetGetDCName_r(struct libnetapi_ctx *ctx,
        NTSTATUS status;
        WERROR werr;
 
-       werr = libnetapi_open_ipc_connection(ctx, r->in.server_name, &cli);
-       if (!W_ERROR_IS_OK(werr)) {
-               goto done;
-       }
-
-       werr = libnetapi_open_pipe(ctx, cli, &ndr_table_netlogon.syntax_id,
+       werr = libnetapi_open_pipe(ctx, r->in.server_name,
+                                  &ndr_table_netlogon.syntax_id,
+                                  &cli,
                                   &pipe_cli);
        if (!W_ERROR_IS_OK(werr)) {
                goto done;
@@ -72,7 +69,7 @@ WERROR NetGetDCName_r(struct libnetapi_ctx *ctx,
 WERROR NetGetAnyDCName_l(struct libnetapi_ctx *ctx,
                         struct NetGetAnyDCName *r)
 {
-       return WERR_NOT_SUPPORTED;
+       LIBNETAPI_REDIRECT_TO_LOCALHOST(ctx, r, NetGetAnyDCName);
 }
 
 /********************************************************************
@@ -86,12 +83,9 @@ WERROR NetGetAnyDCName_r(struct libnetapi_ctx *ctx,
        NTSTATUS status;
        WERROR werr;
 
-       werr = libnetapi_open_ipc_connection(ctx, r->in.server_name, &cli);
-       if (!W_ERROR_IS_OK(werr)) {
-               goto done;
-       }
-
-       werr = libnetapi_open_pipe(ctx, cli, &ndr_table_netlogon.syntax_id,
+       werr = libnetapi_open_pipe(ctx, r->in.server_name,
+                                  &ndr_table_netlogon.syntax_id,
+                                  &cli,
                                   &pipe_cli);
        if (!W_ERROR_IS_OK(werr)) {
                goto done;
@@ -146,12 +140,9 @@ WERROR DsGetDcName_r(struct libnetapi_ctx *ctx,
        struct cli_state *cli = NULL;
        struct rpc_pipe_client *pipe_cli = NULL;
 
-       werr = libnetapi_open_ipc_connection(ctx, r->in.server_name, &cli);
-       if (!W_ERROR_IS_OK(werr)) {
-               goto done;
-       }
-
-       werr = libnetapi_open_pipe(ctx, cli, &ndr_table_netlogon.syntax_id,
+       werr = libnetapi_open_pipe(ctx, r->in.server_name,
+                                  &ndr_table_netlogon.syntax_id,
+                                  &cli,
                                   &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 30ff6af..f7c9366 100644
--- a/source/lib/netapi/group.c
+++ b/source/lib/netapi/group.c
@@ -71,12 +71,9 @@ WERROR NetGroupAdd_r(struct libnetapi_ctx *ctx,
                        goto done;
        }
 
-       werr = libnetapi_open_ipc_connection(ctx, r->in.server_name, &cli);
-       if (!W_ERROR_IS_OK(werr)) {
-               goto done;
-       }
-
-       werr = libnetapi_open_pipe(ctx, cli, &ndr_table_samr.syntax_id,
+       werr = libnetapi_open_pipe(ctx, r->in.server_name,
+                                  &ndr_table_samr.syntax_id,
+                                  &cli,
                                   &pipe_cli);
        if (!W_ERROR_IS_OK(werr)) {
                goto done;
@@ -220,7 +217,7 @@ WERROR NetGroupAdd_r(struct libnetapi_ctx *ctx,
 WERROR NetGroupAdd_l(struct libnetapi_ctx *ctx,
                     struct NetGroupAdd *r)
 {
-       return NetGroupAdd_r(ctx, r);
+       LIBNETAPI_REDIRECT_TO_LOCALHOST(ctx, r, NetGroupAdd);
 }
 
 /****************************************************************
@@ -251,12 +248,9 @@ WERROR NetGroupDel_r(struct libnetapi_ctx *ctx,
                return WERR_INVALID_PARAM;
        }
 
-       werr = libnetapi_open_ipc_connection(ctx, r->in.server_name, &cli);
-       if (!W_ERROR_IS_OK(werr)) {
-               goto done;
-       }
-
-       werr = libnetapi_open_pipe(ctx, cli, &ndr_table_samr.syntax_id,
+       werr = libnetapi_open_pipe(ctx, r->in.server_name,
+                                  &ndr_table_samr.syntax_id,
+                                  &cli,
                                   &pipe_cli);
        if (!W_ERROR_IS_OK(werr)) {
                goto done;
@@ -390,7 +384,7 @@ WERROR NetGroupDel_r(struct libnetapi_ctx *ctx,
 WERROR NetGroupDel_l(struct libnetapi_ctx *ctx,
                     struct NetGroupDel *r)
 {
-       return NetGroupDel_r(ctx, r);
+       LIBNETAPI_REDIRECT_TO_LOCALHOST(ctx, r, NetGroupDel);
 }
 
 /****************************************************************
@@ -425,12 +419,9 @@ WERROR NetGroupSetInfo_r(struct libnetapi_ctx *ctx,
                return WERR_INVALID_PARAM;
        }
 
-       werr = libnetapi_open_ipc_connection(ctx, r->in.server_name, &cli);
-       if (!W_ERROR_IS_OK(werr)) {
-               goto done;
-       }
-
-       werr = libnetapi_open_pipe(ctx, cli, &ndr_table_samr.syntax_id,
+       werr = libnetapi_open_pipe(ctx, r->in.server_name,
+                                  &ndr_table_samr.syntax_id,
+                                  &cli,
                                   &pipe_cli);
        if (!W_ERROR_IS_OK(werr)) {
                goto done;
@@ -578,7 +569,7 @@ WERROR NetGroupSetInfo_r(struct libnetapi_ctx *ctx,
 WERROR NetGroupSetInfo_l(struct libnetapi_ctx *ctx,
                         struct NetGroupSetInfo *r)
 {
-       return NetGroupSetInfo_r(ctx, r);
+       LIBNETAPI_REDIRECT_TO_LOCALHOST(ctx, r, NetGroupSetInfo);
 }
 
 /****************************************************************
@@ -669,12 +660,9 @@ WERROR NetGroupGetInfo_r(struct libnetapi_ctx *ctx,
                return WERR_INVALID_PARAM;
        }
 
-       werr = libnetapi_open_ipc_connection(ctx, r->in.server_name, &cli);
-       if (!W_ERROR_IS_OK(werr)) {
-               goto done;
-       }
-
-       werr = libnetapi_open_pipe(ctx, cli, &ndr_table_samr.syntax_id,
+       werr = libnetapi_open_pipe(ctx, r->in.server_name,
+                                  &ndr_table_samr.syntax_id,
+                                  &cli,
                                   &pipe_cli);
        if (!W_ERROR_IS_OK(werr)) {
                goto done;
@@ -766,7 +754,7 @@ WERROR NetGroupGetInfo_r(struct libnetapi_ctx *ctx,
 WERROR NetGroupGetInfo_l(struct libnetapi_ctx *ctx,
                         struct NetGroupGetInfo *r)
 {
-       return NetGroupGetInfo_r(ctx, r);
+       LIBNETAPI_REDIRECT_TO_LOCALHOST(ctx, r, NetGroupGetInfo);
 }
 
 /****************************************************************
@@ -794,12 +782,9 @@ WERROR NetGroupAddUser_r(struct libnetapi_ctx *ctx,
                return WERR_INVALID_PARAM;
        }
 
-       werr = libnetapi_open_ipc_connection(ctx, r->in.server_name, &cli);
-       if (!W_ERROR_IS_OK(werr)) {
-               goto done;
-       }
-
-       werr = libnetapi_open_pipe(ctx, cli, &ndr_table_samr.syntax_id,
+       werr = libnetapi_open_pipe(ctx, r->in.server_name,
+                                  &ndr_table_samr.syntax_id,
+                                  &cli,
                                   &pipe_cli);
        if (!W_ERROR_IS_OK(werr)) {
                goto done;
@@ -896,7 +881,7 @@ WERROR NetGroupAddUser_r(struct libnetapi_ctx *ctx,
 WERROR NetGroupAddUser_l(struct libnetapi_ctx *ctx,
                         struct NetGroupAddUser *r)
 {
-       return NetGroupAddUser_r(ctx, r);
+       LIBNETAPI_REDIRECT_TO_LOCALHOST(ctx, r, NetGroupAddUser);
 }
 
 /****************************************************************
@@ -924,12 +909,9 @@ WERROR NetGroupDelUser_r(struct libnetapi_ctx *ctx,
                return WERR_INVALID_PARAM;
        }
 
-       werr = libnetapi_open_ipc_connection(ctx, r->in.server_name, &cli);
-       if (!W_ERROR_IS_OK(werr)) {
-               goto done;
-       }
-
-       werr = libnetapi_open_pipe(ctx, cli, &ndr_table_samr.syntax_id,
+       werr = libnetapi_open_pipe(ctx, r->in.server_name,
+                                  &ndr_table_samr.syntax_id,
+                                  &cli,
                                   &pipe_cli);
        if (!W_ERROR_IS_OK(werr)) {
                goto done;
@@ -1025,7 +1007,7 @@ WERROR NetGroupDelUser_r(struct libnetapi_ctx *ctx,
 WERROR NetGroupDelUser_l(struct libnetapi_ctx *ctx,
                         struct NetGroupDelUser *r)
 {
-       return NetGroupDelUser_r(ctx, r);
+       LIBNETAPI_REDIRECT_TO_LOCALHOST(ctx, r, NetGroupDelUser);
 }
 
 /****************************************************************
@@ -1211,12 +1193,9 @@ WERROR NetGroupEnum_r(struct libnetapi_ctx *ctx,
                        return WERR_UNKNOWN_LEVEL;
        }
 
-       werr = libnetapi_open_ipc_connection(ctx, r->in.server_name, &cli);
-       if (!W_ERROR_IS_OK(werr)) {
-               goto done;
-       }
-
-       werr = libnetapi_open_pipe(ctx, cli, &ndr_table_samr.syntax_id,
+       werr = libnetapi_open_pipe(ctx, r->in.server_name,
+                                  &ndr_table_samr.syntax_id,
+                                  &cli,
                                   &pipe_cli);
        if (!W_ERROR_IS_OK(werr)) {
                goto done;
@@ -1304,7 +1283,7 @@ WERROR NetGroupEnum_r(struct libnetapi_ctx *ctx,
 WERROR NetGroupEnum_l(struct libnetapi_ctx *ctx,
                      struct NetGroupEnum *r)


-- 
Samba Shared Repository

Reply via email to