Apply some more of Derrell Lipman's changes.
authorRichard Sharpe <sharpe@samba.org>
Fri, 19 Mar 2004 17:36:56 +0000 (17:36 +0000)
committerRichard Sharpe <sharpe@samba.org>
Fri, 19 Mar 2004 17:36:56 +0000 (17:36 +0000)
(This used to be commit a6457e1c817663cf5f3e77e4dd431ac0d9184dc7)

examples/libsmbclient/Makefile
examples/libsmbclient/testbrowse.c [new file with mode: 0644]

index e7c82a3aee6cab1884fc33585e5a224536e829bc..fcd5ef290030f940ed7de979af8af99ce0ef8340 100644 (file)
@@ -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 (file)
index 0000000..d247223
--- /dev/null
@@ -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);
+}
+