diff options
Diffstat (limited to 'source/lib/netapi/examples')
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; -} |