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 == 6 ) 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 fd = smbc_open(url,O_RDWR | O_CREAT,0666); 47 smbc_close( fd ); 48 smbc_rename( url, argv[5] ); 49 50 err = errno; 51 52 } 53 54 return err; 55 56} 57 58