diff options
author | Richard Sharpe <sharpe@samba.org> | 1998-06-21 12:44:34 +0000 |
---|---|---|
committer | Richard Sharpe <sharpe@samba.org> | 1998-06-21 12:44:34 +0000 |
commit | 8afebcdd7e055cd6c6f9eb69f9ba652b4e1ab591 (patch) | |
tree | 81a7ce4a266fc17e9cd50cbdf4916ffd4d16775a /source3/client | |
parent | 55da32fb45c6661857d5e6679bc7474c993a924b (diff) | |
download | samba-8afebcdd7e055cd6c6f9eb69f9ba652b4e1ab591.tar.gz samba-8afebcdd7e055cd6c6f9eb69f9ba652b4e1ab591.tar.xz samba-8afebcdd7e055cd6c6f9eb69f9ba652b4e1ab591.zip |
Remove the copyright to Canon Information Systems Australia, as we don't
want them to have the copyright.
Added a new DOSERR response code that Win95 returns, unimp, unimplemented.
Added code to ignore errors on setting remote time, as Win 95 does not like
the time being changed on a directory. Win NT and Samba are OK at this.
This is the next to last clean-ups here. Next is to properly handle restore
times on directories (except for Win95--see above).
Now have Jay's changes in and have fixed a bug reported by Tim Lee.
(This used to be commit dc9436bae4493b71ba92970d6cc49dbb33cd55cd)
Diffstat (limited to 'source3/client')
-rw-r--r-- | source3/client/clitar.c | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/source3/client/clitar.c b/source3/client/clitar.c index b06b5b2d37..d7d47fc903 100644 --- a/source3/client/clitar.c +++ b/source3/client/clitar.c @@ -102,6 +102,7 @@ BOOL tar_system=True; BOOL tar_hidden=True; /* Be noisy - make a catalogue */ BOOL tar_noisy=True; +BOOL tar_real_noisy=True; char tar_type='\0'; static char **cliplist=NULL; @@ -568,7 +569,7 @@ static int strslashcmp(char *s1, char *s2) do_setrtime, set time on a file or dir ... **********************************************************************/ -static int do_setrtime(char *fname, int mtime) +static int do_setrtime(char *fname, int mtime, BOOL err_silent) { char *inbuf, *outbuf, *p; char *name; @@ -583,9 +584,15 @@ static int do_setrtime(char *fname, int mtime) } - safe_strcpy(name, "\\", strlen(fname) + 1); + if (*fname != '\\') + safe_strcpy(name, "\\", strlen(fname) + 1); + else + safe_strcpy(name, "", strlen(fname) + 1); safe_strcat(name, fname, strlen(fname) + 1); + if (fname[strlen(name) - 1] == '\\') + name[strlen(name) - 1] = '\0'; + inbuf = (char *)malloc(BUFFER_SIZE + SAFETY_MARGIN); outbuf = (char *)malloc(BUFFER_SIZE + SAFETY_MARGIN); @@ -619,8 +626,10 @@ static int do_setrtime(char *fname, int mtime) if (CVAL(inbuf,smb_rcls) != 0) { - DEBUG(0,("%s setting attributes on file %s\n", - smb_errstr(inbuf), fname)); + if (!err_silent) { + DEBUG(0,("%s setting attributes on file %s\n", + smb_errstr(inbuf), fname)); + } free(name);free(inbuf);free(outbuf); return(False); } @@ -1954,10 +1963,12 @@ static void do_tarput() DEBUG(5, ("Updating creation date on %s\n", finfo.name)); - if (!do_setrtime(finfo.name, finfo.mtime)) { + if (!do_setrtime(finfo.name, finfo.mtime, True)) { - DEBUG(0, ("Could not set time on file: %s\n", finfo.name)); - return; + if (tar_real_noisy) { + DEBUG(0, ("Could not set time on file: %s\n", finfo.name)); + } + /*return; /* Win 95 does not like setting time on dirs */ } |