import HEAD into svn+ssh://svn.samba.org/home/svn/samba/trunk
[metze/old/v3-2-winbind-ndr.git] / examples / libsmbclient / testbrowse.c
1 /* 
2    Unix SMB/CIFS implementation.
3    SMB client library test program for browsing with different master browsers
4    Copyright (C) Derrell Lipman 2004
5    
6    This program is free software; you can redistribute it and/or modify
7    it under the terms of the GNU General Public License as published by
8    the Free Software Foundation; either version 2 of the License, or
9    (at your option) any later version.
10    
11    This program is distributed in the hope that it will be useful,
12    but WITHOUT ANY WARRANTY; without even the implied warranty of
13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14    GNU General Public License for more details.
15    
16    You should have received a copy of the GNU General Public License
17    along with this program; if not, write to the Free Software
18    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
19 */
20
21 #include <stdio.h>
22 #include <errno.h>
23 #include <sys/time.h>
24 #include <string.h>
25 #include <unistd.h>
26 #include <stdlib.h>
27 #include <libsmbclient.h>
28
29 static void
30 auth_fn(const char * pServer,
31         const char * pShare,
32         char * pWorkgroup,
33         int workgroup_len,
34         char * pUsername,
35         int username_len,
36         char * pPassword,
37         int password_len)
38     
39 {
40     strncpy(pUsername, "anonymous", username_len); /* doesn't matter what */
41     strncpy(pPassword, "password", password_len);  /* ditto */
42 }
43
44
45 int
46 main(int argc, char * argv[])
47 {
48     int                         debug = 4;
49     int                         opt;
50     char *                      p;
51     char                        buf[1024];
52     int                         dir;
53     struct smbc_dirent *        dirent;
54     char **                     ppUrl;
55     char *                      urlList[] =
56         {
57             "smb://",
58             "smb://?mb=.any",
59             "smb://?mb=.all",
60             "smb://?mb=xx",     /* this one is suupposed to fail */
61             NULL
62         };
63     
64     if (smbc_init(auth_fn, debug) != 0)
65     {
66         printf("Could not initialize smbc_ library\n");
67         return 1;
68     }
69     
70     for (ppUrl = urlList; *ppUrl != NULL; ppUrl++)
71     {
72         printf("Opening (%s)...\n", *ppUrl);
73     
74         if ((dir = smbc_opendir(*ppUrl)) < 0)
75         {
76             printf("Could not open [%s] (%d:%s)\n",
77                    *ppUrl, errno, strerror(errno));
78             continue;
79         }
80     
81         while ((dirent = smbc_readdir(dir)) != NULL)
82         {
83             printf("%s\n", dirent->name);
84         }
85     
86         smbc_closedir(dir);
87     }
88     
89     exit(0);
90 }
91