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 fd1 = 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 strncpy( g_workgroup, argv[1], strlen(argv[1]) ); 41 strncpy( g_username, argv[2], strlen(argv[2]) ); 42 strncpy( g_password, argv[3], strlen(argv[3]) ); 43 strncpy( url, argv[4], strlen(argv[4]) ); 44 45 smbc_init( auth_fn, 0 ); 46 fd1 = smbc_open( url, O_RDWR | O_CREAT, 0666 ); 47 smbc_close( fd1 ); 48 49 smbc_rename( url, NULL ); 50 51 err = errno; 52 53 } 54 55 return err; 56 57} 58 59