diff options
author | Jeremy Allison <jra@samba.org> | 1998-02-13 07:11:58 +0000 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 1998-02-13 07:11:58 +0000 |
commit | 2beada804a238534628398f62fe4ed9e8d2c3efd (patch) | |
tree | e937dec5b1d4b46d1d9e5cfd7b747ef550bb2db5 /source3/smbd/reply.c | |
parent | c04291ae995b65935ef9581bfd95eebaf4354c1d (diff) | |
download | samba-2beada804a238534628398f62fe4ed9e8d2c3efd.tar.gz samba-2beada804a238534628398f62fe4ed9e8d2c3efd.tar.bz2 samba-2beada804a238534628398f62fe4ed9e8d2c3efd.zip |
Ding-dong the witch is dead, the witch is dead......
This is the checkin that fixes the infamous Visual C++ 'file
has changed' bug.
I feel *SO* good about that :-).
charset.c: Added (void) to fix Herb's fussy compiler.
loadparm.c: Removed "win95 bug compatibility" (didn't
like it much anyway :-). Added "dos filetime resolution"
instead.
reply.c: Added the 2 second timestamp resolution fix that the song above is about.
time.c: Removed unneeded get_access_time() function.
trans2.c : Removed unneeded "win95 bug compatibility" code.
Jeremy.
(This used to be commit 10d628e4aeaecc573de27e251fec7b91844cba40)
Diffstat (limited to 'source3/smbd/reply.c')
-rw-r--r-- | source3/smbd/reply.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/source3/smbd/reply.c b/source3/smbd/reply.c index 93bb679289..38380180f9 100644 --- a/source3/smbd/reply.c +++ b/source3/smbd/reply.c @@ -779,7 +779,10 @@ int reply_getatr(char *inbuf,char *outbuf) outsize = set_message(outbuf,10,0,True); SSVAL(outbuf,smb_vwv0,mode); - put_dos_date3(outbuf,smb_vwv1,mtime); + if(lp_dos_filetime_resolution(SNUM(cnum)) ) + put_dos_date3(outbuf,smb_vwv1,mtime & ~1); + else + put_dos_date3(outbuf,smb_vwv1,mtime); SIVAL(outbuf,smb_vwv3,size); if (Protocol >= PROTOCOL_NT1) { @@ -1231,7 +1234,10 @@ int reply_open(char *inbuf,char *outbuf) outsize = set_message(outbuf,7,0,True); SSVAL(outbuf,smb_vwv0,fnum); SSVAL(outbuf,smb_vwv1,fmode); - put_dos_date3(outbuf,smb_vwv2,mtime); + if(lp_dos_filetime_resolution(SNUM(cnum)) ) + put_dos_date3(outbuf,smb_vwv2,mtime & ~1); + else + put_dos_date3(outbuf,smb_vwv2,mtime); SIVAL(outbuf,smb_vwv4,size); SSVAL(outbuf,smb_vwv6,rmode); @@ -1357,7 +1363,10 @@ int reply_open_and_X(char *inbuf,char *outbuf,int length,int bufsize) set_message(outbuf,15,0,True); SSVAL(outbuf,smb_vwv2,fnum); SSVAL(outbuf,smb_vwv3,fmode); - put_dos_date3(outbuf,smb_vwv4,mtime); + if(lp_dos_filetime_resolution(SNUM(cnum)) ) + put_dos_date3(outbuf,smb_vwv4,mtime & ~1); + else + put_dos_date3(outbuf,smb_vwv4,mtime); SIVAL(outbuf,smb_vwv6,size); SSVAL(outbuf,smb_vwv8,rmode); SSVAL(outbuf,smb_vwv11,smb_action); @@ -3917,7 +3926,7 @@ int reply_getattrE(char *inbuf,char *outbuf) date to be last modify date as UNIX doesn't save this */ put_dos_date2(outbuf,smb_vwv0,get_create_time(&sbuf)); - put_dos_date2(outbuf,smb_vwv2,get_access_time(&sbuf)); + put_dos_date2(outbuf,smb_vwv2,sbuf.st_atime); put_dos_date2(outbuf,smb_vwv4,sbuf.st_mtime); if (mode & aDIR) { |