Author: kalim Date: 2005-08-26 04:23:41 +0000 (Fri, 26 Aug 2005) New Revision: 9629
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=9629 Log: Patched up and enabled mput command. Minor fixes to put command. -Kalim Modified: branches/SOC/SAMBA_3_0/source/client/client.c Changeset: Modified: branches/SOC/SAMBA_3_0/source/client/client.c =================================================================== --- branches/SOC/SAMBA_3_0/source/client/client.c 2005-08-26 03:40:24 UTC (rev 9628) +++ branches/SOC/SAMBA_3_0/source/client/client.c 2005-08-26 04:23:41 UTC (rev 9629) @@ -961,7 +961,7 @@ } if (nread + start < stat.st_size) { - DEBUG (0, ("Short read when getting file %s. Only got %ld bytes.\n", rname, (long)nread)); + DEBUG (1, ("Short read when getting file %s. Only got %ld bytes.\n", rname, (long)nread)); rc = 1; } @@ -1337,6 +1337,11 @@ start = stat.st_size; } else { fnum = smbc_creat(rname, 0644); + if (fnum < 0) + { + d_printf("%s trying to create remote file %s\n", strerror(errno), rname); + return 1; + } } /* allow files to be piped into smbclient @@ -1658,17 +1663,25 @@ if (!seek_list(temp_list, lname)) break; } else { /* Yes */ - SAFE_FREE(rname); - if(asprintf(&rname, "%s%s", cur_dir, lname) < 0) break; - dos_format(rname); - if (!cli_chkpath(cli, rname) && - !do_mkdir(rname)) { - DEBUG (0, ("Unable to make dir, skipping...")); - /* Skip the directory */ - lname[strlen(lname)-1] = '/'; - if (!seek_list(temp_list, lname)) - break; - } + int dh; + SAFE_FREE(rname); + if(asprintf(&rname, "smb:%s%s%s", service, cur_dir, lname) < 0) break; + /*dos_format(rname);*/ + + /* test if the directory exists by opening it */ + if (!((dh=smbc_opendir(rname)) < 0)) { + smbc_closedir(dh); + continue; + } + /* directory does not exist, try making it */ + if (!(smbc_mkdir(rname, 755) < 0)) + continue; + + d_printf("Unable to open or create dir, skipping...\n"); + /* Skip the directory */ + lname[strlen(lname)-1] = '/'; + if (!seek_list(temp_list, lname)) + break; } continue; } else { @@ -1679,11 +1692,10 @@ /* Yes */ SAFE_FREE(rname); - if (asprintf(&rname, "%s%s", cur_dir, lname) < 0) break; + if (asprintf(&rname, "smb:%s%s%s", service, cur_dir, lname) < 0) break; } - dos_format(rname); - + /*d_printf("PUT: rname: %s, lname: %s\n", rname, lname);*/ do_put(rname, lname, False); } free_file_list(file_list); @@ -2906,7 +2918,7 @@ /* {"mget",cmd_mget,"<mask> get all the matching files",{COMPL_REMOTE,COMPL_NONE}}, */ {"mkdir",cmd_mkdir,"<directory> make a directory",{COMPL_NONE,COMPL_NONE}}, /* {"more",cmd_more,"<remote name> view a remote file with your pager",{COMPL_REMOTE,COMPL_NONE}}, */ -/* {"mput",cmd_mput,"<mask> put all matching files",{COMPL_REMOTE,COMPL_NONE}}, */ + {"mput",cmd_mput,"<mask> put all matching files",{COMPL_REMOTE,COMPL_NONE}}, {"newer",cmd_newer,"<file> only mget files newer than the specified local file",{COMPL_LOCAL,COMPL_NONE}}, /* {"open",cmd_open,"<mask> open a file",{COMPL_REMOTE,COMPL_NONE}}, */ /* {"print",cmd_print,"<file name> print a file",{COMPL_NONE,COMPL_NONE}}, */
