summaryrefslogtreecommitdiff
path: root/source/lib/netapi/examples
diff options
context:
space:
mode:
Diffstat (limited to 'source/lib/netapi/examples')
-rw-r--r--source/lib/netapi/examples/Makefile.in228
-rw-r--r--source/lib/netapi/examples/file/file_close.c83
-rw-r--r--source/lib/netapi/examples/file/file_enum.c146
-rw-r--r--source/lib/netapi/examples/file/file_getinfo.c112
-rw-r--r--source/lib/netapi/examples/getjoinableous/getjoinableous.c (renamed from source/lib/netapi/examples/join/getjoinableous.c)0
-rw-r--r--source/lib/netapi/examples/group/group_add.c90
-rw-r--r--source/lib/netapi/examples/group/group_adduser.c91
-rw-r--r--source/lib/netapi/examples/group/group_del.c82
-rw-r--r--source/lib/netapi/examples/group/group_deluser.c91
-rw-r--r--source/lib/netapi/examples/group/group_enum.c153
-rw-r--r--source/lib/netapi/examples/group/group_getinfo.c127
-rw-r--r--source/lib/netapi/examples/group/group_getusers.c132
-rw-r--r--source/lib/netapi/examples/group/group_setinfo.c142
-rw-r--r--source/lib/netapi/examples/group/group_setusers.c142
-rw-r--r--source/lib/netapi/examples/join/rename_machine.c86
-rw-r--r--source/lib/netapi/examples/localgroup/localgroup_add.c106
-rw-r--r--source/lib/netapi/examples/localgroup/localgroup_addmembers.c141
-rw-r--r--source/lib/netapi/examples/localgroup/localgroup_del.c83
-rw-r--r--source/lib/netapi/examples/localgroup/localgroup_delmembers.c141
-rw-r--r--source/lib/netapi/examples/localgroup/localgroup_enum.c126
-rw-r--r--source/lib/netapi/examples/localgroup/localgroup_getinfo.c112
-rw-r--r--source/lib/netapi/examples/localgroup/localgroup_getmembers.c165
-rw-r--r--source/lib/netapi/examples/localgroup/localgroup_setinfo.c128
-rw-r--r--source/lib/netapi/examples/localgroup/localgroup_setmembers.c146
-rw-r--r--source/lib/netapi/examples/netdomjoin-gui/netdomjoin-gui.c238
-rw-r--r--source/lib/netapi/examples/netdomjoin/netdomjoin.c (renamed from source/lib/netapi/examples/join/netdomjoin.c)4
-rw-r--r--source/lib/netapi/examples/server/remote_tod.c83
-rw-r--r--source/lib/netapi/examples/server/server_getinfo.c128
-rw-r--r--source/lib/netapi/examples/share/share_add.c110
-rw-r--r--source/lib/netapi/examples/share/share_del.c85
-rw-r--r--source/lib/netapi/examples/share/share_enum.c142
-rw-r--r--source/lib/netapi/examples/share/share_getinfo.c152
-rw-r--r--source/lib/netapi/examples/share/share_setinfo.c105
-rw-r--r--source/lib/netapi/examples/user/user_chgpwd.c99
-rw-r--r--source/lib/netapi/examples/user/user_dispinfo.c4
-rw-r--r--source/lib/netapi/examples/user/user_enum.c71
-rw-r--r--source/lib/netapi/examples/user/user_getgroups.c133
-rw-r--r--source/lib/netapi/examples/user/user_getinfo.c293
-rw-r--r--source/lib/netapi/examples/user/user_getlocalgroups.c122
-rw-r--r--source/lib/netapi/examples/user/user_modalsget.c131
-rw-r--r--source/lib/netapi/examples/user/user_modalsset.c141
-rw-r--r--source/lib/netapi/examples/user/user_setgroups.c144
-rw-r--r--source/lib/netapi/examples/user/user_setinfo.c207
43 files changed, 89 insertions, 5156 deletions
diff --git a/source/lib/netapi/examples/Makefile.in b/source/lib/netapi/examples/Makefile.in
index b1c1e59be7..1e2e28c471 100644
--- a/source/lib/netapi/examples/Makefile.in
+++ b/source/lib/netapi/examples/Makefile.in
@@ -22,47 +22,10 @@ PROGS = bin/getdc@EXEEXT@ \
bin/netdomjoin@EXEEXT@ \
bin/netdomjoin-gui@EXEEXT@ \
bin/getjoinableous@EXEEXT@ \
- bin/rename_machine@EXEEXT@ \
bin/user_add@EXEEXT@ \
bin/user_del@EXEEXT@ \
bin/user_enum@EXEEXT@ \
- bin/user_dispinfo@EXEEXT@ \
- bin/user_chgpwd@EXEEXT@ \
- bin/user_getinfo@EXEEXT@ \
- bin/user_setinfo@EXEEXT@ \
- bin/user_modalsget@EXEEXT@ \
- bin/user_modalsset@EXEEXT@ \
- bin/user_getgroups@EXEEXT@ \
- bin/user_setgroups@EXEEXT@ \
- bin/user_getlocalgroups@EXEEXT@ \
- bin/group_add@EXEEXT@ \
- bin/group_del@EXEEXT@ \
- bin/group_enum@EXEEXT@ \
- bin/group_setinfo@EXEEXT@ \
- bin/group_getinfo@EXEEXT@ \
- bin/group_adduser@EXEEXT@ \
- bin/group_deluser@EXEEXT@ \
- bin/group_getusers@EXEEXT@ \
- bin/group_setusers@EXEEXT@ \
- bin/localgroup_add@EXEEXT@ \
- bin/localgroup_del@EXEEXT@ \
- bin/localgroup_getinfo@EXEEXT@ \
- bin/localgroup_setinfo@EXEEXT@ \
- bin/localgroup_enum@EXEEXT@ \
- bin/localgroup_addmembers@EXEEXT@ \
- bin/localgroup_delmembers@EXEEXT@ \
- bin/localgroup_setmembers@EXEEXT@ \
- bin/localgroup_getmembers@EXEEXT@ \
- bin/remote_tod@EXEEXT@ \
- bin/server_getinfo@EXEEXT@ \
- bin/share_add@EXEEXT@ \
- bin/share_del@EXEEXT@ \
- bin/share_enum@EXEEXT@ \
- bin/share_getinfo@EXEEXT@ \
- bin/share_setinfo@EXEEXT@ \
- bin/file_close@EXEEXT@ \
- bin/file_getinfo@EXEEXT@ \
- bin/file_enum@EXEEXT@
+ bin/user_dispinfo@EXEEXT@
all: $(PROGS)
@@ -93,50 +56,13 @@ bin/.dummy:
CMDLINE_OBJ = common.o
GETDC_OBJ = getdc/getdc.o $(CMDLINE_OBJ)
DSGETDC_OBJ = dsgetdc/dsgetdc.o $(CMDLINE_OBJ)
-NETDOMJOIN_OBJ = join/netdomjoin.o $(CMDLINE_OBJ)
+NETDOMJOIN_OBJ = netdomjoin/netdomjoin.o $(CMDLINE_OBJ)
NETDOMJOIN_GUI_OBJ = netdomjoin-gui/netdomjoin-gui.o
-GETJOINABLEOUS_OBJ = join/getjoinableous.o $(CMDLINE_OBJ)
-RENAMEMACHINE_OBJ = join/rename_machine.o $(CMDLINE_OBJ)
+GETJOINABLEOUS_OBJ = getjoinableous/getjoinableous.o $(CMDLINE_OBJ)
USERADD_OBJ = user/user_add.o $(CMDLINE_OBJ)
USERDEL_OBJ = user/user_del.o $(CMDLINE_OBJ)
USERENUM_OBJ = user/user_enum.o $(CMDLINE_OBJ)
USERDISPINFO_OBJ = user/user_dispinfo.o $(CMDLINE_OBJ)
-USERCHGPWD_OBJ = user/user_chgpwd.o $(CMDLINE_OBJ)
-USERGETINFO_OBJ = user/user_getinfo.o $(CMDLINE_OBJ)
-USERSETINFO_OBJ = user/user_setinfo.o $(CMDLINE_OBJ)
-USERMODALSGET_OBJ = user/user_modalsget.o $(CMDLINE_OBJ)
-USERMODALSSET_OBJ = user/user_modalsset.o $(CMDLINE_OBJ)
-USERGETGROUPS_OBJ = user/user_getgroups.o $(CMDLINE_OBJ)
-USERSETGROUPS_OBJ = user/user_setgroups.o $(CMDLINE_OBJ)
-USERGETLOCALGROUPS_OBJ = user/user_getlocalgroups.o $(CMDLINE_OBJ)
-GROUPADD_OBJ = group/group_add.o $(CMDLINE_OBJ)
-GROUPDEL_OBJ = group/group_del.o $(CMDLINE_OBJ)
-GROUPENUM_OBJ = group/group_enum.o $(CMDLINE_OBJ)
-GROUPSETINFO_OBJ = group/group_setinfo.o $(CMDLINE_OBJ)
-GROUPGETINFO_OBJ = group/group_getinfo.o $(CMDLINE_OBJ)
-GROUPADDUSER_OBJ = group/group_adduser.o $(CMDLINE_OBJ)
-GROUPDELUSER_OBJ = group/group_deluser.o $(CMDLINE_OBJ)
-GROUPGETUSERS_OBJ = group/group_getusers.o $(CMDLINE_OBJ)
-GROUPSETUSERS_OBJ = group/group_setusers.o $(CMDLINE_OBJ)
-LOCALGROUPADD_OBJ = localgroup/localgroup_add.o $(CMDLINE_OBJ)
-LOCALGROUPDEL_OBJ = localgroup/localgroup_del.o $(CMDLINE_OBJ)
-LOCALGROUPGETINFO_OBJ = localgroup/localgroup_getinfo.o $(CMDLINE_OBJ)
-LOCALGROUPSETINFO_OBJ = localgroup/localgroup_setinfo.o $(CMDLINE_OBJ)
-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)
-SERVERGETINFO_OBJ = server/server_getinfo.o $(CMDLINE_OBJ)
-SHAREADD_OBJ = share/share_add.o $(CMDLINE_OBJ)
-SHAREDEL_OBJ = share/share_del.o $(CMDLINE_OBJ)
-SHAREENUM_OBJ = share/share_enum.o $(CMDLINE_OBJ)
-SHAREGETINFO_OBJ = share/share_getinfo.o $(CMDLINE_OBJ)
-SHARESETINFO_OBJ = share/share_setinfo.o $(CMDLINE_OBJ)
-FILECLOSE_OBJ = file/file_close.o $(CMDLINE_OBJ)
-FILEGETINFO_OBJ = file/file_getinfo.o $(CMDLINE_OBJ)
-FILEENUM_OBJ = file/file_enum.o $(CMDLINE_OBJ)
bin/getdc@EXEEXT@: $(BINARY_PREREQS) $(GETDC_OBJ)
@echo Linking $@
@@ -150,10 +76,6 @@ bin/getjoinableous@EXEEXT@: $(BINARY_PREREQS) $(GETJOINABLEOUS_OBJ)
@echo Linking $@
@$(CC) $(FLAGS) -o $@ $(GETJOINABLEOUS_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
-bin/rename_machine@EXEEXT@: $(BINARY_PREREQS) $(RENAMEMACHINE_OBJ)
- @echo Linking $@
- @$(CC) $(FLAGS) -o $@ $(RENAMEMACHINE_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
-
bin/netdomjoin@EXEEXT@: $(BINARY_PREREQS) $(NETDOMJOIN_OBJ)
@echo Linking $@
@$(CC) $(FLAGS) -o $@ $(NETDOMJOIN_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
@@ -178,150 +100,6 @@ bin/user_dispinfo@EXEEXT@: $(BINARY_PREREQS) $(USERDISPINFO_OBJ)
@echo Linking $@
@$(CC) $(FLAGS) -o $@ $(USERDISPINFO_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
-bin/user_chgpwd@EXEEXT@: $(BINARY_PREREQS) $(USERCHGPWD_OBJ)
- @echo Linking $@
- @$(CC) $(FLAGS) -o $@ $(USERCHGPWD_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
-
-bin/user_getinfo@EXEEXT@: $(BINARY_PREREQS) $(USERGETINFO_OBJ)
- @echo Linking $@
- @$(CC) $(FLAGS) -o $@ $(USERGETINFO_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
-
-bin/user_setinfo@EXEEXT@: $(BINARY_PREREQS) $(USERSETINFO_OBJ)
- @echo Linking $@
- @$(CC) $(FLAGS) -o $@ $(USERSETINFO_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
-
-bin/user_modalsget@EXEEXT@: $(BINARY_PREREQS) $(USERMODALSGET_OBJ)
- @echo Linking $@
- @$(CC) $(FLAGS) -o $@ $(USERMODALSGET_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
-
-bin/user_modalsset@EXEEXT@: $(BINARY_PREREQS) $(USERMODALSSET_OBJ)
- @echo Linking $@
- @$(CC) $(FLAGS) -o $@ $(USERMODALSSET_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
-
-bin/user_getgroups@EXEEXT@: $(BINARY_PREREQS) $(USERGETGROUPS_OBJ)
- @echo Linking $@
- @$(CC) $(FLAGS) -o $@ $(USERGETGROUPS_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
-
-bin/user_setgroups@EXEEXT@: $(BINARY_PREREQS) $(USERSETGROUPS_OBJ)
- @echo Linking $@
- @$(CC) $(FLAGS) -o $@ $(USERSETGROUPS_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
-
-bin/user_getlocalgroups@EXEEXT@: $(BINARY_PREREQS) $(USERGETLOCALGROUPS_OBJ)
- @echo Linking $@
- @$(CC) $(FLAGS) -o $@ $(USERGETLOCALGROUPS_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
-
-bin/group_add@EXEEXT@: $(BINARY_PREREQS) $(GROUPADD_OBJ)
- @echo Linking $@
- @$(CC) $(FLAGS) -o $@ $(GROUPADD_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
-
-bin/group_del@EXEEXT@: $(BINARY_PREREQS) $(GROUPDEL_OBJ)
- @echo Linking $@
- @$(CC) $(FLAGS) -o $@ $(GROUPDEL_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
-
-bin/group_enum@EXEEXT@: $(BINARY_PREREQS) $(GROUPENUM_OBJ)
- @echo Linking $@
- @$(CC) $(FLAGS) -o $@ $(GROUPENUM_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
-
-bin/group_setinfo@EXEEXT@: $(BINARY_PREREQS) $(GROUPSETINFO_OBJ)
- @echo Linking $@
- @$(CC) $(FLAGS) -o $@ $(GROUPSETINFO_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
-
-bin/group_getinfo@EXEEXT@: $(BINARY_PREREQS) $(GROUPGETINFO_OBJ)
- @echo Linking $@
- @$(CC) $(FLAGS) -o $@ $(GROUPGETINFO_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
-
-bin/group_adduser@EXEEXT@: $(BINARY_PREREQS) $(GROUPADDUSER_OBJ)
- @echo Linking $@
- @$(CC) $(FLAGS) -o $@ $(GROUPADDUSER_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
-
-bin/group_deluser@EXEEXT@: $(BINARY_PREREQS) $(GROUPDELUSER_OBJ)
- @echo Linking $@
- @$(CC) $(FLAGS) -o $@ $(GROUPDELUSER_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
-
-bin/group_getusers@EXEEXT@: $(BINARY_PREREQS) $(GROUPGETUSERS_OBJ)
- @echo Linking $@
- @$(CC) $(FLAGS) -o $@ $(GROUPGETUSERS_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
-
-bin/group_setusers@EXEEXT@: $(BINARY_PREREQS) $(GROUPSETUSERS_OBJ)
- @echo Linking $@
- @$(CC) $(FLAGS) -o $@ $(GROUPSETUSERS_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
-
-bin/localgroup_add@EXEEXT@: $(BINARY_PREREQS) $(LOCALGROUPADD_OBJ)
- @echo Linking $@
- @$(CC) $(FLAGS) -o $@ $(LOCALGROUPADD_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
-
-bin/localgroup_del@EXEEXT@: $(BINARY_PREREQS) $(LOCALGROUPDEL_OBJ)
- @echo Linking $@
- @$(CC) $(FLAGS) -o $@ $(LOCALGROUPDEL_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
-
-bin/localgroup_getinfo@EXEEXT@: $(BINARY_PREREQS) $(LOCALGROUPGETINFO_OBJ)
- @echo Linking $@
- @$(CC) $(FLAGS) -o $@ $(LOCALGROUPGETINFO_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
-
-bin/localgroup_setinfo@EXEEXT@: $(BINARY_PREREQS) $(LOCALGROUPSETINFO_OBJ)
- @echo Linking $@
- @$(CC) $(FLAGS) -o $@ $(LOCALGROUPSETINFO_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
-
-bin/localgroup_enum@EXEEXT@: $(BINARY_PREREQS) $(LOCALGROUPENUM_OBJ)
- @echo Linking $@
- @$(CC) $(FLAGS) -o $@ $(LOCALGROUPENUM_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
-
-bin/localgroup_addmembers@EXEEXT@: $(BINARY_PREREQS) $(LOCALGROUPADDMEMBERS_OBJ)
- @echo Linking $@
- @$(CC) $(FLAGS) -o $@ $(LOCALGROUPADDMEMBERS_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
-
-bin/localgroup_delmembers@EXEEXT@: $(BINARY_PREREQS) $(LOCALGROUPDELMEMBERS_OBJ)
- @echo Linking $@
- @$(CC) $(FLAGS) -o $@ $(LOCALGROUPDELMEMBERS_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
-
-bin/localgroup_setmembers@EXEEXT@: $(BINARY_PREREQS) $(LOCALGROUPSETMEMBERS_OBJ)
- @echo Linking $@
- @$(CC) $(FLAGS) -o $@ $(LOCALGROUPSETMEMBERS_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
-
-bin/localgroup_getmembers@EXEEXT@: $(BINARY_PREREQS) $(LOCALGROUPGETMEMBERS_OBJ)
- @echo Linking $@
- @$(CC) $(FLAGS) -o $@ $(LOCALGROUPGETMEMBERS_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
-
-bin/remote_tod@EXEEXT@: $(BINARY_PREREQS) $(REMOTETOD_OBJ)
- @echo Linking $@
- @$(CC) $(FLAGS) -o $@ $(REMOTETOD_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
-
-bin/server_getinfo@EXEEXT@: $(BINARY_PREREQS) $(SERVERGETINFO_OBJ)
- @echo Linking $@
- @$(CC) $(FLAGS) -o $@ $(SERVERGETINFO_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
-
-bin/share_add@EXEEXT@: $(BINARY_PREREQS) $(SHAREADD_OBJ)
- @echo Linking $@
- @$(CC) $(FLAGS) -o $@ $(SHAREADD_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
-
-bin/share_del@EXEEXT@: $(BINARY_PREREQS) $(SHAREDEL_OBJ)
- @echo Linking $@
- @$(CC) $(FLAGS) -o $@ $(SHAREDEL_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
-
-bin/share_enum@EXEEXT@: $(BINARY_PREREQS) $(SHAREENUM_OBJ)
- @echo Linking $@
- @$(CC) $(FLAGS) -o $@ $(SHAREENUM_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
-
-bin/share_getinfo@EXEEXT@: $(BINARY_PREREQS) $(SHAREGETINFO_OBJ)
- @echo Linking $@
- @$(CC) $(FLAGS) -o $@ $(SHAREGETINFO_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
-
-bin/share_setinfo@EXEEXT@: $(BINARY_PREREQS) $(SHARESETINFO_OBJ)
- @echo Linking $@
- @$(CC) $(FLAGS) -o $@ $(SHARESETINFO_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
-
-bin/file_close@EXEEXT@: $(BINARY_PREREQS) $(FILECLOSE_OBJ)
- @echo Linking $@
- @$(CC) $(FLAGS) -o $@ $(FILECLOSE_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
-
-bin/file_getinfo@EXEEXT@: $(BINARY_PREREQS) $(FILEGETINFO_OBJ)
- @echo Linking $@
- @$(CC) $(FLAGS) -o $@ $(FILEGETINFO_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
-
-bin/file_enum@EXEEXT@: $(BINARY_PREREQS) $(FILEENUM_OBJ)
- @echo Linking $@
- @$(CC) $(FLAGS) -o $@ $(FILEENUM_OBJ) $(LDFLAGS) $(DYNEXP) $(CMDLINE_LIBS)
-
clean:
-rm -f $(PROGS)
-rm -f core */*~ *~ \
diff --git a/source/lib/netapi/examples/file/file_close.c b/source/lib/netapi/examples/file/file_close.c
deleted file mode 100644
index 759173a0ec..0000000000
--- a/source/lib/netapi/examples/file/file_close.c
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Unix SMB/CIFS implementation.
- * NetFileClose query
- * Copyright (C) Guenther Deschner 2008
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <sys/types.h>
-#include <inttypes.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <netapi.h>
-
-#include "common.h"
-
-int main(int argc, const char **argv)
-{
- NET_API_STATUS status;
- struct libnetapi_ctx *ctx = NULL;
- const char *hostname = NULL;
- uint32_t fileid = 0;
-
- poptContext pc;
- int opt;
-
- struct poptOption long_options[] = {
- POPT_AUTOHELP
- POPT_COMMON_LIBNETAPI_EXAMPLES
- POPT_TABLEEND
- };
-
- status = libnetapi_init(&ctx);
- if (status != 0) {
- return status;
- }
-
- pc = poptGetContext("file_close", argc, argv, long_options, 0);
-
- poptSetOtherOptionHelp(pc, "hostname fileid");
- while((opt = poptGetNextOpt(pc)) != -1) {
- }
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- hostname = poptGetArg(pc);
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- fileid = atoi(poptGetArg(pc));
-
- /* NetFileClose */
-
- status = NetFileClose(hostname, fileid);
- if (status != 0) {
- printf("NetFileClose failed with: %s\n",
- libnetapi_get_error_string(ctx, status));
- goto out;
- }
-
- out:
- libnetapi_free(ctx);
- poptFreeContext(pc);
-
- return status;
-}
diff --git a/source/lib/netapi/examples/file/file_enum.c b/source/lib/netapi/examples/file/file_enum.c
deleted file mode 100644
index 5fbb285194..0000000000
--- a/source/lib/netapi/examples/file/file_enum.c
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- * Unix SMB/CIFS implementation.
- * NetFileEnum query
- * Copyright (C) Guenther Deschner 2008
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <sys/types.h>
-#include <inttypes.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <netapi.h>
-
-#include "common.h"
-
-int main(int argc, const char **argv)
-{
- NET_API_STATUS status;
- struct libnetapi_ctx *ctx = NULL;
- const char *hostname = NULL;
- const char *basepath = NULL;
- const char *username = NULL;
- uint32_t level = 3;
- uint8_t *buffer = NULL;
- uint32_t entries_read = 0;
- uint32_t total_entries = 0;
- uint32_t resume_handle = 0;
- int i;
-
- struct FILE_INFO_2 *i2 = NULL;
- struct FILE_INFO_3 *i3 = NULL;
-
- poptContext pc;
- int opt;
-
- struct poptOption long_options[] = {
- POPT_AUTOHELP
- POPT_COMMON_LIBNETAPI_EXAMPLES
- POPT_TABLEEND
- };
-
- status = libnetapi_init(&ctx);
- if (status != 0) {
- return status;
- }
-
- pc = poptGetContext("file_enum", argc, argv, long_options, 0);
-
- poptSetOtherOptionHelp(pc, "hostname basepath username level");
- while((opt = poptGetNextOpt(pc)) != -1) {
- }
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- hostname = poptGetArg(pc);
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- basepath = poptGetArg(pc);
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- username = poptGetArg(pc);
-
- if (poptPeekArg(pc)) {
- level = atoi(poptGetArg(pc));
- }
-
- /* NetFileEnum */
-
- do {
-
- status = NetFileEnum(hostname,
- basepath,
- username,
- 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 2:
- i2 = (struct FILE_INFO_2 *)buffer;
- break;
- case 3:
- i3 = (struct FILE_INFO_3 *)buffer;
- break;
- default:
- break;
- }
- for (i=0; i<entries_read; i++) {
- switch (level) {
- case 2:
- printf("file_id: %d\n", i2->fi2_id);
- i2++;
- break;
- case 3:
- printf("file_id: %d\n", i3->fi3_id);
- printf("permissions: %d\n", i3->fi3_permissions);
- printf("num_locks: %d\n", i3->fi3_num_locks);
- printf("pathname: %s\n", i3->fi3_pathname);
- printf("username: %s\n", i3->fi3_username);
- i3++;
- break;
- default:
- break;
- }
- }
- NetApiBufferFree(buffer);
- }
- } while (status == ERROR_MORE_DATA);
-
- if (status != 0) {
- printf("NetFileEnum failed with: %s\n",
- libnetapi_get_error_string(ctx, status));
- goto out;
- }
- out:
- libnetapi_free(ctx);
- poptFreeContext(pc);
-
- return status;
-}
diff --git a/source/lib/netapi/examples/file/file_getinfo.c b/source/lib/netapi/examples/file/file_getinfo.c
deleted file mode 100644
index 9ad8305bc5..0000000000
--- a/source/lib/netapi/examples/file/file_getinfo.c
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * Unix SMB/CIFS implementation.
- * NetFileGetInfo query
- * Copyright (C) Guenther Deschner 2008
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <sys/types.h>
-#include <inttypes.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <netapi.h>
-
-#include "common.h"
-
-int main(int argc, const char **argv)
-{
- NET_API_STATUS status;
- struct libnetapi_ctx *ctx = NULL;
- const char *hostname = NULL;
- uint32_t fileid = 0;
- uint32_t level = 3;
- uint8_t *buffer = NULL;
-
- struct FILE_INFO_2 *i2 = NULL;
- struct FILE_INFO_3 *i3 = NULL;
-
- poptContext pc;
- int opt;
-
- struct poptOption long_options[] = {
- POPT_AUTOHELP
- POPT_COMMON_LIBNETAPI_EXAMPLES
- POPT_TABLEEND
- };
-
- status = libnetapi_init(&ctx);
- if (status != 0) {
- return status;
- }
-
- pc = poptGetContext("file_getinfo", argc, argv, long_options, 0);
-
- poptSetOtherOptionHelp(pc, "hostname fileid");
- while((opt = poptGetNextOpt(pc)) != -1) {
- }
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- hostname = poptGetArg(pc);
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- fileid = atoi(poptGetArg(pc));
-
- if (poptPeekArg(pc)) {
- level = atoi(poptGetArg(pc));
- }
-
- /* NetFileGetInfo */
-
- status = NetFileGetInfo(hostname,
- fileid,
- level,
- &buffer);
- if (status != 0) {
- printf("NetFileGetInfo failed with: %s\n",
- libnetapi_get_error_string(ctx, status));
- goto out;
- }
-
- switch (level) {
- case 2:
- i2 = (struct FILE_INFO_2 *)buffer;
- printf("file_id: %d\n", i2->fi2_id);
- break;
- case 3:
- i3 = (struct FILE_INFO_3 *)buffer;
- printf("file_id: %d\n", i3->fi3_id);
- printf("permissions: %d\n", i3->fi3_permissions);
- printf("num_locks: %d\n", i3->fi3_num_locks);
- printf("pathname: %s\n", i3->fi3_pathname);
- printf("username: %s\n", i3->fi3_username);
- break;
- default:
- break;
- }
-
- out:
- libnetapi_free(ctx);
- poptFreeContext(pc);
-
- return status;
-}
diff --git a/source/lib/netapi/examples/join/getjoinableous.c b/source/lib/netapi/examples/getjoinableous/getjoinableous.c
index 732f73dd57..732f73dd57 100644
--- a/source/lib/netapi/examples/join/getjoinableous.c
+++ b/source/lib/netapi/examples/getjoinableous/getjoinableous.c
diff --git a/source/lib/netapi/examples/group/group_add.c b/source/lib/netapi/examples/group/group_add.c
deleted file mode 100644
index 4da97c5fc5..0000000000
--- a/source/lib/netapi/examples/group/group_add.c
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Unix SMB/CIFS implementation.
- * NetGroupAdd query
- * Copyright (C) Guenther Deschner 2008
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <sys/types.h>
-#include <inttypes.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <netapi.h>
-
-#include "common.h"
-
-int main(int argc, const char **argv)
-{
- NET_API_STATUS status;
- struct libnetapi_ctx *ctx = NULL;
- const char *hostname = NULL;
- const char *groupname = NULL;
- struct GROUP_INFO_1 g1;
- uint32_t parm_error = 0;
-
- poptContext pc;
- int opt;
-
- struct poptOption long_options[] = {
- POPT_AUTOHELP
- POPT_COMMON_LIBNETAPI_EXAMPLES
- POPT_TABLEEND
- };
-
- status = libnetapi_init(&ctx);
- if (status != 0) {
- return status;
- }
-
- pc = poptGetContext("group_add", argc, argv, long_options, 0);
-
- poptSetOtherOptionHelp(pc, "hostname groupname");
- while((opt = poptGetNextOpt(pc)) != -1) {
- }
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- hostname = poptGetArg(pc);
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- groupname = poptGetArg(pc);
-
- /* NetGroupAdd */
-
- g1.grpi1_name = groupname;
- g1.grpi1_comment = "Domain Group created using NetApi example code";
-
- status = NetGroupAdd(hostname,
- 1,
- (uint8_t *)&g1,
- &parm_error);
- if (status != 0) {
- printf("NetGroupAdd failed with: %s\n",
- libnetapi_get_error_string(ctx, status));
- }
-
- out:
- libnetapi_free(ctx);
- poptFreeContext(pc);
-
- return status;
-}
diff --git a/source/lib/netapi/examples/group/group_adduser.c b/source/lib/netapi/examples/group/group_adduser.c
deleted file mode 100644
index 253b3c5ab4..0000000000
--- a/source/lib/netapi/examples/group/group_adduser.c
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Unix SMB/CIFS implementation.
- * NetGroupAddUser query
- * Copyright (C) Guenther Deschner 2008
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <sys/types.h>
-#include <inttypes.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <netapi.h>
-
-#include "common.h"
-
-int main(int argc, const char **argv)
-{
- NET_API_STATUS status;
- struct libnetapi_ctx *ctx = NULL;
- const char *hostname = NULL;
- const char *groupname = NULL;
- const char *username = NULL;
-
- poptContext pc;
- int opt;
-
- struct poptOption long_options[] = {
- POPT_AUTOHELP
- POPT_COMMON_LIBNETAPI_EXAMPLES
- POPT_TABLEEND
- };
-
- status = libnetapi_init(&ctx);
- if (status != 0) {
- return status;
- }
-
- pc = poptGetContext("group_adduser", argc, argv, long_options, 0);
-
- poptSetOtherOptionHelp(pc, "hostname groupname username");
- while((opt = poptGetNextOpt(pc)) != -1) {
- }
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- hostname = poptGetArg(pc);
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- groupname = poptGetArg(pc);
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- username = poptGetArg(pc);
-
- /* NetGroupAddUser */
-
- status = NetGroupAddUser(hostname,
- groupname,
- username);
- if (status != 0) {
- printf("NetGroupAddUser failed with: %s\n",
- libnetapi_get_error_string(ctx, status));
- }
-
- out:
- libnetapi_free(ctx);
- poptFreeContext(pc);
-
- return status;
-}
diff --git a/source/lib/netapi/examples/group/group_del.c b/source/lib/netapi/examples/group/group_del.c
deleted file mode 100644
index 789e429ea2..0000000000
--- a/source/lib/netapi/examples/group/group_del.c
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Unix SMB/CIFS implementation.
- * NetGroupDel query
- * Copyright (C) Guenther Deschner 2008
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <sys/types.h>
-#include <inttypes.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <netapi.h>
-
-#include "common.h"
-
-int main(int argc, const char **argv)
-{
- NET_API_STATUS status;
- struct libnetapi_ctx *ctx = NULL;
- const char *hostname = NULL;
- const char *groupname = NULL;
-
- poptContext pc;
- int opt;
-
- struct poptOption long_options[] = {
- POPT_AUTOHELP
- POPT_COMMON_LIBNETAPI_EXAMPLES
- POPT_TABLEEND
- };
-
- status = libnetapi_init(&ctx);
- if (status != 0) {
- return status;
- }
-
- pc = poptGetContext("group_del", argc, argv, long_options, 0);
-
- poptSetOtherOptionHelp(pc, "hostname groupname");
- while((opt = poptGetNextOpt(pc)) != -1) {
- }
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- hostname = poptGetArg(pc);
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- groupname = poptGetArg(pc);
-
- /* NetGroupDel */
-
- status = NetGroupDel(hostname, groupname);
- if (status != 0) {
- printf("NetGroupDel failed with: %s\n",
- libnetapi_get_error_string(ctx, status));
- }
-
- out:
- libnetapi_free(ctx);
- poptFreeContext(pc);
-
- return status;
-}
diff --git a/source/lib/netapi/examples/group/group_deluser.c b/source/lib/netapi/examples/group/group_deluser.c
deleted file mode 100644
index 751ab5c630..0000000000
--- a/source/lib/netapi/examples/group/group_deluser.c
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Unix SMB/CIFS implementation.
- * NetGroupDelUser query
- * Copyright (C) Guenther Deschner 2008
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <sys/types.h>
-#include <inttypes.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <netapi.h>
-
-#include "common.h"
-
-int main(int argc, const char **argv)
-{
- NET_API_STATUS status;
- struct libnetapi_ctx *ctx = NULL;
- const char *hostname = NULL;
- const char *groupname = NULL;
- const char *username = NULL;
-
- poptContext pc;
- int opt;
-
- struct poptOption long_options[] = {
- POPT_AUTOHELP
- POPT_COMMON_LIBNETAPI_EXAMPLES
- POPT_TABLEEND
- };
-
- status = libnetapi_init(&ctx);
- if (status != 0) {
- return status;
- }
-
- pc = poptGetContext("group_deluser", argc, argv, long_options, 0);
-
- poptSetOtherOptionHelp(pc, "hostname groupname username");
- while((opt = poptGetNextOpt(pc)) != -1) {
- }
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- hostname = poptGetArg(pc);
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- groupname = poptGetArg(pc);
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- username = poptGetArg(pc);
-
- /* NetGroupDelUser */
-
- status = NetGroupDelUser(hostname,
- groupname,
- username);
- if (status != 0) {
- printf("NetGroupDelUser failed with: %s\n",
- libnetapi_get_error_string(ctx, status));
- }
-
- out:
- libnetapi_free(ctx);
- poptFreeContext(pc);
-
- return status;
-}
diff --git a/source/lib/netapi/examples/group/group_enum.c b/source/lib/netapi/examples/group/group_enum.c
deleted file mode 100644
index fe2aee1dab..0000000000
--- a/source/lib/netapi/examples/group/group_enum.c
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- * Unix SMB/CIFS implementation.
- * NetGroupEnum query
- * Copyright (C) Guenther Deschner 2008
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <sys/types.h>
-#include <inttypes.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <netapi.h>
-
-#include "common.h"
-
-int main(int argc, const char **argv)
-{
- NET_API_STATUS status;
- struct libnetapi_ctx *ctx = NULL;
- const char *hostname = 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;
-
- struct GROUP_INFO_0 *info0 = NULL;
- struct GROUP_INFO_1 *info1 = NULL;
- struct GROUP_INFO_2 *info2 = NULL;
- struct GROUP_INFO_3 *info3 = NULL;
-
- poptContext pc;
- int opt;
-
- struct poptOption long_options[] = {
- POPT_AUTOHELP
- POPT_COMMON_LIBNETAPI_EXAMPLES
- POPT_TABLEEND
- };
-
- status = libnetapi_init(&ctx);
- if (status != 0) {
- return status;
- }
-
- pc = poptGetContext("group_enum", argc, argv, long_options, 0);
-
- poptSetOtherOptionHelp(pc, "hostname level");
- while((opt = poptGetNextOpt(pc)) != -1) {
- }
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- hostname = poptGetArg(pc);
-
- if (poptPeekArg(pc)) {
- level = atoi(poptGetArg(pc));
- }
-
- /* NetGroupEnum */
-
- do {
- status = NetGroupEnum(hostname,
- 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;
- break;
- case 1:
- info1 = (struct GROUP_INFO_1 *)buffer;
- break;
- case 2:
- info2 = (struct GROUP_INFO_2 *)buffer;
- break;
- case 3:
- info3 = (struct GROUP_INFO_3 *)buffer;
- break;
- default:
- break;
- }
- for (i=0; i<entries_read; i++) {
- switch (level) {
- case 0:
- printf("#%d group: %s\n", i, info0->grpi0_name);
- info0++;
- break;
- case 1:
- printf("#%d group: %s\n", i, info1->grpi1_name);
- printf("#%d comment: %s\n", i, info1->grpi1_comment);
- 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,
- &sid_str)) {
- printf("#%d group_sid: %s\n", i, sid_str);
- free(sid_str);
- }
- printf("#%d attributes: 0x%08x\n", i, info3->grpi3_attributes);
- info3++;
- break;
-
-
- }
- }
- NetApiBufferFree(buffer);
- }
- } while (status == ERROR_MORE_DATA);
-
- if (status != 0) {
- printf("NetGroupEnum failed with: %s\n",
- libnetapi_get_error_string(ctx, status));
- }
-
- out:
- libnetapi_free(ctx);
- poptFreeContext(pc);
-
- return status;
-}
diff --git a/source/lib/netapi/examples/group/group_getinfo.c b/source/lib/netapi/examples/group/group_getinfo.c
deleted file mode 100644
index 2e5b793905..0000000000
--- a/source/lib/netapi/examples/group/group_getinfo.c
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * Unix SMB/CIFS implementation.
- * NetGroupGetInfo query
- * Copyright (C) Guenther Deschner 2008
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <sys/types.h>
-#include <inttypes.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <netapi.h>
-
-#include "common.h"
-
-int main(int argc, const char **argv)
-{
- NET_API_STATUS status;
- struct libnetapi_ctx *ctx = NULL;
- const char *hostname = NULL;
- const char *groupname = NULL;
- uint8_t *buffer = NULL;
- uint32_t level = 0;
- struct GROUP_INFO_0 *g0;
- struct GROUP_INFO_1 *g1;
- struct GROUP_INFO_2 *g2;
- struct GROUP_INFO_3 *g3;
- char *sid_str = NULL;
-
- poptContext pc;
- int opt;
-
- struct poptOption long_options[] = {
- POPT_AUTOHELP
- POPT_COMMON_LIBNETAPI_EXAMPLES
- POPT_TABLEEND
- };
-
- status = libnetapi_init(&ctx);
- if (status != 0) {
- return status;
- }
-
- pc = poptGetContext("group_getinfo", argc, argv, long_options, 0);
-
- poptSetOtherOptionHelp(pc, "hostname groupname level");
- while((opt = poptGetNextOpt(pc)) != -1) {
- }
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- hostname = poptGetArg(pc);
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- groupname = poptGetArg(pc);
-
- if (poptPeekArg(pc)) {
- level = atoi(poptGetArg(pc));
- }
-
- /* NetGroupGetInfo */
-
- status = NetGroupGetInfo(hostname,
- groupname,
- level,
- &buffer);
- if (status != 0) {
- printf("NetGroupGetInfo failed with: %s\n",
- libnetapi_get_error_string(ctx, status));
- goto out;
- }
-
- switch (level) {
- case 0:
- g0 = (struct GROUP_INFO_0 *)buffer;
- printf("name: %s\n", g0->grpi0_name);
- break;
- case 1:
- g1 = (struct GROUP_INFO_1 *)buffer;
- printf("name: %s\n", g1->grpi1_name);
- printf("comment: %s\n", g1->grpi1_comment);
- break;
- case 2:
- g2 = (struct GROUP_INFO_2 *)buffer;
- printf("name: %s\n", g2->grpi2_name);
- printf("comment: %s\n", g2->grpi2_comment);
- printf("group_id: %d\n", g2->grpi2_group_id);
- printf("attributes: %d\n", g2->grpi2_attributes);
- break;
- case 3:
- g3 = (struct GROUP_INFO_3 *)buffer;
- printf("name: %s\n", g3->grpi3_name);
- printf("comment: %s\n", g3->grpi3_comment);
- if (ConvertSidToStringSid(g3->grpi3_group_sid,
- &sid_str)) {
- printf("group_sid: %s\n", sid_str);
- free(sid_str);
- }
- printf("attributes: %d\n", g3->grpi3_attributes);
- break;
- }
-
- out:
- libnetapi_free(ctx);
- poptFreeContext(pc);
-
- return status;
-}
diff --git a/source/lib/netapi/examples/group/group_getusers.c b/source/lib/netapi/examples/group/group_getusers.c
deleted file mode 100644
index 72e79ec3a2..0000000000
--- a/source/lib/netapi/examples/group/group_getusers.c
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Unix SMB/CIFS implementation.
- * NetGroupGetUsers query
- * Copyright (C) Guenther Deschner 2008
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <sys/types.h>
-#include <inttypes.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <netapi.h>
-
-#include "common.h"
-
-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;
-
- struct GROUP_USERS_INFO_0 *info0 = NULL;
- struct GROUP_USERS_INFO_1 *info1 = NULL;
-
- poptContext pc;
- int opt;
-
- struct poptOption long_options[] = {
- POPT_AUTOHELP
- POPT_COMMON_LIBNETAPI_EXAMPLES
- POPT_TABLEEND
- };
-
- status = libnetapi_init(&ctx);
- if (status != 0) {
- return status;
- }
-
- pc = poptGetContext("group_getusers", argc, argv, long_options, 0);
-
- poptSetOtherOptionHelp(pc, "hostname groupname level");
- while((opt = poptGetNextOpt(pc)) != -1) {
- }
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- hostname = poptGetArg(pc);
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- groupname = poptGetArg(pc);
-
- if (poptPeekArg(pc)) {
- level = atoi(poptGetArg(pc));
- }
-
- /* NetGroupGetUsers */
-
- do {
- status = NetGroupGetUsers(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_USERS_INFO_0 *)buffer;
- break;
- case 1:
- info1 = (struct GROUP_USERS_INFO_1 *)buffer;
- break;
- default:
- break;
- }
- for (i=0; i<entries_read; i++) {
- switch (level) {
- case 0:
- printf("#%d member: %s\n", i, info0->grui0_name);
- info0++;
- break;
- case 1:
- printf("#%d member: %s\n", i, info1->grui1_name);
- printf("#%d attributes: %d\n", i, info1->grui1_attributes);
- info1++;
- break;
- }
- }
- NetApiBufferFree(buffer);
- }
- } while (status == ERROR_MORE_DATA);
-
- if (status != 0) {
- printf("NetGroupGetUsers failed with: %s\n",
- libnetapi_get_error_string(ctx, status));
- }
-
- out:
- libnetapi_free(ctx);
- poptFreeContext(pc);
-
- return status;
-}
diff --git a/source/lib/netapi/examples/group/group_setinfo.c b/source/lib/netapi/examples/group/group_setinfo.c
deleted file mode 100644
index cd30d8b9b8..0000000000
--- a/source/lib/netapi/examples/group/group_setinfo.c
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- * Unix SMB/CIFS implementation.
- * NetGroupSetInfo query
- * Copyright (C) Guenther Deschner 2008
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <sys/types.h>
-#include <inttypes.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <netapi.h>
-
-#include "common.h"
-
-int main(int argc, const char **argv)
-{
- NET_API_STATUS status;
- struct libnetapi_ctx *ctx = NULL;
- const char *hostname = NULL;
- const char *groupname = NULL;
- const char *option = NULL;
- uint8_t *buffer = NULL;
- uint32_t level = 0;
- uint32_t parm_err = 0;
- struct GROUP_INFO_0 g0;
- struct GROUP_INFO_1 g1;
- struct GROUP_INFO_2 g2;
- struct GROUP_INFO_3 g3;
- struct GROUP_INFO_1002 g1002;
- struct GROUP_INFO_1005 g1005;
-
- poptContext pc;
- int opt;
-
- struct poptOption long_options[] = {
- POPT_AUTOHELP
- POPT_COMMON_LIBNETAPI_EXAMPLES
- POPT_TABLEEND
- };
-
- status = libnetapi_init(&ctx);
- if (status != 0) {
- return status;
- }
-
- pc = poptGetContext("group_setinfo", argc, argv, long_options, 0);
-
- poptSetOtherOptionHelp(pc, "hostname groupname level option");
- while((opt = poptGetNextOpt(pc)) != -1) {
- }
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- hostname = poptGetArg(pc);
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- groupname = poptGetArg(pc);
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- level = atoi(poptGetArg(pc));
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- option = poptGetArg(pc);
-
- /* NetGroupSetInfo */
-
- switch (level) {
- case 0:
- g0.grpi0_name = option;
- buffer = (uint8_t *)&g0;
- break;
- case 1:
- g1.grpi1_name = option; /* this one will be ignored */
- g1.grpi1_comment = option;
- buffer = (uint8_t *)&g1;
- break;
- case 2:
- g2.grpi2_name = option; /* this one will be ignored */
- g2.grpi2_comment = option;
- g2.grpi2_group_id = 4711; /* this one will be ignored */
- g2.grpi2_attributes = 7;
- buffer = (uint8_t *)&g2;
- break;
- case 3:
- g3.grpi3_name = option; /* this one will be ignored */
- g3.grpi3_comment = option;
- g2.grpi2_attributes = 7;
- buffer = (uint8_t *)&g3;
- break;
- case 1002:
- g1002.grpi1002_comment = option;
- buffer = (uint8_t *)&g1002;
- break;
- case 1005:
- g1005.grpi1005_attributes = atoi(option);
- buffer = (uint8_t *)&g1005;
- break;
- }
-
- status = NetGroupSetInfo(hostname,
- groupname,
- level,
- buffer,
- &parm_err);
- if (status != 0) {
- printf("NetGroupSetInfo failed with: %s\n",
- libnetapi_get_error_string(ctx, status));
- goto out;
- }
-
- out:
- libnetapi_free(ctx);
- poptFreeContext(pc);
-
- return status;
-}
diff --git a/source/lib/netapi/examples/group/group_setusers.c b/source/lib/netapi/examples/group/group_setusers.c
deleted file mode 100644
index 70cf10514c..0000000000
--- a/source/lib/netapi/examples/group/group_setusers.c
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- * Unix SMB/CIFS implementation.
- * NetGroupSetUsers query
- * Copyright (C) Guenther Deschner 2008
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <sys/types.h>
-#include <inttypes.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <netapi.h>
-
-#include "common.h"
-
-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 num_entries = 0;
- const char **names = NULL;
- int i = 0;
- size_t buf_size = 0;
-
- struct GROUP_USERS_INFO_0 *g0 = NULL;
- struct GROUP_USERS_INFO_1 *g1 = NULL;
-
- poptContext pc;
- int opt;
-
- struct poptOption long_options[] = {
- POPT_AUTOHELP
- POPT_COMMON_LIBNETAPI_EXAMPLES
- POPT_TABLEEND
- };
-
- status = libnetapi_init(&ctx);
- if (status != 0) {
- return status;
- }
-
- pc = poptGetContext("group_setusers", argc, argv, long_options, 0);
-
- poptSetOtherOptionHelp(pc, "hostname groupname level");
- while((opt = poptGetNextOpt(pc)) != -1) {
- }
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- hostname = poptGetArg(pc);
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- groupname = poptGetArg(pc);
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
-
- names = poptGetArgs(pc);
- for (i=0; names[i] != NULL; i++) {
- num_entries++;
- }
-
- switch (level) {
- case 0:
- buf_size = sizeof(struct GROUP_USERS_INFO_0) * num_entries;
-
- status = NetApiBufferAllocate(buf_size, (void **)&g0);
- if (status) {
- printf("NetApiBufferAllocate failed with: %s\n",
- libnetapi_get_error_string(ctx, status));
- goto out;
- }
-
- for (i=0; i<num_entries; i++) {
- g0[i].grui0_name = names[i];
- }
-
- buffer = (uint8_t *)g0;
- break;
- case 1:
- buf_size = sizeof(struct GROUP_USERS_INFO_1) * num_entries;
-
- status = NetApiBufferAllocate(buf_size, (void **)&g1);
- if (status) {
- printf("NetApiBufferAllocate failed with: %s\n",
- libnetapi_get_error_string(ctx, status));
- goto out;
- }
-
- for (i=0; i<num_entries; i++) {
- g1[i].grui1_name = names[i];
- }
-
- buffer = (uint8_t *)g1;
- break;
- default:
- break;
- }
-
- /* NetGroupSetUsers */
-
- status = NetGroupSetUsers(hostname,
- groupname,
- level,
- buffer,
- num_entries);
- if (status != 0) {
- printf("NetGroupSetUsers failed with: %s\n",
- libnetapi_get_error_string(ctx, status));
- }
-
- out:
- libnetapi_free(ctx);
- poptFreeContext(pc);
-
- return status;
-}
diff --git a/source/lib/netapi/examples/join/rename_machine.c b/source/lib/netapi/examples/join/rename_machine.c
deleted file mode 100644
index a21f9198d8..0000000000
--- a/source/lib/netapi/examples/join/rename_machine.c
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Unix SMB/CIFS implementation.
- * NetRenameMachineInDomain query
- * Copyright (C) Guenther Deschner 2008
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <string.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <inttypes.h>
-
-#include <netapi.h>
-
-#include "common.h"
-
-int main(int argc, const char **argv)
-{
- NET_API_STATUS status;
- const char *host_name = NULL;
- const char *new_machine_name = NULL;
- uint32_t rename_opt = 0;
- struct libnetapi_ctx *ctx = NULL;
-
- poptContext pc;
- int opt;
-
- struct poptOption long_options[] = {
- POPT_AUTOHELP
- POPT_COMMON_LIBNETAPI_EXAMPLES
- POPT_TABLEEND
- };
-
- status = libnetapi_init(&ctx);
- if (status != 0) {
- return status;
- }
-
- pc = poptGetContext("rename_machine", argc, argv, long_options, 0);
-
- poptSetOtherOptionHelp(pc, "hostname newmachinename");
- while((opt = poptGetNextOpt(pc)) != -1) {
- }
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- host_name = poptGetArg(pc);
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- new_machine_name = poptGetArg(pc);
-
- /* NetRenameMachineInDomain */
-
- status = NetRenameMachineInDomain(host_name,
- new_machine_name,
- ctx->username,
- ctx->password,
- rename_opt);
- if (status != 0) {
- printf("failed with: %s\n",
- libnetapi_get_error_string(ctx, status));
- }
-
- out:
- libnetapi_free(ctx);
- poptFreeContext(pc);
-
- return status;
-}
diff --git a/source/lib/netapi/examples/localgroup/localgroup_add.c b/source/lib/netapi/examples/localgroup/localgroup_add.c
deleted file mode 100644
index 7f23c99db1..0000000000
--- a/source/lib/netapi/examples/localgroup/localgroup_add.c
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * Unix SMB/CIFS implementation.
- * NetLocalGroupAdd query
- * Copyright (C) Guenther Deschner 2008
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <sys/types.h>
-#include <inttypes.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <netapi.h>
-
-#include "common.h"
-
-int main(int argc, const char **argv)
-{
- NET_API_STATUS status;
- struct libnetapi_ctx *ctx = NULL;
- const char *hostname = NULL;
- const char *groupname = NULL;
- const char *comment = NULL;
- struct LOCALGROUP_INFO_0 g0;
- struct LOCALGROUP_INFO_1 g1;
- uint32_t parm_error = 0;
- uint8_t *buf = NULL;
- uint32_t level = 0;
-
- poptContext pc;
- int opt;
-
- struct poptOption long_options[] = {
- POPT_AUTOHELP
- POPT_COMMON_LIBNETAPI_EXAMPLES
- POPT_TABLEEND
- };
-
- status = libnetapi_init(&ctx);
- if (status != 0) {
- return status;
- }
-
- pc = poptGetContext("localgroup_add", argc, argv, long_options, 0);
-
- poptSetOtherOptionHelp(pc, "hostname groupname comment");
- while((opt = poptGetNextOpt(pc)) != -1) {
- }
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- hostname = poptGetArg(pc);
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- groupname = poptGetArg(pc);
-
- if (poptPeekArg(pc)) {
- comment = poptGetArg(pc);
- }
-
- /* NetLocalGroupAdd */
-
- if (comment) {
- level = 1;
- g1.lgrpi1_name = groupname;
- g1.lgrpi1_comment = comment;
- buf = (uint8_t *)&g1;
- } else {
- level = 0;
- g0.lgrpi0_name = groupname;
- buf = (uint8_t *)&g0;
- }
-
- status = NetLocalGroupAdd(hostname,
- level,
- buf,
- &parm_error);
- if (status != 0) {
- printf("NetLocalGroupAdd failed with: %s\n",
- libnetapi_get_error_string(ctx, status));
- }
-
- out:
- libnetapi_free(ctx);
- poptFreeContext(pc);
-
- return status;
-}
diff --git a/source/lib/netapi/examples/localgroup/localgroup_addmembers.c b/source/lib/netapi/examples/localgroup/localgroup_addmembers.c
deleted file mode 100644
index aa4a9b59b0..0000000000
--- a/source/lib/netapi/examples/localgroup/localgroup_addmembers.c
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * Unix SMB/CIFS implementation.
- * NetLocalGroupAddMembers query
- * Copyright (C) Guenther Deschner 2008
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <sys/types.h>
-#include <inttypes.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <netapi.h>
-
-#include "common.h"
-
-int main(int argc, const char **argv)
-{
- NET_API_STATUS status;
- struct libnetapi_ctx *ctx = NULL;
- const char *hostname = NULL;
- const char *groupname = NULL;
- struct LOCALGROUP_MEMBERS_INFO_0 *g0;
- struct LOCALGROUP_MEMBERS_INFO_3 *g3;
- uint32_t total_entries = 0;
- uint8_t *buffer = NULL;
- uint32_t level = 3;
- const char **names = NULL;
- int i = 0;
-
- poptContext pc;
- int opt;
-
- struct poptOption long_options[] = {
- POPT_AUTOHELP
- POPT_COMMON_LIBNETAPI_EXAMPLES
- POPT_TABLEEND
- };
-
- status = libnetapi_init(&ctx);
- if (status != 0) {
- return status;
- }
-
- pc = poptGetContext("localgroup_addmembers", argc, argv, long_options, 0);
-
- poptSetOtherOptionHelp(pc, "hostname groupname member1 member2 ...");
- while((opt = poptGetNextOpt(pc)) != -1) {
- }
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- hostname = poptGetArg(pc);
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- groupname = poptGetArg(pc);
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
-
- names = poptGetArgs(pc);
- for (i=0; names[i] != NULL; i++) {
- total_entries++;
- }
-
- switch (level) {
- case 0:
- status = NetApiBufferAllocate(sizeof(struct LOCALGROUP_MEMBERS_INFO_0) * total_entries,
- (void **)&g0);
- if (status) {
- printf("NetApiBufferAllocate failed with: %s\n",
- libnetapi_get_error_string(ctx, status));
- goto out;
- }
-
- for (i=0; i<total_entries; i++) {
- if (!ConvertStringSidToSid(names[i], &g0[i].lgrmi0_sid)) {
- printf("could not convert sid\n");
- goto out;
- }
- }
-
- buffer = (uint8_t *)g0;
- break;
- case 3:
- status = NetApiBufferAllocate(sizeof(struct LOCALGROUP_MEMBERS_INFO_3) * total_entries,
- (void **)&g3);
- if (status) {
- printf("NetApiBufferAllocate failed with: %s\n",
- libnetapi_get_error_string(ctx, status));
- goto out;
- }
-
- for (i=0; i<total_entries; i++) {
- g3[i].lgrmi3_domainandname = names[i];
- }
-
- buffer = (uint8_t *)g3;
- break;
- default:
- break;
- }
-
- /* NetLocalGroupAddMembers */
-
- status = NetLocalGroupAddMembers(hostname,
- groupname,
- level,
- buffer,
- total_entries);
- if (status != 0) {
- printf("NetLocalGroupAddMembers failed with: %s\n",
- libnetapi_get_error_string(ctx, status));
- }
-
- out:
- libnetapi_free(ctx);
- poptFreeContext(pc);
-
- return status;
-}
diff --git a/source/lib/netapi/examples/localgroup/localgroup_del.c b/source/lib/netapi/examples/localgroup/localgroup_del.c
deleted file mode 100644
index a2515dfdcd..0000000000
--- a/source/lib/netapi/examples/localgroup/localgroup_del.c
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Unix SMB/CIFS implementation.
- * NetLocalGroupDel query
- * Copyright (C) Guenther Deschner 2008
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <sys/types.h>
-#include <inttypes.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <netapi.h>
-
-#include "common.h"
-
-int main(int argc, const char **argv)
-{
- NET_API_STATUS status;
- struct libnetapi_ctx *ctx = NULL;
- const char *hostname = NULL;
- const char *groupname = NULL;
-
- poptContext pc;
- int opt;
-
- struct poptOption long_options[] = {
- POPT_AUTOHELP
- POPT_COMMON_LIBNETAPI_EXAMPLES
- POPT_TABLEEND
- };
-
- status = libnetapi_init(&ctx);
- if (status != 0) {
- return status;
- }
-
- pc = poptGetContext("localgroup_del", argc, argv, long_options, 0);
-
- poptSetOtherOptionHelp(pc, "hostname groupname");
- while((opt = poptGetNextOpt(pc)) != -1) {
- }
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- hostname = poptGetArg(pc);
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- groupname = poptGetArg(pc);
-
- /* NetLocalGroupDel */
-
- status = NetLocalGroupDel(hostname,
- groupname);
- if (status != 0) {
- printf("NetLocalGroupDel failed with: %s\n",
- libnetapi_get_error_string(ctx, status));
- }
-
- out:
- libnetapi_free(ctx);
- poptFreeContext(pc);
-
- return status;
-}
diff --git a/source/lib/netapi/examples/localgroup/localgroup_delmembers.c b/source/lib/netapi/examples/localgroup/localgroup_delmembers.c
deleted file mode 100644
index 7bd3ec0993..0000000000
--- a/source/lib/netapi/examples/localgroup/localgroup_delmembers.c
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * Unix SMB/CIFS implementation.
- * NetLocalGroupDelMembers query
- * Copyright (C) Guenther Deschner 2008
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <sys/types.h>
-#include <inttypes.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <netapi.h>
-
-#include "common.h"
-
-int main(int argc, const char **argv)
-{
- NET_API_STATUS status;
- struct libnetapi_ctx *ctx = NULL;
- const char *hostname = NULL;
- const char *groupname = NULL;
- struct LOCALGROUP_MEMBERS_INFO_0 *g0;
- struct LOCALGROUP_MEMBERS_INFO_3 *g3;
- uint32_t total_entries = 0;
- uint8_t *buffer = NULL;
- uint32_t level = 3;
- const char **names = NULL;
- int i = 0;
-
- poptContext pc;
- int opt;
-
- struct poptOption long_options[] = {
- POPT_AUTOHELP
- POPT_COMMON_LIBNETAPI_EXAMPLES
- POPT_TABLEEND
- };
-
- status = libnetapi_init(&ctx);
- if (status != 0) {
- return status;
- }
-
- pc = poptGetContext("localgroup_delmembers", argc, argv, long_options, 0);
-
- poptSetOtherOptionHelp(pc, "hostname groupname member1 member2 ...");
- while((opt = poptGetNextOpt(pc)) != -1) {
- }
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- hostname = poptGetArg(pc);
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- groupname = poptGetArg(pc);
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
-
- names = poptGetArgs(pc);
- for (i=0; names[i] != NULL; i++) {
- total_entries++;
- }
-
- switch (level) {
- case 0:
- status = NetApiBufferAllocate(sizeof(struct LOCALGROUP_MEMBERS_INFO_0) * total_entries,
- (void **)&g0);
- if (status) {
- printf("NetApiBufferAllocate failed with: %s\n",
- libnetapi_get_error_string(ctx, status));
- goto out;
- }
-
- for (i=0; i<total_entries; i++) {
- if (!ConvertStringSidToSid(names[i], &g0[i].lgrmi0_sid)) {
- printf("could not convert sid\n");
- goto out;
- }
- }
-
- buffer = (uint8_t *)g0;
- break;
- case 3:
- status = NetApiBufferAllocate(sizeof(struct LOCALGROUP_MEMBERS_INFO_3) * total_entries,
- (void **)&g3);
- if (status) {
- printf("NetApiBufferAllocate failed with: %s\n",
- libnetapi_get_error_string(ctx, status));
- goto out;
- }
-
- for (i=0; i<total_entries; i++) {
- g3[i].lgrmi3_domainandname = names[i];
- }
-
- buffer = (uint8_t *)g3;
- break;
- default:
- break;
- }
-
- /* NetLocalGroupDelMembers */
-
- status = NetLocalGroupDelMembers(hostname,
- groupname,
- level,
- buffer,
- total_entries);
- if (status != 0) {
- printf("NetLocalGroupDelMembers failed with: %s\n",
- libnetapi_get_error_string(ctx, status));
- }
-
- out:
- libnetapi_free(ctx);
- poptFreeContext(pc);
-
- return status;
-}
diff --git a/source/lib/netapi/examples/localgroup/localgroup_enum.c b/source/lib/netapi/examples/localgroup/localgroup_enum.c
deleted file mode 100644
index 6fe0cf4173..0000000000
--- a/source/lib/netapi/examples/localgroup/localgroup_enum.c
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- * Unix SMB/CIFS implementation.
- * NetLocalGroupEnum query
- * Copyright (C) Guenther Deschner 2008
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <sys/types.h>
-#include <inttypes.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <netapi.h>
-
-#include "common.h"
-
-int main(int argc, const char **argv)
-{
- NET_API_STATUS status;
- struct libnetapi_ctx *ctx = NULL;
- const char *hostname = 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;
-
- struct LOCALGROUP_INFO_0 *info0 = NULL;
- struct LOCALGROUP_INFO_1 *info1 = NULL;
-
- poptContext pc;
- int opt;
-
- struct poptOption long_options[] = {
- POPT_AUTOHELP
- POPT_COMMON_LIBNETAPI_EXAMPLES
- POPT_TABLEEND
- };
-
- status = libnetapi_init(&ctx);
- if (status != 0) {
- return status;
- }
-
- pc = poptGetContext("localgroup_enum", argc, argv, long_options, 0);
-
- poptSetOtherOptionHelp(pc, "hostname level");
- while((opt = poptGetNextOpt(pc)) != -1) {
- }
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- hostname = poptGetArg(pc);
-
- if (poptPeekArg(pc)) {
- level = atoi(poptGetArg(pc));
- }
-
- /* NetLocalGroupEnum */
-
- do {
- status = NetLocalGroupEnum(hostname,
- 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 LOCALGROUP_INFO_0 *)buffer;
- break;
- case 1:
- info1 = (struct LOCALGROUP_INFO_1 *)buffer;
- break;
- default:
- break;
- }
- for (i=0; i<entries_read; i++) {
- switch (level) {
- case 0:
- printf("#%d group: %s\n", i, info0->lgrpi0_name);
- info0++;
- break;
- case 1:
- printf("#%d group: %s\n", i, info1->lgrpi1_name);
- printf("#%d comment: %s\n", i, info1->lgrpi1_comment);
- info1++;
- break;
- default:
- break;
- }
- }
- NetApiBufferFree(buffer);
- }
- } while (status == ERROR_MORE_DATA);
-
- if (status != 0) {
- printf("NetLocalGroupEnum failed with: %s\n",
- libnetapi_get_error_string(ctx, status));
- }
-
- out:
- libnetapi_free(ctx);
- poptFreeContext(pc);
-
- return status;
-}
diff --git a/source/lib/netapi/examples/localgroup/localgroup_getinfo.c b/source/lib/netapi/examples/localgroup/localgroup_getinfo.c
deleted file mode 100644
index cd8fa8c3b3..0000000000
--- a/source/lib/netapi/examples/localgroup/localgroup_getinfo.c
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * Unix SMB/CIFS implementation.
- * NetLocalGroupGetInfo query
- * Copyright (C) Guenther Deschner 2008
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <sys/types.h>
-#include <inttypes.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <netapi.h>
-
-#include "common.h"
-
-int main(int argc, const char **argv)
-{
- NET_API_STATUS status;
- struct libnetapi_ctx *ctx = NULL;
- const char *hostname = NULL;
- const char *groupname = NULL;
- uint8_t *buffer = NULL;
- uint32_t level = 0;
- struct LOCALGROUP_INFO_0 *g0;
- struct LOCALGROUP_INFO_1 *g1;
- struct LOCALGROUP_INFO_1002 *g1002;
-
- poptContext pc;
- int opt;
-
- struct poptOption long_options[] = {
- POPT_AUTOHELP
- POPT_COMMON_LIBNETAPI_EXAMPLES
- POPT_TABLEEND
- };
-
- status = libnetapi_init(&ctx);
- if (status != 0) {
- return status;
- }
-
- pc = poptGetContext("localgroup_getinfo", argc, argv, long_options, 0);
-
- poptSetOtherOptionHelp(pc, "hostname groupname level");
- while((opt = poptGetNextOpt(pc)) != -1) {
- }
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- hostname = poptGetArg(pc);
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- groupname = poptGetArg(pc);
-
- if (poptPeekArg(pc)) {
- level = atoi(poptGetArg(pc));
- }
-
- /* NetLocalGroupGetInfo */
-
- status = NetLocalGroupGetInfo(hostname,
- groupname,
- level,
- &buffer);
- if (status != 0) {
- printf("NetLocalGroupGetInfo failed with: %s\n",
- libnetapi_get_error_string(ctx, status));
- goto out;
- }
-
- switch (level) {
- case 0:
- g0 = (struct LOCALGROUP_INFO_0 *)buffer;
- printf("name: %s\n", g0->lgrpi0_name);
- break;
- case 1:
- g1 = (struct LOCALGROUP_INFO_1 *)buffer;
- printf("name: %s\n", g1->lgrpi1_name);
- printf("comment: %s\n", g1->lgrpi1_comment);
- break;
- case 1002:
- g1002 = (struct LOCALGROUP_INFO_1002 *)buffer;
- printf("comment: %s\n", g1002->lgrpi1002_comment);
- break;
- }
- NetApiBufferFree(buffer);
-
- out:
- libnetapi_free(ctx);
- poptFreeContext(pc);
-
- return status;
-}
diff --git a/source/lib/netapi/examples/localgroup/localgroup_getmembers.c b/source/lib/netapi/examples/localgroup/localgroup_getmembers.c
deleted file mode 100644
index 0589870d02..0000000000
--- a/source/lib/netapi/examples/localgroup/localgroup_getmembers.c
+++ /dev/null
@@ -1,165 +0,0 @@
-/*
- * Unix SMB/CIFS implementation.
- * NetLocalGroupGetMembers query
- * Copyright (C) Guenther Deschner 2008
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <sys/types.h>
-#include <inttypes.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <netapi.h>
-
-#include "common.h"
-
-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;
- char *sid_str = NULL;
- int i;
-
- 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;
-
- struct poptOption long_options[] = {
- POPT_AUTOHELP
- POPT_COMMON_LIBNETAPI_EXAMPLES
- POPT_TABLEEND
- };
-
- status = libnetapi_init(&ctx);
- if (status != 0) {
- return status;
- }
-
- pc = poptGetContext("localgroup_getmembers", argc, argv, long_options, 0);
-
- poptSetOtherOptionHelp(pc, "hostname groupname level");
- while((opt = poptGetNextOpt(pc)) != -1) {
- }
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- hostname = poptGetArg(pc);
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- groupname = poptGetArg(pc);
-
- if (poptPeekArg(pc)) {
- level = atoi(poptGetArg(pc));
- }
-
- /* NetLocalGroupGetMembers */
-
- do {
- 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 LOCALGROUP_MEMBERS_INFO_0 *)buffer;
- break;
- case 1:
- info1 = (struct LOCALGROUP_MEMBERS_INFO_1 *)buffer;
- break;
- case 2:
- info2 = (struct LOCALGROUP_MEMBERS_INFO_2 *)buffer;
- break;
- case 3:
- info3 = (struct LOCALGROUP_MEMBERS_INFO_3 *)buffer;
- break;
- default:
- break;
- }
- for (i=0; i<entries_read; i++) {
- switch (level) {
- case 0:
- if (ConvertSidToStringSid(info0->lgrmi0_sid,
- &sid_str)) {
- printf("#%d member sid: %s\n", i, sid_str);
- free(sid_str);
- }
- info0++;
- break;
- case 1:
- 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:
- if (ConvertSidToStringSid(info2->lgrmi2_sid,
- &sid_str)) {
- printf("#%d member sid: %s\n", i, sid_str);
- free(sid_str);
- }
- 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);
- }
- } while (status == ERROR_MORE_DATA);
-
- if (status != 0) {
- printf("NetLocalGroupGetMembers failed with: %s\n",
- libnetapi_get_error_string(ctx, status));
- }
-
- out:
- libnetapi_free(ctx);
- poptFreeContext(pc);
-
- return status;
-}
diff --git a/source/lib/netapi/examples/localgroup/localgroup_setinfo.c b/source/lib/netapi/examples/localgroup/localgroup_setinfo.c
deleted file mode 100644
index efcec76786..0000000000
--- a/source/lib/netapi/examples/localgroup/localgroup_setinfo.c
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Unix SMB/CIFS implementation.
- * NetLocalGroupSetInfo query
- * Copyright (C) Guenther Deschner 2008
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <sys/types.h>
-#include <inttypes.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <netapi.h>
-
-#include "common.h"
-
-int main(int argc, const char **argv)
-{
- NET_API_STATUS status;
- struct libnetapi_ctx *ctx = NULL;
- const char *hostname = NULL;
- const char *groupname = NULL;
- uint8_t *buffer = NULL;
- uint32_t level = 0;
- struct LOCALGROUP_INFO_0 g0;
- struct LOCALGROUP_INFO_1 g1;
- struct LOCALGROUP_INFO_1002 g1002;
- const char *newname = NULL;
- const char *newcomment = NULL;
- uint32_t parm_err = 0;
-
- poptContext pc;
- int opt;
-
- struct poptOption long_options[] = {
- POPT_AUTOHELP
- POPT_COMMON_LIBNETAPI_EXAMPLES
- { "newname", 0, POPT_ARG_STRING, NULL, 'n', "New Local Group Name", "NEWNAME" },
- { "newcomment", 0, POPT_ARG_STRING, NULL, 'c', "New Local Group Comment", "NETCOMMENT" },
- POPT_TABLEEND
- };
-
- status = libnetapi_init(&ctx);
- if (status != 0) {
- return status;
- }
-
- pc = poptGetContext("localgroup_setinfo", argc, argv, long_options, 0);
-
- poptSetOtherOptionHelp(pc, "hostname groupname level");
- while((opt = poptGetNextOpt(pc)) != -1) {
- switch (opt) {
- case 'n':
- newname = poptGetOptArg(pc);
- break;
- case 'c':
- newcomment = poptGetOptArg(pc);
- break;
- }
-
- }
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- hostname = poptGetArg(pc);
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- groupname = poptGetArg(pc);
-
- if (poptPeekArg(pc)) {
- level = atoi(poptGetArg(pc));
- }
-
- if (newname && !newcomment) {
- g0.lgrpi0_name = newname;
- buffer = (uint8_t *)&g0;
- level = 0;
- } else if (newcomment && !newname) {
- g1002.lgrpi1002_comment = newcomment;
- buffer = (uint8_t *)&g1002;
- level = 1002;
- } else if (newname && newcomment) {
- g1.lgrpi1_name = newname;
- g1.lgrpi1_comment = newcomment;
- buffer = (uint8_t *)&g1;
- level = 1;
- } else {
- printf("not enough input\n");
- goto out;
- }
-
- /* NetLocalGroupSetInfo */
-
- status = NetLocalGroupSetInfo(hostname,
- groupname,
- level,
- buffer,
- &parm_err);
- if (status != 0) {
- printf("NetLocalGroupSetInfo failed with: %s\n",
- libnetapi_get_error_string(ctx, status));
- goto out;
- }
-
- out:
- libnetapi_free(ctx);
- poptFreeContext(pc);
-
- return status;
-}
diff --git a/source/lib/netapi/examples/localgroup/localgroup_setmembers.c b/source/lib/netapi/examples/localgroup/localgroup_setmembers.c
deleted file mode 100644
index c35f2bbb81..0000000000
--- a/source/lib/netapi/examples/localgroup/localgroup_setmembers.c
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- * Unix SMB/CIFS implementation.
- * NetLocalGroupSetMembers query
- * Copyright (C) Guenther Deschner 2008
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <sys/types.h>
-#include <inttypes.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <netapi.h>
-
-#include "common.h"
-
-int main(int argc, const char **argv)
-{
- NET_API_STATUS status;
- struct libnetapi_ctx *ctx = NULL;
- const char *hostname = NULL;
- const char *groupname = NULL;
- struct LOCALGROUP_MEMBERS_INFO_0 *g0;
- struct LOCALGROUP_MEMBERS_INFO_3 *g3;
- uint32_t total_entries = 0;
- uint8_t *buffer = NULL;
- uint32_t level = 3;
- const char **names = NULL;
- int i = 0;
- size_t buf_size = 0;
-
- poptContext pc;
- int opt;
-
- struct poptOption long_options[] = {
- POPT_AUTOHELP
- POPT_COMMON_LIBNETAPI_EXAMPLES
- POPT_TABLEEND
- };
-
- status = libnetapi_init(&ctx);
- if (status != 0) {
- return status;
- }
-
- pc = poptGetContext("localgroup_setmembers", argc, argv, long_options, 0);
-
- poptSetOtherOptionHelp(pc, "hostname groupname member1 member2 ...");
- while((opt = poptGetNextOpt(pc)) != -1) {
- }
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- hostname = poptGetArg(pc);
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- groupname = poptGetArg(pc);
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
-
- names = poptGetArgs(pc);
- for (i=0; names[i] != NULL; i++) {
- total_entries++;
- }
-
- switch (level) {
- case 0:
- buf_size = sizeof(struct LOCALGROUP_MEMBERS_INFO_0) * total_entries;
-
- status = NetApiBufferAllocate(buf_size, (void **)&g0);
- if (status) {
- printf("NetApiBufferAllocate failed with: %s\n",
- libnetapi_get_error_string(ctx, status));
- goto out;
- }
-
- for (i=0; i<total_entries; i++) {
- if (!ConvertStringSidToSid(names[i], &g0[i].lgrmi0_sid)) {
- printf("could not convert sid\n");
- goto out;
- }
- }
-
- buffer = (uint8_t *)g0;
- break;
- case 3:
- buf_size = sizeof(struct LOCALGROUP_MEMBERS_INFO_3) * total_entries;
-
- status = NetApiBufferAllocate(buf_size, (void **)&g3);
- if (status) {
- printf("NetApiBufferAllocate failed with: %s\n",
- libnetapi_get_error_string(ctx, status));
- goto out;
- }
-
- for (i=0; i<total_entries; i++) {
- g3[i].lgrmi3_domainandname = names[i];
- }
-
- buffer = (uint8_t *)g3;
- break;
- default:
- break;
- }
-
- /* NetLocalGroupSetMembers */
-
- status = NetLocalGroupSetMembers(hostname,
- groupname,
- level,
- buffer,
- total_entries);
- if (status != 0) {
- printf("NetLocalGroupSetMembers failed with: %s\n",
- libnetapi_get_error_string(ctx, status));
- }
-
- NetApiBufferFree(buffer);
-
- out:
- libnetapi_free(ctx);
- poptFreeContext(pc);
-
- return status;
-}
diff --git a/source/lib/netapi/examples/netdomjoin-gui/netdomjoin-gui.c b/source/lib/netapi/examples/netdomjoin-gui/netdomjoin-gui.c
index 40a6e415eb..418b9c8b8e 100644
--- a/source/lib/netapi/examples/netdomjoin-gui/netdomjoin-gui.c
+++ b/source/lib/netapi/examples/netdomjoin-gui/netdomjoin-gui.c
@@ -38,6 +38,14 @@
#define SAMBA_IMAGE_PATH "/usr/share/pixmaps/samba/logo.png"
#define SAMBA_IMAGE_PATH_SMALL "/usr/share/pixmaps/samba/logo-small.png"
+#define WKSSVC_JOIN_FLAGS_DOMAIN_JOIN_IF_JOINED ( 0x00000020 )
+#define WKSSVC_JOIN_FLAGS_ACCOUNT_DELETE ( 0x00000004 )
+#define WKSSVC_JOIN_FLAGS_ACCOUNT_CREATE ( 0x00000002 )
+#define WKSSVC_JOIN_FLAGS_JOIN_TYPE ( 0x00000001 )
+
+#define NetSetupWorkgroupName ( 2 )
+#define NetSetupDomainName ( 3 )
+
#define SAFE_FREE(x) do { if ((x) != NULL) {free(x); x=NULL;} } while(0)
static gboolean verbose = FALSE;
@@ -77,7 +85,6 @@ typedef struct join_state {
gboolean settings_changed;
gboolean hostname_changed;
uint32_t stored_num_ous;
- char *target_hostname;
} join_state;
static void debug(const char *format, ...)
@@ -101,23 +108,14 @@ static gboolean callback_delete_event(GtkWidget *widget,
return FALSE;
}
-static void callback_do_close_data(GtkWidget *widget,
- gpointer data)
+static void callback_do_close(GtkWidget *widget,
+ gpointer data)
{
- debug("callback_do_close_data called\n");
+ debug("callback_do_close called\n");
if (data) {
gtk_widget_destroy(GTK_WIDGET(data));
- }
-}
-
-static void callback_do_close_widget(GtkWidget *widget,
- gpointer data)
-{
- debug("callback_do_close_widget called\n");
-
- if (widget) {
- gtk_widget_destroy(widget);
+ data = NULL;
}
}
@@ -187,10 +185,7 @@ static void callback_apply_description_change(GtkWidget *widget,
info1005.sv1005_comment = state->comment_new;
- status = NetServerSetInfo(state->target_hostname,
- 1005,
- (uint8_t *)&info1005,
- &parm_err);
+ status = NetServerSetInfo(NULL, 1005, (uint8_t *)&info1005, &parm_err);
if (status) {
debug("NetServerSetInfo failed with: %s\n",
libnetapi_errstr(status));
@@ -201,7 +196,6 @@ static void callback_apply_description_change(GtkWidget *widget,
"Failed to change computer description: %s.",
libnetapi_get_error_string(state->ctx, status));
gtk_window_set_modal(GTK_WINDOW(dialog), TRUE);
- gtk_window_set_transient_for(GTK_WINDOW(dialog), GTK_WINDOW(state->window_main));
g_signal_connect_swapped(dialog, "response",
G_CALLBACK(gtk_widget_destroy),
@@ -273,7 +267,6 @@ static void callback_do_reboot(GtkWidget *widget,
GTK_BUTTONS_OK,
"You must restart this computer for the changes to take effect.");
gtk_window_set_modal(GTK_WINDOW(dialog), TRUE);
- gtk_window_set_transient_for(GTK_WINDOW(dialog), GTK_WINDOW(state->window_do_change));
#if 0
g_signal_connect_swapped(dialog, "response",
G_CALLBACK(gtk_widget_destroy),
@@ -297,9 +290,7 @@ static void callback_do_reboot(GtkWidget *widget,
const char *buffer;
uint16_t type;
- status = NetGetJoinInformation(state->target_hostname,
- &buffer,
- &type);
+ status = NetGetJoinInformation(NULL, &buffer, &type);
if (status != 0) {
g_print("failed to query status\n");
return;
@@ -475,7 +466,6 @@ static void callback_do_hostname_change(GtkWidget *widget,
str);
gtk_window_set_modal(GTK_WINDOW(dialog), TRUE);
- gtk_window_set_transient_for(GTK_WINDOW(dialog), GTK_WINDOW(state->window_main));
g_signal_connect_swapped(dialog, "response",
G_CALLBACK(gtk_widget_destroy),
dialog);
@@ -505,11 +495,9 @@ static void callback_creds_prompt(GtkWidget *widget,
gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
gtk_widget_set_size_request(GTK_WIDGET(window), 380, 280);
gtk_window_set_icon_from_file(GTK_WINDOW(window), SAMBA_ICON_PATH, NULL);
- gtk_window_set_transient_for(GTK_WINDOW(window), GTK_WINDOW(state->window_do_change));
- gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER_ALWAYS);
g_signal_connect(G_OBJECT(window), "delete_event",
- G_CALLBACK(callback_do_close_widget), NULL);
+ G_CALLBACK(callback_do_close), window);
state->window_creds_prompt = window;
gtk_container_set_border_width(GTK_CONTAINER(window), 10);
@@ -643,9 +631,9 @@ static void callback_do_join(GtkWidget *widget,
if (state->name_type_new == NetSetupDomainName) {
domain_join = TRUE;
join_creds_required = TRUE;
- join_flags = NETSETUP_JOIN_DOMAIN |
- NETSETUP_ACCT_CREATE |
- NETSETUP_DOMAIN_JOIN_IF_JOINED; /* for testing */
+ join_flags = WKSSVC_JOIN_FLAGS_JOIN_TYPE |
+ WKSSVC_JOIN_FLAGS_ACCOUNT_CREATE |
+ WKSSVC_JOIN_FLAGS_DOMAIN_JOIN_IF_JOINED; /* for testing */
}
if ((state->name_type_initial == NetSetupDomainName) &&
@@ -653,8 +641,8 @@ static void callback_do_join(GtkWidget *widget,
try_unjoin = TRUE;
unjoin_creds_required = TRUE;
join_creds_required = FALSE;
- unjoin_flags = NETSETUP_JOIN_DOMAIN |
- NETSETUP_ACCT_DELETE;
+ unjoin_flags = WKSSVC_JOIN_FLAGS_JOIN_TYPE |
+ WKSSVC_JOIN_FLAGS_ACCOUNT_DELETE;
}
if (try_unjoin) {
@@ -675,7 +663,7 @@ static void callback_do_join(GtkWidget *widget,
}
}
- status = NetUnjoinDomain(state->target_hostname,
+ status = NetUnjoinDomain(NULL,
state->account,
state->password,
unjoin_flags);
@@ -729,7 +717,6 @@ static void callback_do_join(GtkWidget *widget,
err_str);
gtk_window_set_modal(GTK_WINDOW(dialog), TRUE);
- gtk_window_set_transient_for(GTK_WINDOW(dialog), GTK_WINDOW(state->window_do_change));
g_signal_connect_swapped(dialog, "response",
G_CALLBACK(gtk_widget_destroy),
dialog);
@@ -766,7 +753,7 @@ static void callback_do_join(GtkWidget *widget,
}
debug("\n");
- status = NetJoinDomain(state->target_hostname,
+ status = NetJoinDomain(NULL,
state->name_buffer_new,
account_ou,
state->account,
@@ -787,7 +774,6 @@ static void callback_do_join(GtkWidget *widget,
err_str);
gtk_window_set_modal(GTK_WINDOW(dialog), TRUE);
- gtk_window_set_transient_for(GTK_WINDOW(dialog), GTK_WINDOW(state->window_do_change));
g_signal_connect_swapped(dialog, "response",
G_CALLBACK(gtk_widget_destroy),
dialog);
@@ -810,7 +796,6 @@ static void callback_do_join(GtkWidget *widget,
new_workgroup_type);
gtk_window_set_modal(GTK_WINDOW(dialog), TRUE);
- gtk_window_set_transient_for(GTK_WINDOW(dialog), GTK_WINDOW(state->window_do_change));
gtk_dialog_run(GTK_DIALOG(dialog));
gtk_widget_destroy(dialog);
@@ -834,19 +819,13 @@ static void callback_enter_hostname_and_unlock(GtkWidget *widget,
if (strcasecmp(state->my_hostname, entry_text) == 0) {
state->hostname_changed = FALSE;
gtk_widget_set_sensitive(GTK_WIDGET(state->button_ok), FALSE);
- /* return; */
- } else {
- state->hostname_changed = TRUE;
+ return;
}
-
+ state->hostname_changed = TRUE;
if (state->name_type_initial == NetSetupDomainName) {
- if (asprintf(&str, "%s.%s", entry_text, state->my_dnsdomain) == -1) {
- return;
- }
+ asprintf(&str, "%s.%s", entry_text, state->my_dnsdomain);
} else {
- if (asprintf(&str, "%s.", entry_text) == -1) {
- return;
- }
+ asprintf(&str, "%s.", entry_text);
}
gtk_label_set_text(GTK_LABEL(state->label_full_computer_name), str);
free(str);
@@ -861,7 +840,7 @@ static void callback_enter_computer_description_and_unlock(GtkWidget *widget,
{
const gchar *entry_text = NULL;
struct join_state *state = (struct join_state *)data;
- int string_unchanged = FALSE;
+ int string_unchanged = 0;
entry_text = gtk_entry_get_text(GTK_ENTRY(widget));
debug("callback_enter_computer_description_and_unlock: %s\n",
@@ -874,8 +853,8 @@ static void callback_enter_computer_description_and_unlock(GtkWidget *widget,
return;
}
#endif
- if (entry_text && state->comment && strcasecmp(state->comment, entry_text) == 0) {
- string_unchanged = TRUE;
+ if (entry_text && strcasecmp(state->comment, entry_text) == 0) {
+ string_unchanged = 1;
gtk_widget_set_sensitive(GTK_WIDGET(state->button_apply),
FALSE);
return;
@@ -1004,7 +983,6 @@ static void callback_do_getous(GtkWidget *widget,
err_str);
gtk_window_set_modal(GTK_WINDOW(dialog), TRUE);
- gtk_window_set_transient_for(GTK_WINDOW(dialog), GTK_WINDOW(state->window_do_change));
g_signal_connect_swapped(dialog, "response",
G_CALLBACK(gtk_widget_destroy),
dialog);
@@ -1026,8 +1004,7 @@ static void callback_do_getous(GtkWidget *widget,
return;
}
- status = NetGetJoinableOUs(state->target_hostname,
- domain,
+ status = NetGetJoinableOUs(NULL, domain,
state->account,
state->password,
&num_ous, &ous);
@@ -1042,7 +1019,6 @@ static void callback_do_getous(GtkWidget *widget,
"Failed to query joinable OUs: %s",
libnetapi_get_error_string(state->ctx, status));
gtk_window_set_modal(GTK_WINDOW(dialog), TRUE);
- gtk_window_set_transient_for(GTK_WINDOW(dialog), GTK_WINDOW(state->window_do_change));
gtk_dialog_run(GTK_DIALOG(dialog));
gtk_widget_destroy(dialog);
return;
@@ -1108,11 +1084,9 @@ static void callback_do_change(GtkWidget *widget,
gtk_window_set_resizable(GTK_WINDOW(window), FALSE);
gtk_widget_set_size_request(GTK_WIDGET(window), 480, 650);
gtk_window_set_icon_from_file(GTK_WINDOW(window), SAMBA_ICON_PATH, NULL);
- gtk_window_set_transient_for(GTK_WINDOW(window), GTK_WINDOW(state->window_main));
- gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER_ALWAYS);
g_signal_connect(G_OBJECT(window), "delete_event",
- G_CALLBACK(callback_do_close_widget), NULL);
+ G_CALLBACK(callback_do_close), window);
gtk_container_set_border_width(GTK_CONTAINER(window), 10);
@@ -1158,14 +1132,10 @@ static void callback_do_change(GtkWidget *widget,
char *str = NULL;
entry_text = gtk_entry_get_text(GTK_ENTRY(entry));
if (state->name_type_initial == NetSetupDomainName) {
- if (asprintf(&str, "%s.%s", entry_text,
- state->my_dnsdomain) == -1) {
- return;
- }
+ asprintf(&str, "%s.%s", entry_text,
+ state->my_dnsdomain);
} else {
- if (asprintf(&str, "%s.", entry_text) == -1) {
- return;
- }
+ asprintf(&str, "%s.", entry_text);
}
gtk_label_set_text(GTK_LABEL(state->label_full_computer_name),
str);
@@ -1310,8 +1280,6 @@ static void callback_do_about(GtkWidget *widget,
GError *error = NULL;
GtkWidget *about;
- struct join_state *state = (struct join_state *)data;
-
debug("callback_do_about called\n");
logo = gdk_pixbuf_new_from_file(SAMBA_IMAGE_PATH,
@@ -1335,7 +1303,6 @@ static void callback_do_about(GtkWidget *widget,
}
gtk_about_dialog_set_comments(GTK_ABOUT_DIALOG(about), "Samba gtk domain join utility");
gtk_window_set_modal(GTK_WINDOW(about), TRUE);
- gtk_window_set_transient_for(GTK_WINDOW(about), GTK_WINDOW(state->window_main));
g_signal_connect_swapped(about, "response",
G_CALLBACK(gtk_widget_destroy),
about);
@@ -1382,7 +1349,6 @@ static int draw_main_window(struct join_state *state)
gtk_widget_set_size_request(GTK_WIDGET(window), 600, 600);
gtk_window_set_resizable(GTK_WINDOW(window), FALSE);
gtk_window_set_icon_from_file(GTK_WINDOW(window), SAMBA_ICON_PATH, NULL);
- gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER_ALWAYS);
g_signal_connect(G_OBJECT(window), "delete_event",
G_CALLBACK(callback_delete_event), NULL);
@@ -1470,14 +1436,10 @@ static int draw_main_window(struct join_state *state)
/* Label */
char *str = NULL;
if (state->name_type_initial == NetSetupDomainName) {
- if (asprintf(&str, "%s.%s", state->my_hostname,
- state->my_dnsdomain) == -1) {
- return -1;
- }
+ asprintf(&str, "%s.%s", state->my_hostname,
+ state->my_dnsdomain);
} else {
- if (asprintf(&str, "%s.", state->my_hostname) == -1) {
- return -1;
- }
+ asprintf(&str, "%s.", state->my_hostname);
}
label = gtk_label_new(str);
@@ -1577,7 +1539,7 @@ static int draw_main_window(struct join_state *state)
gtk_container_add(GTK_CONTAINER(bbox2), button2);
g_signal_connect(G_OBJECT(button2), "clicked",
G_CALLBACK(callback_do_about),
- state);
+ window);
#if 0
button2 = gtk_button_new_from_stock(GTK_STOCK_HELP);
gtk_container_add(GTK_CONTAINER(bbox2), button2);
@@ -1609,55 +1571,8 @@ static int init_join_state(struct join_state **state)
return 0;
}
-static NET_API_STATUS get_server_comment(struct join_state *state)
-{
- struct SERVER_INFO_101 *info101 = NULL;
- struct SERVER_INFO_1005 *info1005 = NULL;
- NET_API_STATUS status;
-
- status = NetServerGetInfo(state->target_hostname,
- 101,
- (uint8_t **)&info101);
- if (status == 0) {
- state->comment = strdup(info101->sv101_comment);
- if (!state->comment) {
- return -1;
- }
- NetApiBufferFree(info101);
- return NET_API_STATUS_SUCCESS;
- }
-
- switch (status) {
- case 124: /* WERR_UNKNOWN_LEVEL */
- case 50: /* WERR_NOT_SUPPORTED */
- break;
- default:
- goto failed;
- }
-
- status = NetServerGetInfo(state->target_hostname,
- 1005,
- (uint8_t **)&info1005);
- if (status == 0) {
- state->comment = strdup(info1005->sv1005_comment);
- if (!state->comment) {
- return -1;
- }
- NetApiBufferFree(info1005);
- return NET_API_STATUS_SUCCESS;
- }
-
- failed:
- printf("NetServerGetInfo failed with: %s\n",
- libnetapi_get_error_string(state->ctx, status));
-
- return status;
-}
-
static int initialize_join_state(struct join_state *state,
- const char *debug_level,
- const char *target_hostname,
- const char *target_username)
+ const char *debug_level)
{
struct libnetapi_ctx *ctx = NULL;
NET_API_STATUS status = 0;
@@ -1671,30 +1586,6 @@ static int initialize_join_state(struct join_state *state,
libnetapi_set_debuglevel(ctx, debug_level);
}
- if (target_hostname) {
- state->target_hostname = strdup(target_hostname);
- if (!state->target_hostname) {
- return -1;
- }
- }
-
- if (target_username) {
- char *puser = strdup(target_username);
- char *p = NULL;
-
- if ((p = strchr(puser,'%'))) {
- size_t len;
- *p = 0;
- libnetapi_set_username(ctx, puser);
- libnetapi_set_password(ctx, p+1);
- len = strlen(p+1);
- memset(strchr(target_username,'%')+1,'X',len);
- } else {
- libnetapi_set_username(ctx, puser);
- }
- free(puser);
- }
-
{
char my_hostname[HOST_NAME_MAX];
const char *p = NULL;
@@ -1741,9 +1632,7 @@ static int initialize_join_state(struct join_state *state,
{
const char *buffer = NULL;
uint16_t type = 0;
- status = NetGetJoinInformation(state->target_hostname,
- &buffer,
- &type);
+ status = NetGetJoinInformation(NULL, &buffer, &type);
if (status != 0) {
printf("NetGetJoinInformation failed with: %s\n",
libnetapi_get_error_string(state->ctx, status));
@@ -1758,10 +1647,43 @@ static int initialize_join_state(struct join_state *state,
NetApiBufferFree((void *)buffer);
}
- status = get_server_comment(state);
- if (status != 0) {
- return -1;
+ {
+ struct SERVER_INFO_1005 *info1005 = NULL;
+ uint8_t *buffer = NULL;
+
+ status = NetServerGetInfo(NULL, 1005, &buffer);
+ if (status != 0) {
+ printf("NetServerGetInfo failed with: %s\n",
+ libnetapi_get_error_string(state->ctx, status));
+ return status;
+ }
+
+ info1005 = (struct SERVER_INFO_1005 *)buffer;
+
+ state->comment = strdup(info1005->sv1005_comment);
+ if (!state->comment) {
+ return -1;
+ }
+ NetApiBufferFree(buffer);
+ }
+#if 0
+ {
+ struct srvsvc_NetSrvInfo100 *info100 = NULL;
+ uint8_t *buffer = NULL;
+
+ status = NetServerGetInfo(NULL, 100, &buffer);
+ if (status) {
+ return status;
+ }
+
+ info100 = (struct srvsvc_NetSrvInfo100 *)buffer;
+
+ state->comment = strdup(info100->comment);
+ if (!state->comment) {
+ return -1;
+ }
}
+#endif
state->ctx = ctx;
@@ -1772,8 +1694,6 @@ int main(int argc, char **argv)
{
GOptionContext *context = NULL;
static const char *debug_level = NULL;
- static const char *target_hostname = NULL;
- static const char *target_username = NULL;
struct join_state *state = NULL;
GError *error = NULL;
int ret = 0;
@@ -1781,8 +1701,6 @@ int main(int argc, char **argv)
static GOptionEntry entries[] = {
{ "debug", 'd', 0, G_OPTION_ARG_STRING, &debug_level, "Debug level (for samba)", "N" },
{ "verbose", 'v', 0, G_OPTION_ARG_NONE, &verbose, "Verbose output", 0 },
- { "target", 'S', 0, G_OPTION_ARG_STRING, &target_hostname, "Target hostname", 0 },
- { "username", 'U', 0, G_OPTION_ARG_STRING, &target_username, "Target hostname", 0 },
{ NULL }
};
@@ -1800,9 +1718,7 @@ int main(int argc, char **argv)
return ret;
}
- ret = initialize_join_state(state, debug_level,
- target_hostname,
- target_username);
+ ret = initialize_join_state(state, debug_level);
if (ret) {
return ret;
}
diff --git a/source/lib/netapi/examples/join/netdomjoin.c b/source/lib/netapi/examples/netdomjoin/netdomjoin.c
index 08ce71b938..bd7c36382a 100644
--- a/source/lib/netapi/examples/join/netdomjoin.c
+++ b/source/lib/netapi/examples/netdomjoin/netdomjoin.c
@@ -39,9 +39,7 @@ int main(int argc, const char **argv)
const char *account_ou = NULL;
const char *account = NULL;
const char *password = NULL;
- uint32_t join_flags = NETSETUP_JOIN_DOMAIN |
- NETSETUP_ACCT_CREATE |
- NETSETUP_DOMAIN_JOIN_IF_JOINED;
+ uint32_t join_flags = 0x00000023;
struct libnetapi_ctx *ctx = NULL;
poptContext pc;
diff --git a/source/lib/netapi/examples/server/remote_tod.c b/source/lib/netapi/examples/server/remote_tod.c
deleted file mode 100644
index 7636f6ac95..0000000000
--- a/source/lib/netapi/examples/server/remote_tod.c
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Unix SMB/CIFS implementation.
- * NetRemoteTOD query
- * Copyright (C) Guenther Deschner 2008
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <sys/types.h>
-#include <inttypes.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <netapi.h>
-
-#include "common.h"
-
-int main(int argc, const char **argv)
-{
- NET_API_STATUS status;
- struct libnetapi_ctx *ctx = NULL;
- const char *hostname = NULL;
- struct TIME_OF_DAY_INFO *tod = NULL;
-
- poptContext pc;
- int opt;
-
- struct poptOption long_options[] = {
- POPT_AUTOHELP
- POPT_COMMON_LIBNETAPI_EXAMPLES
- POPT_TABLEEND
- };
-
- status = libnetapi_init(&ctx);
- if (status != 0) {
- return status;
- }
-
- pc = poptGetContext("tod", argc, argv, long_options, 0);
-
- poptSetOtherOptionHelp(pc, "hostname");
- while((opt = poptGetNextOpt(pc)) != -1) {
- }
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- hostname = poptGetArg(pc);
-
-
- /* NetRemoteTOD */
-
- status = NetRemoteTOD(hostname,
- (uint8_t **)&tod);
- if (status != 0) {
- printf("NetRemoteTOD failed with: %s\n",
- libnetapi_get_error_string(ctx, status));
- } else {
- printf("%d-%d-%d %d:%d:%d\n",
- tod->tod_day, tod->tod_month, tod->tod_year,
- tod->tod_hours, tod->tod_mins, tod->tod_secs);
- NetApiBufferFree(tod);
- }
-
- out:
- libnetapi_free(ctx);
- poptFreeContext(pc);
-
- return status;
-}
diff --git a/source/lib/netapi/examples/server/server_getinfo.c b/source/lib/netapi/examples/server/server_getinfo.c
deleted file mode 100644
index afd2edd05d..0000000000
--- a/source/lib/netapi/examples/server/server_getinfo.c
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Unix SMB/CIFS implementation.
- * NetServerGetInfo query
- * Copyright (C) Guenther Deschner 2008
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <sys/types.h>
-#include <inttypes.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <netapi.h>
-
-#include "common.h"
-
-int main(int argc, const char **argv)
-{
- NET_API_STATUS status;
- struct libnetapi_ctx *ctx = NULL;
- const char *hostname = NULL;
- uint8_t *buffer = NULL;
- uint32_t level = 100;
-
- struct SERVER_INFO_100 *i100;
- struct SERVER_INFO_101 *i101;
- struct SERVER_INFO_102 *i102;
- struct SERVER_INFO_1005 *i1005;
-
- poptContext pc;
- int opt;
-
- struct poptOption long_options[] = {
- POPT_AUTOHELP
- POPT_COMMON_LIBNETAPI_EXAMPLES
- POPT_TABLEEND
- };
-
- status = libnetapi_init(&ctx);
- if (status != 0) {
- return status;
- }
-
- pc = poptGetContext("server_getinfo", argc, argv, long_options, 0);
-
- poptSetOtherOptionHelp(pc, "hostname level");
- while((opt = poptGetNextOpt(pc)) != -1) {
- }
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- hostname = poptGetArg(pc);
-
- if (poptPeekArg(pc)) {
- level = atoi(poptGetArg(pc));
- }
-
- /* NetServerGetInfo */
-
- status = NetServerGetInfo(hostname,
- level,
- &buffer);
- if (status != 0) {
- printf("NetServerGetInfo failed with: %s\n",
- libnetapi_get_error_string(ctx, status));
- goto out;
- }
-
- switch (level) {
- case 100:
- i100 = (struct SERVER_INFO_100 *)buffer;
- printf("platform id: %d\n", i100->sv100_platform_id);
- printf("name: %s\n", i100->sv100_name);
- break;
- case 101:
- i101 = (struct SERVER_INFO_101 *)buffer;
- printf("platform id: %d\n", i101->sv101_platform_id);
- printf("name: %s\n", i101->sv101_name);
- printf("version major: %d\n", i101->sv101_version_major);
- printf("version minor: %d\n", i101->sv101_version_minor);
- printf("type: 0x%08x\n", i101->sv101_type);
- printf("comment: %s\n", i101->sv101_comment);
- break;
- case 102:
- i102 = (struct SERVER_INFO_102 *)buffer;
- printf("platform id: %d\n", i102->sv102_platform_id);
- printf("name: %s\n", i102->sv102_name);
- printf("version major: %d\n", i102->sv102_version_major);
- printf("version minor: %d\n", i102->sv102_version_minor);
- printf("type: 0x%08x\n", i102->sv102_type);
- printf("comment: %s\n", i102->sv102_comment);
- printf("users: %d\n", i102->sv102_users);
- printf("disc: %d\n", i102->sv102_disc);
- printf("hidden: %d\n", i102->sv102_hidden);
- printf("announce: %d\n", i102->sv102_announce);
- printf("anndelta: %d\n", i102->sv102_anndelta);
- printf("licenses: %d\n", i102->sv102_licenses);
- printf("userpath: %s\n", i102->sv102_userpath);
- break;
- case 1005:
- i1005 = (struct SERVER_INFO_1005 *)buffer;
- printf("comment: %s\n", i1005->sv1005_comment);
- break;
- default:
- break;
- }
-
- out:
- libnetapi_free(ctx);
- poptFreeContext(pc);
-
- return status;
-}
diff --git a/source/lib/netapi/examples/share/share_add.c b/source/lib/netapi/examples/share/share_add.c
deleted file mode 100644
index 3d7948840d..0000000000
--- a/source/lib/netapi/examples/share/share_add.c
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Unix SMB/CIFS implementation.
- * NetShareAdd query
- * Copyright (C) Guenther Deschner 2008
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <sys/types.h>
-#include <inttypes.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <netapi.h>
-
-#include "common.h"
-
-int main(int argc, const char **argv)
-{
- NET_API_STATUS status;
- struct libnetapi_ctx *ctx = NULL;
- const char *hostname = NULL;
- const char *sharename = NULL;
- const char *path = NULL;
- uint32_t level = 0;
- uint32_t parm_err = 0;
-
- struct SHARE_INFO_2 i2;
-
- poptContext pc;
- int opt;
-
- struct poptOption long_options[] = {
- POPT_AUTOHELP
- POPT_COMMON_LIBNETAPI_EXAMPLES
- POPT_TABLEEND
- };
-
- status = libnetapi_init(&ctx);
- if (status != 0) {
- return status;
- }
-
- pc = poptGetContext("share_add", argc, argv, long_options, 0);
-
- poptSetOtherOptionHelp(pc, "hostname sharename path");
- while((opt = poptGetNextOpt(pc)) != -1) {
- }
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- hostname = poptGetArg(pc);
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- sharename = poptGetArg(pc);
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- path = poptGetArg(pc);
-
- if (poptPeekArg(pc)) {
- level = atoi(poptGetArg(pc));
- }
-
- /* NetShareAdd */
-
- i2.shi2_netname = sharename;
- i2.shi2_type = 0;
- i2.shi2_remark = "Test share created via NetApi";
- i2.shi2_permissions = 0;
- i2.shi2_max_uses = (uint32_t)-1;
- i2.shi2_current_uses = 0;
- i2.shi2_path = path;
- i2.shi2_passwd = NULL;
-
- status = NetShareAdd(hostname,
- 2,
- (uint8_t *)&i2,
- &parm_err);
- if (status != 0) {
- printf("NetShareAdd failed with: %s\n",
- libnetapi_get_error_string(ctx, status));
- goto out;
- }
-
- out:
- libnetapi_free(ctx);
- poptFreeContext(pc);
-
- return status;
-}
diff --git a/source/lib/netapi/examples/share/share_del.c b/source/lib/netapi/examples/share/share_del.c
deleted file mode 100644
index 20e3ce5a8b..0000000000
--- a/source/lib/netapi/examples/share/share_del.c
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Unix SMB/CIFS implementation.
- * NetShareDel query
- * Copyright (C) Guenther Deschner 2008
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <sys/types.h>
-#include <inttypes.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <netapi.h>
-
-#include "common.h"
-
-int main(int argc, const char **argv)
-{
- NET_API_STATUS status;
- struct libnetapi_ctx *ctx = NULL;
- const char *hostname = NULL;
- const char *sharename = NULL;
-
- poptContext pc;
- int opt;
-
- struct poptOption long_options[] = {
- POPT_AUTOHELP
- POPT_COMMON_LIBNETAPI_EXAMPLES
- POPT_TABLEEND
- };
-
- status = libnetapi_init(&ctx);
- if (status != 0) {
- return status;
- }
-
- pc = poptGetContext("share_del", argc, argv, long_options, 0);
-
- poptSetOtherOptionHelp(pc, "hostname sharename");
- while((opt = poptGetNextOpt(pc)) != -1) {
- }
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- hostname = poptGetArg(pc);
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- sharename = poptGetArg(pc);
-
- /* NetShareDel */
-
- status = NetShareDel(hostname,
- sharename,
- 0);
- if (status != 0) {
- printf("NetShareDel failed with: %s\n",
- libnetapi_get_error_string(ctx, status));
- goto out;
- }
-
- out:
- libnetapi_free(ctx);
- poptFreeContext(pc);
-
- return status;
-}
diff --git a/source/lib/netapi/examples/share/share_enum.c b/source/lib/netapi/examples/share/share_enum.c
deleted file mode 100644
index b1f4043795..0000000000
--- a/source/lib/netapi/examples/share/share_enum.c
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- * Unix SMB/CIFS implementation.
- * NetShareEnum query
- * Copyright (C) Guenther Deschner 2008
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <sys/types.h>
-#include <inttypes.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <netapi.h>
-
-#include "common.h"
-
-int main(int argc, const char **argv)
-{
- NET_API_STATUS status;
- struct libnetapi_ctx *ctx = NULL;
- const char *hostname = 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;
-
- struct SHARE_INFO_0 *i0 = NULL;
- struct SHARE_INFO_1 *i1 = NULL;
- struct SHARE_INFO_2 *i2 = NULL;
-
- poptContext pc;
- int opt;
-
- struct poptOption long_options[] = {
- POPT_AUTOHELP
- POPT_COMMON_LIBNETAPI_EXAMPLES
- POPT_TABLEEND
- };
-
- status = libnetapi_init(&ctx);
- if (status != 0) {
- return status;
- }
-
- pc = poptGetContext("share_enum", argc, argv, long_options, 0);
-
- poptSetOtherOptionHelp(pc, "hostname level");
- while((opt = poptGetNextOpt(pc)) != -1) {
- }
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- hostname = poptGetArg(pc);
-
- if (poptPeekArg(pc)) {
- level = atoi(poptGetArg(pc));
- }
-
- /* NetShareEnum */
-
- do {
- status = NetShareEnum(hostname,
- 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:
- i0 = (struct SHARE_INFO_0 *)buffer;
- break;
- case 1:
- i1 = (struct SHARE_INFO_1 *)buffer;
- break;
- case 2:
- i2 = (struct SHARE_INFO_2 *)buffer;
- break;
- default:
- break;
- }
- for (i=0; i<entries_read; i++) {
- switch (level) {
- case 0:
- printf("#%d netname: %s\n", i, i0->shi0_netname);
- i0++;
- break;
- case 1:
- printf("#%d netname: %s\n", i, i1->shi1_netname);
- printf("#%d type: %d\n", i, i1->shi1_type);
- printf("#%d remark: %s\n", i, i1->shi1_remark);
- i1++;
- break;
- case 2:
- printf("#%d netname: %s\n", i, i2->shi2_netname);
- printf("#%d type: %d\n", i, i2->shi2_type);
- printf("#%d remark: %s\n", i, i2->shi2_remark);
- printf("#%d permissions: %d\n", i, i2->shi2_permissions);
- printf("#%d max users: %d\n", i, i2->shi2_max_uses);
- printf("#%d current users: %d\n", i, i2->shi2_current_uses);
- printf("#%d path: %s\n", i, i2->shi2_path);
- printf("#%d password: %s\n", i, i2->shi2_passwd);
- i2++;
- break;
- default:
- break;
- }
- }
- NetApiBufferFree(buffer);
- }
- } while (status == ERROR_MORE_DATA);
-
- if (status != 0) {
- printf("NetShareEnum failed with: %s\n",
- libnetapi_get_error_string(ctx, status));
- }
-
- out:
- libnetapi_free(ctx);
- poptFreeContext(pc);
-
- return status;
-}
diff --git a/source/lib/netapi/examples/share/share_getinfo.c b/source/lib/netapi/examples/share/share_getinfo.c
deleted file mode 100644
index 479da5cc4a..0000000000
--- a/source/lib/netapi/examples/share/share_getinfo.c
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- * Unix SMB/CIFS implementation.
- * NetShareGetInfo query
- * Copyright (C) Guenther Deschner 2008
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <sys/types.h>
-#include <inttypes.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <netapi.h>
-
-#include "common.h"
-
-int main(int argc, const char **argv)
-{
- NET_API_STATUS status;
- struct libnetapi_ctx *ctx = NULL;
- const char *hostname = NULL;
- const char *sharename = NULL;
- uint32_t level = 2;
- uint8_t *buffer = NULL;
-
- struct SHARE_INFO_0 *i0 = NULL;
- struct SHARE_INFO_1 *i1 = NULL;
- struct SHARE_INFO_2 *i2 = NULL;
- struct SHARE_INFO_501 *i501 = NULL;
- struct SHARE_INFO_1005 *i1005 = NULL;
-
- poptContext pc;
- int opt;
-
- struct poptOption long_options[] = {
- POPT_AUTOHELP
- POPT_COMMON_LIBNETAPI_EXAMPLES
- POPT_TABLEEND
- };
-
- status = libnetapi_init(&ctx);
- if (status != 0) {
- return status;
- }
-
- pc = poptGetContext("share_getinfo", argc, argv, long_options, 0);
-
- poptSetOtherOptionHelp(pc, "hostname sharename level");
- while((opt = poptGetNextOpt(pc)) != -1) {
- }
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- hostname = poptGetArg(pc);
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- sharename = poptGetArg(pc);
-
- if (poptPeekArg(pc)) {
- level = atoi(poptGetArg(pc));
- }
-
- /* NetShareGetInfo */
-
- status = NetShareGetInfo(hostname,
- sharename,
- level,
- &buffer);
- if (status != 0) {
- printf("NetShareGetInfo failed with: %s\n",
- libnetapi_get_error_string(ctx, status));
- goto out;
- }
-
- switch (level) {
- case 0:
- i0 = (struct SHARE_INFO_0 *)buffer;
- break;
- case 1:
- i1 = (struct SHARE_INFO_1 *)buffer;
- break;
- case 2:
- i2 = (struct SHARE_INFO_2 *)buffer;
- break;
- case 501:
- i501 = (struct SHARE_INFO_501 *)buffer;
- break;
- case 1005:
- i1005 = (struct SHARE_INFO_1005 *)buffer;
- break;
-
- default:
- break;
- }
-
- switch (level) {
- case 0:
- printf("netname: %s\n", i0->shi0_netname);
- break;
- case 1:
- printf("netname: %s\n", i1->shi1_netname);
- printf("type: %d\n", i1->shi1_type);
- printf("remark: %s\n", i1->shi1_remark);
- break;
- case 2:
- printf("netname: %s\n", i2->shi2_netname);
- printf("type: %d\n", i2->shi2_type);
- printf("remark: %s\n", i2->shi2_remark);
- printf("permissions: %d\n", i2->shi2_permissions);
- printf("max users: %d\n", i2->shi2_max_uses);
- printf("current users: %d\n", i2->shi2_current_uses);
- printf("path: %s\n", i2->shi2_path);
- printf("password: %s\n", i2->shi2_passwd);
- break;
- case 501:
- printf("netname: %s\n", i501->shi501_netname);
- printf("type: %d\n", i501->shi501_type);
- printf("remark: %s\n", i501->shi501_remark);
- printf("flags: %d\n", i501->shi501_flags);
- break;
- case 1005:
- printf("flags: %d\n", i1005->shi1005_flags);
- break;
- default:
- break;
- }
- NetApiBufferFree(buffer);
-
- out:
- libnetapi_free(ctx);
- poptFreeContext(pc);
-
- return status;
-}
diff --git a/source/lib/netapi/examples/share/share_setinfo.c b/source/lib/netapi/examples/share/share_setinfo.c
deleted file mode 100644
index f4748f4122..0000000000
--- a/source/lib/netapi/examples/share/share_setinfo.c
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Unix SMB/CIFS implementation.
- * NetShareSetInfo query
- * Copyright (C) Guenther Deschner 2008
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <sys/types.h>
-#include <inttypes.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <netapi.h>
-
-#include "common.h"
-
-int main(int argc, const char **argv)
-{
- NET_API_STATUS status;
- struct libnetapi_ctx *ctx = NULL;
- const char *hostname = NULL;
- const char *sharename = NULL;
- const char *comment = "NetApi generated Share comment";
- uint32_t level = 1004;
- uint8_t *buffer = NULL;
- uint32_t parm_err = 0;
-
- struct SHARE_INFO_1004 i1004;
-
- poptContext pc;
- int opt;
-
- struct poptOption long_options[] = {
- POPT_AUTOHELP
- POPT_COMMON_LIBNETAPI_EXAMPLES
- POPT_TABLEEND
- };
-
- status = libnetapi_init(&ctx);
- if (status != 0) {
- return status;
- }
-
- pc = poptGetContext("share_setinfo", argc, argv, long_options, 0);
-
- poptSetOtherOptionHelp(pc, "hostname sharename comment");
- while((opt = poptGetNextOpt(pc)) != -1) {
- }
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- hostname = poptGetArg(pc);
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- sharename = poptGetArg(pc);
-
- if (poptPeekArg(pc)) {
- comment = poptGetArg(pc);
- }
-
- /* NetShareSetInfo */
- switch (level) {
- case 1004:
- i1004.shi1004_remark = comment;
- buffer = (uint8_t *)&i1004;
- break;
- default:
- break;
- }
-
- status = NetShareSetInfo(hostname,
- sharename,
- level,
- buffer,
- &parm_err);
- if (status != 0) {
- printf("NetShareSetInfo failed with: %s\n",
- libnetapi_get_error_string(ctx, status));
- goto out;
- }
-
- out:
- libnetapi_free(ctx);
- poptFreeContext(pc);
-
- return status;
-}
diff --git a/source/lib/netapi/examples/user/user_chgpwd.c b/source/lib/netapi/examples/user/user_chgpwd.c
deleted file mode 100644
index 8b37ec2a99..0000000000
--- a/source/lib/netapi/examples/user/user_chgpwd.c
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Unix SMB/CIFS implementation.
- * NetUserChangePassword query
- * Copyright (C) Guenther Deschner 2008
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <sys/types.h>
-#include <inttypes.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <netapi.h>
-
-#include "common.h"
-
-int main(int argc, const char **argv)
-{
- NET_API_STATUS status;
- struct libnetapi_ctx *ctx = NULL;
- const char *hostname = NULL;
- const char *username = NULL;
- const char *old_password = NULL;
- const char *new_password = NULL;
-
- poptContext pc;
- int opt;
-
- struct poptOption long_options[] = {
- POPT_AUTOHELP
- POPT_COMMON_LIBNETAPI_EXAMPLES
- POPT_TABLEEND
- };
-
- status = libnetapi_init(&ctx);
- if (status != 0) {
- return status;
- }
-
- pc = poptGetContext("user_chgpwd", argc, argv, long_options, 0);
-
- poptSetOtherOptionHelp(pc, "hostname username old_password new_password");
- while((opt = poptGetNextOpt(pc)) != -1) {
- }
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- hostname = poptGetArg(pc);
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- username = poptGetArg(pc);
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- old_password = poptGetArg(pc);
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- new_password = poptGetArg(pc);
-
- /* NetUserChangePassword */
-
- status = NetUserChangePassword(hostname,
- username,
- old_password,
- new_password);
- if (status != 0) {
- printf("NetUserChangePassword failed with: %s\n",
- libnetapi_get_error_string(ctx, status));
- }
-
- out:
- libnetapi_free(ctx);
- poptFreeContext(pc);
-
- return status;
-}
diff --git a/source/lib/netapi/examples/user/user_dispinfo.c b/source/lib/netapi/examples/user/user_dispinfo.c
index 23024fe9fe..9f862505aa 100644
--- a/source/lib/netapi/examples/user/user_dispinfo.c
+++ b/source/lib/netapi/examples/user/user_dispinfo.c
@@ -78,13 +78,11 @@ int main(int argc, const char **argv)
if (status == 0 || status == ERROR_MORE_DATA) {
user = (struct NET_DISPLAY_USER *)buffer;
for (i=0; i<entries_read; i++) {
- printf("user %d: %s\n", i + idx,
- user->usri1_name);
+ printf("user %d: %s\n", i, user->usri1_name);
user++;
}
NetApiBufferFree(buffer);
}
- idx += entries_read;
} while (status == ERROR_MORE_DATA);
if (status != 0) {
diff --git a/source/lib/netapi/examples/user/user_enum.c b/source/lib/netapi/examples/user/user_enum.c
index cf77bf2d54..e1f6bda10b 100644
--- a/source/lib/netapi/examples/user/user_enum.c
+++ b/source/lib/netapi/examples/user/user_enum.c
@@ -32,18 +32,13 @@ int main(int argc, const char **argv)
NET_API_STATUS status;
struct libnetapi_ctx *ctx = NULL;
const char *hostname = NULL;
- uint32_t level = 0;
uint8_t *buffer = NULL;
uint32_t entries_read = 0;
uint32_t total_entries = 0;
uint32_t resume_handle = 0;
- char *sid_str = NULL;
int i;
- struct USER_INFO_0 *info0 = NULL;
- struct USER_INFO_10 *info10 = NULL;
- struct USER_INFO_20 *info20 = NULL;
- struct USER_INFO_23 *info23 = NULL;
+ struct USER_INFO_0 *info0;
poptContext pc;
int opt;
@@ -61,7 +56,7 @@ int main(int argc, const char **argv)
pc = poptGetContext("user_enum", argc, argv, long_options, 0);
- poptSetOtherOptionHelp(pc, "hostname level");
+ poptSetOtherOptionHelp(pc, "hostname");
while((opt = poptGetNextOpt(pc)) != -1) {
}
@@ -71,74 +66,22 @@ int main(int argc, const char **argv)
}
hostname = poptGetArg(pc);
- if (poptPeekArg(pc)) {
- level = atoi(poptGetArg(pc));
- }
-
/* NetUserEnum */
do {
status = NetUserEnum(hostname,
- level,
- FILTER_NORMAL_ACCOUNT,
+ 0,
+ 0,
&buffer,
(uint32_t)-1,
&entries_read,
&total_entries,
&resume_handle);
if (status == 0 || status == ERROR_MORE_DATA) {
-
- switch (level) {
- case 0:
- info0 = (struct USER_INFO_0 *)buffer;
- break;
- case 10:
- info10 = (struct USER_INFO_10 *)buffer;
- break;
- case 20:
- info20 = (struct USER_INFO_20 *)buffer;
- break;
- case 23:
- info23 = (struct USER_INFO_23 *)buffer;
- break;
- default:
- break;
- }
-
+ info0 = (struct USER_INFO_0 *)buffer;
for (i=0; i<entries_read; i++) {
- switch (level) {
- case 0:
- printf("#%d user: %s\n", i, info0->usri0_name);
- info0++;
- break;
- case 10:
- printf("#%d user: %s\n", i, info10->usri10_name);
- printf("#%d comment: %s\n", i, info10->usri10_comment);
- printf("#%d usr_comment: %s\n", i, info10->usri10_usr_comment);
- printf("#%d full_name: %s\n", i, info10->usri10_full_name);
- info10++;
- break;
- case 20:
- printf("#%d user: %s\n", i, info20->usri20_name);
- printf("#%d comment: %s\n", i, info20->usri20_comment);
- printf("#%d flags: 0x%08x\n", i, info20->usri20_flags);
- printf("#%d rid: %d\n", i, info20->usri20_user_id);
- info20++;
- break;
- case 23:
- printf("#%d user: %s\n", i, info23->usri23_name);
- printf("#%d comment: %s\n", i, info23->usri23_comment);
- printf("#%d flags: 0x%08x\n", i, info23->usri23_flags);
- if (ConvertSidToStringSid(info23->usri23_user_sid,
- &sid_str)) {
- printf("#%d sid: %s\n", i, sid_str);
- free(sid_str);
- }
- info23++;
- break;
- default:
- break;
- }
+ printf("user %d: %s\n", i, info0->usri0_name);
+ info0++;
}
NetApiBufferFree(buffer);
}
diff --git a/source/lib/netapi/examples/user/user_getgroups.c b/source/lib/netapi/examples/user/user_getgroups.c
deleted file mode 100644
index 939415e0eb..0000000000
--- a/source/lib/netapi/examples/user/user_getgroups.c
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
- * Unix SMB/CIFS implementation.
- * NetUserGetGroups query
- * Copyright (C) Guenther Deschner 2008
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <sys/types.h>
-#include <inttypes.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <netapi.h>
-
-#include "common.h"
-
-int main(int argc, const char **argv)
-{
- NET_API_STATUS status;
- struct libnetapi_ctx *ctx = NULL;
- const char *hostname = NULL;
- const char *username = NULL;
- uint32_t level = 0;
- uint8_t *buffer = NULL;
- uint32_t entries_read = 0;
- uint32_t total_entries = 0;
- int i;
-
- struct GROUP_USERS_INFO_0 *info0 = NULL;
- struct GROUP_USERS_INFO_1 *info1 = NULL;
-
- poptContext pc;
- int opt;
-
- struct poptOption long_options[] = {
- POPT_AUTOHELP
- POPT_COMMON_LIBNETAPI_EXAMPLES
- POPT_TABLEEND
- };
-
- status = libnetapi_init(&ctx);
- if (status != 0) {
- return status;
- }
-
- pc = poptGetContext("user_getgroups", argc, argv, long_options, 0);
-
- poptSetOtherOptionHelp(pc, "hostname username level");
- while((opt = poptGetNextOpt(pc)) != -1) {
- }
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- hostname = poptGetArg(pc);
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- username = poptGetArg(pc);
-
- if (poptPeekArg(pc)) {
- level = atoi(poptGetArg(pc));
- }
-
- /* NetUserGetGroups */
-
- do {
- status = NetUserGetGroups(hostname,
- username,
- level,
- &buffer,
- (uint32_t)-1,
- &entries_read,
- &total_entries);
- if (status == 0 || status == ERROR_MORE_DATA) {
-
- switch (level) {
- case 0:
- info0 = (struct GROUP_USERS_INFO_0 *)buffer;
- break;
- case 1:
- info1 = (struct GROUP_USERS_INFO_1 *)buffer;
- break;
- default:
- break;
- }
-
- for (i=0; i<entries_read; i++) {
- switch (level) {
- case 0:
- printf("#%d group: %s\n", i, info0->grui0_name);
- info0++;
- break;
- case 1:
- printf("#%d group: %s\n", i, info1->grui1_name);
- printf("#%d attributes: %d\n", i, info1->grui1_attributes);
- info1++;
- break;
- default:
- break;
- }
- }
- NetApiBufferFree(buffer);
- }
- } while (status == ERROR_MORE_DATA);
-
- if (status != 0) {
- printf("NetUserGetGroups failed with: %s\n",
- libnetapi_get_error_string(ctx, status));
- }
-
- out:
- libnetapi_free(ctx);
- poptFreeContext(pc);
-
- return status;
-}
diff --git a/source/lib/netapi/examples/user/user_getinfo.c b/source/lib/netapi/examples/user/user_getinfo.c
deleted file mode 100644
index 9e95260b5a..0000000000
--- a/source/lib/netapi/examples/user/user_getinfo.c
+++ /dev/null
@@ -1,293 +0,0 @@
-/*
- * Unix SMB/CIFS implementation.
- * NetUserGetInfo query
- * Copyright (C) Guenther Deschner 2008
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <sys/types.h>
-#include <inttypes.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <netapi.h>
-
-#include "common.h"
-
-int main(int argc, const char **argv)
-{
- NET_API_STATUS status;
- struct libnetapi_ctx *ctx = NULL;
- const char *hostname = NULL;
- const char *username = NULL;
- uint8_t *buffer = NULL;
- uint32_t level = 0;
- char *sid_str = NULL;
- int i;
-
- struct USER_INFO_0 *u0;
- struct USER_INFO_1 *u1;
- struct USER_INFO_2 *u2;
- struct USER_INFO_3 *u3;
- struct USER_INFO_4 *u4;
- struct USER_INFO_10 *u10;
- struct USER_INFO_11 *u11;
- struct USER_INFO_20 *u20;
- struct USER_INFO_23 *u23;
-
- poptContext pc;
- int opt;
-
- struct poptOption long_options[] = {
- POPT_AUTOHELP
- POPT_COMMON_LIBNETAPI_EXAMPLES
- POPT_TABLEEND
- };
-
- status = libnetapi_init(&ctx);
- if (status != 0) {
- return status;
- }
-
- pc = poptGetContext("user_getinfo", argc, argv, long_options, 0);
-
- poptSetOtherOptionHelp(pc, "hostname username level");
- while((opt = poptGetNextOpt(pc)) != -1) {
- }
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- hostname = poptGetArg(pc);
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- username = poptGetArg(pc);
-
- if (poptPeekArg(pc)) {
- level = atoi(poptGetArg(pc));
- }
-
- /* NetUserGetInfo */
-
- status = NetUserGetInfo(hostname,
- username,
- level,
- &buffer);
- if (status != 0) {
- printf("NetUserGetInfo failed with: %s\n",
- libnetapi_get_error_string(ctx, status));
- goto out;
- }
-
- switch (level) {
- case 0:
- u0 = (struct USER_INFO_0 *)buffer;
- printf("name: %s\n", u0->usri0_name);
- break;
- case 1:
- u1 = (struct USER_INFO_1 *)buffer;
- printf("name: %s\n", u1->usri1_name);
- printf("password: %s\n", u1->usri1_password);
- printf("password_age: %d\n", u1->usri1_password_age);
- printf("priv: %d\n", u1->usri1_priv);
- printf("homedir: %s\n", u1->usri1_home_dir);
- printf("comment: %s\n", u1->usri1_comment);
- printf("flags: 0x%08x\n", u1->usri1_flags);
- printf("script: %s\n", u1->usri1_script_path);
- break;
- case 2:
- u2 = (struct USER_INFO_2 *)buffer;
- printf("name: %s\n", u2->usri2_name);
- printf("password: %s\n", u2->usri2_password);
- printf("password_age: %d\n", u2->usri2_password_age);
- printf("priv: %d\n", u2->usri2_priv);
- printf("homedir: %s\n", u2->usri2_home_dir);
- printf("comment: %s\n", u2->usri2_comment);
- printf("flags: 0x%08x\n", u2->usri2_flags);
- printf("script: %s\n", u2->usri2_script_path);
- printf("auth flags: 0x%08x\n", u2->usri2_auth_flags);
- printf("full name: %s\n", u2->usri2_full_name);
- printf("user comment: %s\n", u2->usri2_usr_comment);
- printf("user parameters: %s\n", u2->usri2_parms);
- printf("workstations: %s\n", u2->usri2_workstations);
- printf("last logon (seconds since jan. 1, 1970 GMT): %d\n",
- u2->usri2_last_logon);
- printf("last logoff (seconds since jan. 1, 1970 GMT): %d\n",
- u2->usri2_last_logoff);
- printf("account expires (seconds since jan. 1, 1970 GMT): %d\n",
- u2->usri2_acct_expires);
- printf("max storage: %d\n", u2->usri2_max_storage);
- printf("units per week: %d\n", u2->usri2_units_per_week);
- printf("logon hours:");
- for (i=0; i<21; i++) {
- printf(" %x", (uint8_t)u2->usri2_logon_hours[i]);
- }
- printf("\n");
- printf("bad password count: %d\n", u2->usri2_bad_pw_count);
- printf("logon count: %d\n", u2->usri2_num_logons);
- printf("logon server: %s\n", u2->usri2_logon_server);
- printf("country code: %d\n", u2->usri2_country_code);
- printf("code page: %d\n", u2->usri2_code_page);
- break;
- case 3:
- u3 = (struct USER_INFO_3 *)buffer;
- printf("name: %s\n", u3->usri3_name);
- printf("password_age: %d\n", u3->usri3_password_age);
- printf("priv: %d\n", u3->usri3_priv);
- printf("homedir: %s\n", u3->usri3_home_dir);
- printf("comment: %s\n", u3->usri3_comment);
- printf("flags: 0x%08x\n", u3->usri3_flags);
- printf("script: %s\n", u3->usri3_script_path);
- printf("auth flags: 0x%08x\n", u3->usri3_auth_flags);
- printf("full name: %s\n", u3->usri3_full_name);
- printf("user comment: %s\n", u3->usri3_usr_comment);
- printf("user parameters: %s\n", u3->usri3_parms);
- printf("workstations: %s\n", u3->usri3_workstations);
- printf("last logon (seconds since jan. 1, 1970 GMT): %d\n",
- u3->usri3_last_logon);
- printf("last logoff (seconds since jan. 1, 1970 GMT): %d\n",
- u3->usri3_last_logoff);
- printf("account expires (seconds since jan. 1, 1970 GMT): %d\n",
- u3->usri3_acct_expires);
- printf("max storage: %d\n", u3->usri3_max_storage);
- printf("units per week: %d\n", u3->usri3_units_per_week);
- printf("logon hours:");
- for (i=0; i<21; i++) {
- printf(" %x", (uint8_t)u3->usri3_logon_hours[i]);
- }
- printf("\n");
- printf("bad password count: %d\n", u3->usri3_bad_pw_count);
- printf("logon count: %d\n", u3->usri3_num_logons);
- printf("logon server: %s\n", u3->usri3_logon_server);
- printf("country code: %d\n", u3->usri3_country_code);
- printf("code page: %d\n", u3->usri3_code_page);
- printf("user id: %d\n", u3->usri3_user_id);
- printf("primary group id: %d\n", u3->usri3_primary_group_id);
- printf("profile: %s\n", u3->usri3_profile);
- printf("home dir drive: %s\n", u3->usri3_home_dir_drive);
- printf("password expired: %d\n", u3->usri3_password_expired);
- break;
- case 4:
- u4 = (struct USER_INFO_4 *)buffer;
- printf("name: %s\n", u4->usri4_name);
- printf("password: %s\n", u4->usri4_password);
- printf("password_age: %d\n", u4->usri4_password_age);
- printf("priv: %d\n", u4->usri4_priv);
- printf("homedir: %s\n", u4->usri4_home_dir);
- printf("comment: %s\n", u4->usri4_comment);
- printf("flags: 0x%08x\n", u4->usri4_flags);
- printf("script: %s\n", u4->usri4_script_path);
- printf("auth flags: 0x%08x\n", u4->usri4_auth_flags);
- printf("full name: %s\n", u4->usri4_full_name);
- printf("user comment: %s\n", u4->usri4_usr_comment);
- printf("user parameters: %s\n", u4->usri4_parms);
- printf("workstations: %s\n", u4->usri4_workstations);
- printf("last logon (seconds since jan. 1, 1970 GMT): %d\n",
- u4->usri4_last_logon);
- printf("last logoff (seconds since jan. 1, 1970 GMT): %d\n",
- u4->usri4_last_logoff);
- printf("account expires (seconds since jan. 1, 1970 GMT): %d\n",
- u4->usri4_acct_expires);
- printf("max storage: %d\n", u4->usri4_max_storage);
- printf("units per week: %d\n", u4->usri4_units_per_week);
- printf("logon hours:");
- for (i=0; i<21; i++) {
- printf(" %x", (uint8_t)u4->usri4_logon_hours[i]);
- }
- printf("\n");
- printf("bad password count: %d\n", u4->usri4_bad_pw_count);
- printf("logon count: %d\n", u4->usri4_num_logons);
- printf("logon server: %s\n", u4->usri4_logon_server);
- printf("country code: %d\n", u4->usri4_country_code);
- printf("code page: %d\n", u4->usri4_code_page);
- if (ConvertSidToStringSid(u4->usri4_user_sid,
- &sid_str)) {
- printf("user_sid: %s\n", sid_str);
- free(sid_str);
- }
- printf("primary group id: %d\n", u4->usri4_primary_group_id);
- printf("profile: %s\n", u4->usri4_profile);
- printf("home dir drive: %s\n", u4->usri4_home_dir_drive);
- printf("password expired: %d\n", u4->usri4_password_expired);
- break;
- case 10:
- u10 = (struct USER_INFO_10 *)buffer;
- printf("name: %s\n", u10->usri10_name);
- printf("comment: %s\n", u10->usri10_comment);
- printf("usr_comment: %s\n", u10->usri10_usr_comment);
- printf("full_name: %s\n", u10->usri10_full_name);
- break;
- case 11:
- u11 = (struct USER_INFO_11 *)buffer;
- printf("name: %s\n", u11->usri11_name);
- printf("comment: %s\n", u11->usri11_comment);
- printf("user comment: %s\n", u11->usri11_usr_comment);
- printf("full name: %s\n", u11->usri11_full_name);
- printf("priv: %d\n", u11->usri11_priv);
- printf("auth flags: 0x%08x\n", u11->usri11_auth_flags);
- printf("password_age: %d\n", u11->usri11_password_age);
- printf("homedir: %s\n", u11->usri11_home_dir);
- printf("user parameters: %s\n", u11->usri11_parms);
- printf("last logon (seconds since jan. 1, 1970 GMT): %d\n",
- u11->usri11_last_logon);
- printf("last logoff (seconds since jan. 1, 1970 GMT): %d\n",
- u11->usri11_last_logoff);
- printf("bad password count: %d\n", u11->usri11_bad_pw_count);
- printf("logon count: %d\n", u11->usri11_num_logons);
- printf("logon server: %s\n", u11->usri11_logon_server);
- printf("country code: %d\n", u11->usri11_country_code);
- printf("workstations: %s\n", u11->usri11_workstations);
- printf("max storage: %d\n", u11->usri11_max_storage);
- printf("units per week: %d\n", u11->usri11_units_per_week);
- printf("logon hours:");
- for (i=0; i<21; i++) {
- printf(" %x", (uint8_t)u11->usri11_logon_hours[i]);
- }
- printf("\n");
- printf("code page: %d\n", u11->usri11_code_page);
- break;
- case 20:
- u20 = (struct USER_INFO_20 *)buffer;
- printf("name: %s\n", u20->usri20_name);
- printf("comment: %s\n", u20->usri20_comment);
- printf("flags: 0x%08x\n", u20->usri20_flags);
- printf("rid: %d\n", u20->usri20_user_id);
- break;
- case 23:
- u23 = (struct USER_INFO_23 *)buffer;
- printf("name: %s\n", u23->usri23_name);
- printf("comment: %s\n", u23->usri23_comment);
- printf("flags: 0x%08x\n", u23->usri23_flags);
- if (ConvertSidToStringSid(u23->usri23_user_sid,
- &sid_str)) {
- printf("user_sid: %s\n", sid_str);
- free(sid_str);
- }
- break;
- default:
- break;
- }
-
- out:
- libnetapi_free(ctx);
- poptFreeContext(pc);
-
- return status;
-}
diff --git a/source/lib/netapi/examples/user/user_getlocalgroups.c b/source/lib/netapi/examples/user/user_getlocalgroups.c
deleted file mode 100644
index 133104d7c1..0000000000
--- a/source/lib/netapi/examples/user/user_getlocalgroups.c
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * Unix SMB/CIFS implementation.
- * NetUserGetLocalGroups query
- * Copyright (C) Guenther Deschner 2008
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <sys/types.h>
-#include <inttypes.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <netapi.h>
-
-#include "common.h"
-
-int main(int argc, const char **argv)
-{
- NET_API_STATUS status;
- struct libnetapi_ctx *ctx = NULL;
- const char *hostname = NULL;
- const char *username = NULL;
- uint32_t level = 0;
- uint8_t *buffer = NULL;
- uint32_t entries_read = 0;
- uint32_t total_entries = 0;
- uint32_t flags = 0;
- int i;
-
- struct LOCALGROUP_USERS_INFO_0 *info0 = NULL;
-
- poptContext pc;
- int opt;
-
- struct poptOption long_options[] = {
- POPT_AUTOHELP
- POPT_COMMON_LIBNETAPI_EXAMPLES
- POPT_TABLEEND
- };
-
- status = libnetapi_init(&ctx);
- if (status != 0) {
- return status;
- }
-
- pc = poptGetContext("user_getlocalgroups", argc, argv, long_options, 0);
-
- poptSetOtherOptionHelp(pc, "hostname username");
- while((opt = poptGetNextOpt(pc)) != -1) {
- }
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- hostname = poptGetArg(pc);
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- username = poptGetArg(pc);
-
- /* NetUserGetLocalGroups */
-
- do {
- status = NetUserGetLocalGroups(hostname,
- username,
- level,
- flags,
- &buffer,
- (uint32_t)-1,
- &entries_read,
- &total_entries);
- if (status == 0 || status == ERROR_MORE_DATA) {
-
- switch (level) {
- case 0:
- info0 = (struct LOCALGROUP_USERS_INFO_0 *)buffer;
- break;
- default:
- break;
- }
-
- for (i=0; i<entries_read; i++) {
- switch (level) {
- case 0:
- printf("#%d group: %s\n", i, info0->lgrui0_name);
- info0++;
- break;
- default:
- break;
- }
- }
- NetApiBufferFree(buffer);
- }
- } while (status == ERROR_MORE_DATA);
-
- if (status != 0) {
- printf("NetUserGetLocalGroups failed with: %s\n",
- libnetapi_get_error_string(ctx, status));
- }
-
- out:
- libnetapi_free(ctx);
- poptFreeContext(pc);
-
- return status;
-}
diff --git a/source/lib/netapi/examples/user/user_modalsget.c b/source/lib/netapi/examples/user/user_modalsget.c
deleted file mode 100644
index 4dcb41bef7..0000000000
--- a/source/lib/netapi/examples/user/user_modalsget.c
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * Unix SMB/CIFS implementation.
- * NetUserModalsGet query
- * Copyright (C) Guenther Deschner 2008
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <sys/types.h>
-#include <inttypes.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <netapi.h>
-
-#include "common.h"
-
-int main(int argc, const char **argv)
-{
- NET_API_STATUS status;
- struct libnetapi_ctx *ctx = NULL;
- const char *hostname = NULL;
- uint8_t *buffer = NULL;
- uint32_t level = 0;
- char *sid_str = NULL;
-
- struct USER_MODALS_INFO_0 *u0;
- struct USER_MODALS_INFO_1 *u1;
- struct USER_MODALS_INFO_2 *u2;
- struct USER_MODALS_INFO_3 *u3;
-
- poptContext pc;
- int opt;
-
- struct poptOption long_options[] = {
- POPT_AUTOHELP
- POPT_COMMON_LIBNETAPI_EXAMPLES
- POPT_TABLEEND
- };
-
- status = libnetapi_init(&ctx);
- if (status != 0) {
- return status;
- }
-
- pc = poptGetContext("user_modalsget", argc, argv, long_options, 0);
-
- poptSetOtherOptionHelp(pc, "hostname level");
- while((opt = poptGetNextOpt(pc)) != -1) {
- }
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- hostname = poptGetArg(pc);
-
- if (poptPeekArg(pc)) {
- level = atoi(poptGetArg(pc));
- }
-
- /* NetUserModalsGet */
-
- status = NetUserModalsGet(hostname,
- level,
- &buffer);
- if (status != 0) {
- printf("NetUserModalsGet failed with: %s\n",
- libnetapi_get_error_string(ctx, status));
- goto out;
- }
-
- switch (level) {
- case 0:
- u0 = (struct USER_MODALS_INFO_0 *)buffer;
- printf("min passwd len: %d character\n",
- u0->usrmod0_min_passwd_len);
- printf("max passwd age: %d (days)\n",
- u0->usrmod0_max_passwd_age/86400);
- printf("min passwd age: %d (days)\n",
- u0->usrmod0_min_passwd_age/86400);
- printf("force logoff: %d (seconds)\n",
- u0->usrmod0_force_logoff);
- printf("password history length: %d entries\n",
- u0->usrmod0_password_hist_len);
- break;
- case 1:
- u1 = (struct USER_MODALS_INFO_1 *)buffer;
- printf("role: %d\n", u1->usrmod1_role);
- printf("primary: %s\n", u1->usrmod1_primary);
- break;
- case 2:
- u2 = (struct USER_MODALS_INFO_2 *)buffer;
- printf("domain name: %s\n", u2->usrmod2_domain_name);
- if (ConvertSidToStringSid(u2->usrmod2_domain_id,
- &sid_str)) {
- printf("domain sid: %s\n", sid_str);
- free(sid_str);
- }
- break;
- case 3:
- u3 = (struct USER_MODALS_INFO_3 *)buffer;
- printf("lockout duration: %d (seconds)\n",
- u3->usrmod3_lockout_duration);
- printf("lockout observation window: %d (seconds)\n",
- u3->usrmod3_lockout_observation_window);
- printf("lockout threshold: %d entries\n",
- u3->usrmod3_lockout_threshold);
- break;
- default:
- break;
- }
-
- out:
- libnetapi_free(ctx);
- poptFreeContext(pc);
-
- return status;
-}
diff --git a/source/lib/netapi/examples/user/user_modalsset.c b/source/lib/netapi/examples/user/user_modalsset.c
deleted file mode 100644
index 57e1ef70ea..0000000000
--- a/source/lib/netapi/examples/user/user_modalsset.c
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * Unix SMB/CIFS implementation.
- * NetUserModalsSet query
- * Copyright (C) Guenther Deschner 2008
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <sys/types.h>
-#include <inttypes.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <netapi.h>
-
-#include "common.h"
-
-int main(int argc, const char **argv)
-{
- NET_API_STATUS status;
- struct libnetapi_ctx *ctx = NULL;
- const char *hostname = NULL;
- uint8_t *buffer = NULL;
- uint32_t level = 0;
- uint32_t value = 0;
- uint32_t parm_err = 0;
-
- struct USER_MODALS_INFO_0 u0;
- struct USER_MODALS_INFO_1 u1;
- struct USER_MODALS_INFO_2 u2;
- struct USER_MODALS_INFO_3 u3;
- struct USER_MODALS_INFO_1001 u1001;
- struct USER_MODALS_INFO_1002 u1002;
- struct USER_MODALS_INFO_1003 u1003;
- struct USER_MODALS_INFO_1004 u1004;
- struct USER_MODALS_INFO_1005 u1005;
- struct USER_MODALS_INFO_1006 u1006;
- struct USER_MODALS_INFO_1007 u1007;
-
- poptContext pc;
- int opt;
-
- struct poptOption long_options[] = {
- POPT_AUTOHELP
- POPT_COMMON_LIBNETAPI_EXAMPLES
- POPT_TABLEEND
- };
-
- status = libnetapi_init(&ctx);
- if (status != 0) {
- return status;
- }
-
- pc = poptGetContext("user_modalsset", argc, argv, long_options, 0);
-
- poptSetOtherOptionHelp(pc, "hostname level value");
- while((opt = poptGetNextOpt(pc)) != -1) {
- }
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- hostname = poptGetArg(pc);
-
- if (poptPeekArg(pc)) {
- level = atoi(poptGetArg(pc));
- }
-
- if (poptPeekArg(pc)) {
- value = atoi(poptGetArg(pc));
- }
-
- switch (level) {
- case 0:
- u0.usrmod0_min_passwd_len = 0;
- u0.usrmod0_max_passwd_age = (86400 * 30); /* once a month */
- u0.usrmod0_min_passwd_age = 0;
- u0.usrmod0_force_logoff = TIMEQ_FOREVER;
- u0.usrmod0_password_hist_len = 0;
- buffer = (uint8_t *)&u0;
- break;
- case 1:
- case 2:
- case 3:
- case 1001:
- u1001.usrmod1001_min_passwd_len = 0;
- buffer = (uint8_t *)&u1001;
- break;
- case 1002:
- u1002.usrmod1002_max_passwd_age = 0;
- buffer = (uint8_t *)&u1002;
- break;
- case 1003:
- u1003.usrmod1003_min_passwd_age = (86400 * 30); /* once a month */
- buffer = (uint8_t *)&u1003;
- break;
- case 1004:
- u1004.usrmod1004_force_logoff = TIMEQ_FOREVER;
- buffer = (uint8_t *)&u1004;
- break;
- case 1005:
- u1005.usrmod1005_password_hist_len = 0;
- buffer = (uint8_t *)&u1005;
- break;
- case 1006:
- case 1007:
- default:
- break;
- }
-
- /* NetUserModalsSet */
-
- status = NetUserModalsSet(hostname,
- level,
- buffer,
- &parm_err);
- if (status != 0) {
- printf("NetUserModalsSet failed with: %s\n",
- libnetapi_get_error_string(ctx, status));
- goto out;
- }
-
- out:
- libnetapi_free(ctx);
- poptFreeContext(pc);
-
- return status;
-}
diff --git a/source/lib/netapi/examples/user/user_setgroups.c b/source/lib/netapi/examples/user/user_setgroups.c
deleted file mode 100644
index de3ff22ec8..0000000000
--- a/source/lib/netapi/examples/user/user_setgroups.c
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * Unix SMB/CIFS implementation.
- * NetUserSetGroups query
- * Copyright (C) Guenther Deschner 2008
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <sys/types.h>
-#include <inttypes.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <netapi.h>
-
-#include "common.h"
-
-int main(int argc, const char **argv)
-{
- NET_API_STATUS status;
- struct libnetapi_ctx *ctx = NULL;
- const char *hostname = NULL;
- const char *username = NULL;
- uint32_t level = 0;
- uint8_t *buffer = NULL;
- uint32_t num_entries = 0;
- const char **names = NULL;
- int i = 0;
- size_t buf_size = 0;
-
- struct GROUP_USERS_INFO_0 *g0 = NULL;
- struct GROUP_USERS_INFO_1 *g1 = NULL;
-
- poptContext pc;
- int opt;
-
- struct poptOption long_options[] = {
- POPT_AUTOHELP
- POPT_COMMON_LIBNETAPI_EXAMPLES
- POPT_TABLEEND
- };
-
- status = libnetapi_init(&ctx);
- if (status != 0) {
- return status;
- }
-
- pc = poptGetContext("user_setgroups", argc, argv, long_options, 0);
-
- poptSetOtherOptionHelp(pc, "hostname username group1 group2 ...");
- while((opt = poptGetNextOpt(pc)) != -1) {
- }
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- hostname = poptGetArg(pc);
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- username = poptGetArg(pc);
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
-
- names = poptGetArgs(pc);
- for (i=0; names[i] != NULL; i++) {
- num_entries++;
- }
-
- switch (level) {
- case 0:
- buf_size = sizeof(struct GROUP_USERS_INFO_0) * num_entries;
-
- status = NetApiBufferAllocate(buf_size, (void **)&g0);
- if (status) {
- printf("NetApiBufferAllocate failed with: %s\n",
- libnetapi_get_error_string(ctx, status));
- goto out;
- }
-
- for (i=0; i<num_entries; i++) {
- g0[i].grui0_name = names[i];
- }
-
- buffer = (uint8_t *)g0;
- break;
- case 1:
- buf_size = sizeof(struct GROUP_USERS_INFO_1) * num_entries;
-
- status = NetApiBufferAllocate(buf_size, (void **)&g1);
- if (status) {
- printf("NetApiBufferAllocate failed with: %s\n",
- libnetapi_get_error_string(ctx, status));
- goto out;
- }
-
- for (i=0; i<num_entries; i++) {
- g1[i].grui1_name = names[i];
- g1[i].grui1_attributes = 0; /* ? */
- }
-
- buffer = (uint8_t *)g1;
- break;
- default:
- break;
- }
-
- /* NetUserSetGroups */
-
- status = NetUserSetGroups(hostname,
- username,
- level,
- buffer,
- num_entries);
- if (status != 0) {
- printf("NetUserSetGroups failed with: %s\n",
- libnetapi_get_error_string(ctx, status));
- }
-
- out:
- NetApiBufferFree(buffer);
- libnetapi_free(ctx);
- poptFreeContext(pc);
-
- return status;
-}
diff --git a/source/lib/netapi/examples/user/user_setinfo.c b/source/lib/netapi/examples/user/user_setinfo.c
deleted file mode 100644
index 4f02ae7781..0000000000
--- a/source/lib/netapi/examples/user/user_setinfo.c
+++ /dev/null
@@ -1,207 +0,0 @@
-/*
- * Unix SMB/CIFS implementation.
- * NetUserSetInfo query
- * Copyright (C) Guenther Deschner 2008
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <sys/types.h>
-#include <inttypes.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <netapi.h>
-
-#include "common.h"
-
-int main(int argc, const char **argv)
-{
- NET_API_STATUS status;
- struct libnetapi_ctx *ctx = NULL;
- const char *hostname = NULL;
- const char *username = NULL;
- uint32_t level = 0;
- uint32_t parm_err = 0;
- uint8_t *buffer = NULL;
- const char *val = NULL;
-
- struct USER_INFO_0 u0;
- struct USER_INFO_1 u1;
- struct USER_INFO_2 u2;
- struct USER_INFO_3 u3;
- struct USER_INFO_4 u4;
- struct USER_INFO_21 u21;
- struct USER_INFO_22 u22;
- struct USER_INFO_1003 u1003;
- struct USER_INFO_1005 u1005;
- struct USER_INFO_1006 u1006;
- struct USER_INFO_1007 u1007;
- struct USER_INFO_1008 u1008;
- struct USER_INFO_1009 u1009;
- struct USER_INFO_1010 u1010;
- struct USER_INFO_1011 u1011;
- struct USER_INFO_1012 u1012;
- struct USER_INFO_1014 u1014;
- struct USER_INFO_1017 u1017;
- struct USER_INFO_1020 u1020;
- struct USER_INFO_1024 u1024;
- struct USER_INFO_1051 u1051;
- struct USER_INFO_1052 u1052;
- struct USER_INFO_1053 u1053;
-
- poptContext pc;
- int opt;
-
- struct poptOption long_options[] = {
- POPT_AUTOHELP
- POPT_COMMON_LIBNETAPI_EXAMPLES
- POPT_TABLEEND
- };
-
- status = libnetapi_init(&ctx);
- if (status != 0) {
- return status;
- }
-
- pc = poptGetContext("user_setinfo", argc, argv, long_options, 0);
-
- poptSetOtherOptionHelp(pc, "hostname username level");
- while((opt = poptGetNextOpt(pc)) != -1) {
- }
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- hostname = poptGetArg(pc);
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- username = poptGetArg(pc);
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- level = atoi(poptGetArg(pc));
-
- if (!poptPeekArg(pc)) {
- poptPrintHelp(pc, stderr, 0);
- goto out;
- }
- val = poptGetArg(pc);
-
- /* NetUserSetInfo */
-
- switch (level) {
- case 0:
- u0.usri0_name = val;
- buffer = (uint8_t *)&u0;
- break;
- case 1:
- case 2:
- case 3:
- case 4:
- break;
- case 21:
- break;
- case 22:
- break;
- case 1003:
- u1003.usri1003_password = val;
- buffer = (uint8_t *)&u1003;
- break;
- case 1005:
- u1005.usri1005_priv = atoi(val);
- buffer = (uint8_t *)&u1005;
- break;
- case 1006:
- u1006.usri1006_home_dir = val;
- buffer = (uint8_t *)&u1006;
- break;
- case 1007:
- u1007.usri1007_comment = val;
- buffer = (uint8_t *)&u1007;
- break;
- case 1008:
- u1008.usri1008_flags = atoi(val);
- buffer = (uint8_t *)&u1008;
- break;
- case 1009:
- u1009.usri1009_script_path = val;
- buffer = (uint8_t *)&u1009;
- break;
- case 1010:
- u1010.usri1010_auth_flags = atoi(val);
- buffer = (uint8_t *)&u1010;
- break;
- case 1011:
- u1011.usri1011_full_name = val;
- buffer = (uint8_t *)&u1011;
- break;
- case 1012:
- u1012.usri1012_usr_comment = val;
- buffer = (uint8_t *)&u1012;
- break;
- case 1014:
- u1014.usri1014_workstations = val;
- buffer = (uint8_t *)&u1014;
- break;
- case 1017:
- u1017.usri1017_acct_expires = atoi(val);
- buffer = (uint8_t *)&u1017;
- break;
- case 1020:
- break;
- case 1024:
- u1024.usri1024_country_code = atoi(val);
- buffer = (uint8_t *)&u1024;
- break;
- case 1051:
- u1051.usri1051_primary_group_id = atoi(val);
- buffer = (uint8_t *)&u1051;
- break;
- case 1052:
- u1052.usri1052_profile = val;
- buffer = (uint8_t *)&u1052;
- break;
- case 1053:
- u1053.usri1053_home_dir_drive = val;
- buffer = (uint8_t *)&u1053;
- break;
- default:
- break;
- }
-
- status = NetUserSetInfo(hostname,
- username,
- level,
- buffer,
- &parm_err);
- if (status != 0) {
- printf("NetUserSetInfo failed with: %s\n",
- libnetapi_get_error_string(ctx, status));
- goto out;
- }
-
- out:
- libnetapi_free(ctx);
- poptFreeContext(pc);
-
- return status;
-}