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