5 #include <libsmbclient.h>
7 #define MAX_BUFF_SIZE 255
8 char g_workgroup
[MAX_BUFF_SIZE
];
9 char g_username
[MAX_BUFF_SIZE
];
10 char g_password
[MAX_BUFF_SIZE
];
11 char g_server
[MAX_BUFF_SIZE
];
12 char g_share
[MAX_BUFF_SIZE
];
15 static void auth_fn(const char *server
, const char *share
, char *workgroup
, int wgmaxlen
,
16 char *username
, int unmaxlen
, char *password
, int pwmaxlen
)
19 strncpy(workgroup
, g_workgroup
, wgmaxlen
- 1);
21 strncpy(username
, g_username
, unmaxlen
- 1);
23 strncpy(password
, g_password
, pwmaxlen
- 1);
25 strcpy(g_server
, server
);
26 strcpy(g_share
, share
);
30 int main(int argc
, char** argv
)
41 struct smbc_dirent
*dirptr
;
44 char buff
[MAX_BUFF_SIZE
];
45 char url
[MAX_BUFF_SIZE
];
46 char file_url
[MAX_BUFF_SIZE
];
47 char dir_url
[MAX_BUFF_SIZE
];
48 char dirbuff
[MAX_BUFF_SIZE
];
50 bzero(g_workgroup
,MAX_BUFF_SIZE
);
51 bzero(url
,MAX_BUFF_SIZE
);
52 bzero(file_url
,MAX_BUFF_SIZE
);
53 bzero(dir_url
,MAX_BUFF_SIZE
);
54 bzero(buff
,MAX_BUFF_SIZE
);
59 dirptr
= (struct smbc_dirent
*) dirbuff
;
61 strncpy(g_workgroup
,argv
[1],strlen(argv
[1]));
62 strncpy(g_username
,argv
[2],strlen(argv
[2]));
63 strncpy(g_password
,argv
[3],strlen(argv
[3]));
64 strncpy(url
,argv
[4],strlen(argv
[4]));
65 smbc_init(auth_fn
, 0);
67 strncpy(file_url
,"tempfile-",9);
68 tmp_file_ptr
= file_url
;
74 entry_num
= atoi(argv
[5]);
79 file_name
+= strlen(dir_url
);
81 for ( i
= 0; i
< entry_num
; i
++ )
84 memcpy(tmp_file_ptr
,buff
,strlen(buff
)+4);
85 strncat(tmp_file_ptr
,".txt",4);
86 strcpy(file_name
,file_url
);
87 fd
= smbc_open(dir_url
,O_RDWR
| O_CREAT
, 0666);
92 dh
= smbc_opendir(url
);
96 bzero(buff
,MAX_BUFF_SIZE
);
97 bzero(tmp_file_ptr
,MAX_BUFF_SIZE
-9);
101 dirptr
= smbc_readdir( dh
);
102 if ( dirptr
== NULL
)
107 /* printf("Name: %s\n",dirptr->name); */
110 if ( !(( strncmp(dirptr
->name
,".",1) == 0 )) )
116 } else if ( j
== 1 ) {
118 if ( !(( strncmp(dirptr
->name
,"..",2) == 0 )) )
124 } else if ( j
> 1 ) {
126 sprintf(buff
,"%d",i
);
127 memcpy(tmp_file_ptr
,buff
,strlen(buff
)+4);
128 strncat(tmp_file_ptr
,".txt",4);
130 if ( !(( strcmp(dirptr
->name
,file_url
) == 0 )) ) /* make sure entries match */
146 if ( (j
- 2) != entry_num
) /* Make sure that all entries created are counted and returned - minus . and .. */