smbfs 1.71 (13.6.2005)

- The extended directory scanning entry conversion code now swaps
  the last modification and last write access date stamps. This
  matches the time of the last modification, as returned by the
  regular ACTION_EXAMINE_FH/ACTION_EXAMINE packets. Note that the
  time resolution is a little bit coarser because the modification
  time as expressed by the SMB getattr function cannot represent
  60 distinct seconds per minute but only 30. The net effect is
  that the resulting time stamps in a directory listing and by
  examining a file can differ by one second.

- The DST option's time offset was added to rather than subtracted
  from the local time. Fixed.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/amiga-smbfs/trunk@17 26594b9e-b914-4e86-b7a1-9402bd427170
This commit is contained in:
Olaf Barthel
2005-06-13 13:14:37 +00:00
parent fd1b68d775
commit 210865e526
5 changed files with 41 additions and 10 deletions
+2 -2
View File
@@ -1,5 +1,5 @@
/*
* $Id: main.c,v 1.5 2005-06-13 08:42:06 obarthel Exp $
* $Id: main.c,v 1.6 2005-06-13 13:11:26 obarthel Exp $
*
* :ts=4
*
@@ -2195,7 +2195,7 @@ Setup(
}
if(opt_dst_offset != NULL)
DSTOffset = 60 * (*opt_dst_offset);
DSTOffset = -60 * (*opt_dst_offset);
memset(&TimerRequest,0,sizeof(TimerRequest));
+18 -3
View File
@@ -1,5 +1,5 @@
/*
* $Id: proc.c,v 1.5 2005-06-13 08:42:06 obarthel Exp $
* $Id: proc.c,v 1.6 2005-06-13 13:11:26 obarthel Exp $
*
* :ts=8
*
@@ -171,12 +171,18 @@ smb_name_mangle (byte * p, const byte * name)
return p;
}
/* According to the core protocol documentation times are
expressed as seconds past January 1st, 1970, local
time zone. */
static INLINE int
utc2local (int time_value)
{
int result;
result = time_value - GetTimeZoneDelta();
if(time_value > 0)
result = time_value - GetTimeZoneDelta();
else
result = time_value;
return result;
}
@@ -186,7 +192,10 @@ local2utc (int time_value)
{
int result;
result = time_value + GetTimeZoneDelta();
if(time_value > 0)
result = time_value + GetTimeZoneDelta();
else
result = time_value;
return result;
}
@@ -1459,6 +1468,7 @@ smb_decode_long_dirent (char *p, struct smb_dirent *finfo, int level)
if (finfo != NULL)
{
int namelen;
time_t swap;
p += 4; /* next entry offset */
p += 4; /* fileindex */
@@ -1489,6 +1499,11 @@ smb_decode_long_dirent (char *p, struct smb_dirent *finfo, int level)
if(finfo->mtime == 0)
finfo->mtime = finfo->wtime;
/* Swap last modification time and last write time. */
swap = finfo->mtime;
finfo->mtime = finfo->wtime;
finfo->wtime = swap;
memcpy (finfo->complete_path, p, namelen);
finfo->complete_path[namelen] = '\0';
finfo->len = namelen;
+4 -4
View File
@@ -1,6 +1,6 @@
#define VERSION 1
#define REVISION 70
#define REVISION 71
#define DATE "13.6.2005"
#define VERS "smbfs 1.70"
#define VSTRING "smbfs 1.70 (13.6.2005)\r\n"
#define VERSTAG "\0$VER: smbfs 1.70 (13.6.2005)"
#define VERS "smbfs 1.71"
#define VSTRING "smbfs 1.71 (13.6.2005)\r\n"
#define VERSTAG "\0$VER: smbfs 1.71 (13.6.2005)"
+1 -1
View File
@@ -1 +1 @@
70
71