summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--examples/libsmbclient/Makefile6
-rw-r--r--examples/libsmbclient/testbrowse.c91
2 files changed, 96 insertions, 1 deletions
diff --git a/examples/libsmbclient/Makefile b/examples/libsmbclient/Makefile
index e7c82a3aee..fcd5ef2900 100644
--- a/examples/libsmbclient/Makefile
+++ b/examples/libsmbclient/Makefile
@@ -10,7 +10,7 @@ CFLAGS = -I$(SAMBA_INCL) $(EXTLIB_INCL)
LDFLAGS = -L/usr/lib
-all: testsmbc tree testacl
+all: testsmbc tree testacl testbrowse
testsmbc: testsmbc.o
@echo Linking testsmbc
@@ -28,5 +28,9 @@ testacl: testacl.o
@echo Linking testacl
@$(CC) `gtk-config --cflags` $(CFLAGS) $(LDFLAGS) -o $@ `gtk-config --libs` -lsmbclient -lpopt $<
+testbrowse: testbrowse.o
+ @echo Linking testbrowse
+ @$(CC) $(CFLAGS) $(LDFLAGS) -o $@ -lsmbclient -lpopt $<
+
clean:
@rm -f *.o *~
diff --git a/examples/libsmbclient/testbrowse.c b/examples/libsmbclient/testbrowse.c
new file mode 100644
index 0000000000..d2472230a2
--- /dev/null
+++ b/examples/libsmbclient/testbrowse.c
@@ -0,0 +1,91 @@
+/*
+ Unix SMB/CIFS implementation.
+ SMB client library test program for browsing with different master browsers
+ Copyright (C) Derrell Lipman 2004
+
+ 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 2 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, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+*/
+
+#include <stdio.h>
+#include <errno.h>
+#include <sys/time.h>
+#include <string.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <libsmbclient.h>
+
+static void
+auth_fn(const char * pServer,
+ const char * pShare,
+ char * pWorkgroup,
+ int workgroup_len,
+ char * pUsername,
+ int username_len,
+ char * pPassword,
+ int password_len)
+
+{
+ strncpy(pUsername, "anonymous", username_len); /* doesn't matter what */
+ strncpy(pPassword, "password", password_len); /* ditto */
+}
+
+
+int
+main(int argc, char * argv[])
+{
+ int debug = 4;
+ int opt;
+ char * p;
+ char buf[1024];
+ int dir;
+ struct smbc_dirent * dirent;
+ char ** ppUrl;
+ char * urlList[] =
+ {
+ "smb://",
+ "smb://?mb=.any",
+ "smb://?mb=.all",
+ "smb://?mb=xx", /* this one is suupposed to fail */
+ NULL
+ };
+
+ if (smbc_init(auth_fn, debug) != 0)
+ {
+ printf("Could not initialize smbc_ library\n");
+ return 1;
+ }
+
+ for (ppUrl = urlList; *ppUrl != NULL; ppUrl++)
+ {
+ printf("Opening (%s)...\n", *ppUrl);
+
+ if ((dir = smbc_opendir(*ppUrl)) < 0)
+ {
+ printf("Could not open [%s] (%d:%s)\n",
+ *ppUrl, errno, strerror(errno));
+ continue;
+ }
+
+ while ((dirent = smbc_readdir(dir)) != NULL)
+ {
+ printf("%s\n", dirent->name);
+ }
+
+ smbc_closedir(dir);
+ }
+
+ exit(0);
+}
+