|
@@ -41,7 +41,7 @@
|
|
|
|
|
|
/* *INDENT-OFF* */
|
|
|
char usage_str[] = {
|
|
|
- "usage: %s [options] host login password file\n"
|
|
|
+ "usage: %s [options] host login password share file\n"
|
|
|
" -h, --help Show this help screen.\n"
|
|
|
" -v, --version Print the version and quit.\n"
|
|
|
};
|
|
@@ -86,22 +86,26 @@ static int parse_options(int argc, char * argv[])
|
|
|
|
|
|
int main(int ac, char **av)
|
|
|
{
|
|
|
- const char *pname, *host, *login, *password, *fname;
|
|
|
+ const char *pname, *host, *login, *password, *fname, *share;
|
|
|
struct sockaddr_in addr;
|
|
|
- netbios_ns *ns;
|
|
|
- smb_session *session;
|
|
|
+ netbios_ns *ns;
|
|
|
+ smb_session *session;
|
|
|
int argoffset;
|
|
|
+ char **share_list;
|
|
|
+ smb_file *files;
|
|
|
+
|
|
|
|
|
|
pname = ((pname = strrchr(av[0], '/')) != NULL) ? pname + 1 : av[0];
|
|
|
argoffset = parse_options(ac, av);
|
|
|
|
|
|
- if (argoffset >= ac || ac - argoffset != 4) {
|
|
|
+ if (argoffset >= ac || ac - argoffset != 5) {
|
|
|
print_usage(pname, -1);
|
|
|
}
|
|
|
|
|
|
host = av[argoffset++];
|
|
|
login = av[argoffset++];
|
|
|
password = av[argoffset++];
|
|
|
+ share = av[argoffset++];
|
|
|
fname = av[argoffset++];
|
|
|
|
|
|
ns = netbios_ns_new();
|
|
@@ -159,12 +163,24 @@ int main(int ac, char **av)
|
|
|
exit(42);
|
|
|
}
|
|
|
|
|
|
- smb_tid test = smb_tree_connect(session, "test");
|
|
|
+ if (!smb_share_get_list(session, &share_list))
|
|
|
+ {
|
|
|
+ fprintf(stderr, "Unable to list share for %s\n", host);
|
|
|
+ exit(42);
|
|
|
+ }
|
|
|
+
|
|
|
+ fprintf(stderr, "Share list : \n");
|
|
|
+ for (size_t j = 0; share_list[j] != NULL; j++)
|
|
|
+ fprintf(stderr, "- %s\n", share_list[j]);
|
|
|
+ smb_share_list_destroy(share_list);
|
|
|
+
|
|
|
+
|
|
|
+ smb_tid test = smb_tree_connect(session, share);
|
|
|
if (test)
|
|
|
- fprintf(stderr, "Connected to Test share\n");
|
|
|
+ fprintf(stderr, "Connected to %s share\n", share);
|
|
|
else
|
|
|
{
|
|
|
- fprintf(stderr, "Unable to connect to Test share\n");
|
|
|
+ fprintf(stderr, "Unable to connect to %s share\n", share);
|
|
|
exit(42);
|
|
|
}
|
|
|
|
|
@@ -178,25 +194,12 @@ int main(int ac, char **av)
|
|
|
// }
|
|
|
|
|
|
//char data[1024];
|
|
|
- char **share_list;
|
|
|
- smb_file *files;
|
|
|
|
|
|
|
|
|
// smb_fread(session, fd, data, 1024);
|
|
|
// fprintf(stderr, "Read from file:\n%s\n", data);
|
|
|
// smb_fclose(session, fd);
|
|
|
|
|
|
- if (!smb_share_get_list(session, &share_list))
|
|
|
- {
|
|
|
- fprintf(stderr, "Unable to list share for %s\n", host);
|
|
|
- exit(42);
|
|
|
- }
|
|
|
-
|
|
|
- fprintf(stderr, "Share list : \n");
|
|
|
- for (size_t j = 0; share_list[j] != NULL; j++)
|
|
|
- fprintf(stderr, "- %s\n", share_list[j]);
|
|
|
- smb_share_list_destroy(share_list);
|
|
|
-
|
|
|
fprintf(stderr, "Let's find files at share's root :\n");
|
|
|
files = smb_find(session, test, "\\*");
|
|
|
if (files != NULL)
|