1#include <stdio.h> 2#include <string.h> 3#include <errno.h> 4#include <libsmbclient.h> 5 6#define MAX_BUFF_SIZE 255 7char g_workgroup[MAX_BUFF_SIZE]; 8char g_username[MAX_BUFF_SIZE]; 9char g_password[MAX_BUFF_SIZE]; 10char g_server[MAX_BUFF_SIZE]; 11char g_share[MAX_BUFF_SIZE]; 12 13 14void auth_fn(const char *server, const char *share, char *workgroup, int wgmaxlen, 15 char *username, int unmaxlen, char *password, int pwmaxlen) 16{ 17 18 strncpy(workgroup, g_workgroup, wgmaxlen - 1); 19 20 strncpy(username, g_username, unmaxlen - 1); 21 22 strncpy(password, g_password, pwmaxlen - 1); 23 24 strcpy(g_server, server); 25 strcpy(g_share, share); 26 27} 28 29int main(int argc, char** argv) 30{ 31 int err = -1; 32 int fd = 0; 33 char url[MAX_BUFF_SIZE]; 34 35 bzero(g_workgroup,MAX_BUFF_SIZE); 36 bzero(url,MAX_BUFF_SIZE); 37 38 if ( argc == 5 ) 39 { 40 41 strncpy(g_workgroup,argv[1],strlen(argv[1])); 42 strncpy(g_username,argv[2],strlen(argv[2])); 43 strncpy(g_password,argv[3],strlen(argv[3])); 44 strncpy(url,argv[4],strlen(argv[4])); 45 46 smbc_init(auth_fn, 0); 47 fd = smbc_open(url, O_RDWR, 0666); 48 49 if ( fd < 0 ) 50 err = 1; 51 52 else 53 err = 0; 54 55 } 56 57 return err; 58 59} 60 61