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 29static void 30auth_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 45int 46main(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 92