fixed error check which caused domain logons to fail
[Samba.git] / source / utils / smbw_sample.c
blobcf94743411d4e1e79745005c050b96325ce5e7e6
1 #include <stdio.h>
2 #include <unistd.h>
3 #include <stdlib.h>
4 #include <dirent.h>
5 #include <sys/stat.h>
7 extern DIR *smbw_opendir(const char *fname);
8 extern struct dirent *smbw_readdir(DIR *dirp);
10 static void usage(void)
12 printf("\n \
13 smbw_sample - a sample program that uses smbw\n \
14 \n \
15 smbw_sample <options> path\n \
16 \n \
17 options:\n \
18 -W workgroup\n \
19 -l logfile\n \
20 -P prefix\n \
21 -d debuglevel\n \
22 -U username%%password\n \
23 -R resolve order\n \
24 \n \
25 note that path must start with /smb/\n \
26 ");
29 int main(int argc, char *argv[])
31 DIR *dir;
32 struct dirent *dent;
33 int opt;
34 char *p;
35 extern char *optarg;
36 extern int optind;
37 char *path;
39 charset_initialise();
40 lp_load(CONFIGFILE,1,0,0);
41 codepage_initialise(lp_client_code_page());
42 smbw_setup_shared();
44 while ((opt = getopt(argc, argv, "W:U:R:d:P:l:hL:")) != EOF) {
45 switch (opt) {
46 case 'W':
47 smbw_setshared("WORKGROUP", optarg);
48 break;
49 case 'l':
50 smbw_setshared("LOGFILE", optarg);
51 break;
52 case 'P':
53 smbw_setshared("PREFIX", optarg);
54 break;
55 case 'd':
56 smbw_setshared("DEBUG", optarg);
57 break;
58 case 'U':
59 p = strchr(optarg,'%');
60 if (p) {
61 *p=0;
62 smbw_setshared("PASSWORD",p+1);
64 smbw_setshared("USER", optarg);
65 break;
66 case 'R':
67 smbw_setshared("RESOLVE_ORDER",optarg);
68 break;
69 case 'h':
70 default:
71 usage();
72 exit(1);
76 argc -= optind;
77 argv += optind;
79 if (argc < 1) {
80 usage();
81 exit(1);
84 path = argv[0];
86 smbw_init();
88 dir = smbw_opendir(path);
89 if (!dir) {
90 printf("failed to open %s\n", path);
91 exit(1);
94 while ((dent = smbw_readdir(dir))) {
95 printf("%s\n", dent->d_name);
97 smbw_closedir(dir);
98 return 0;