mirror of
https://github.com/obarthel/amiga-smbfs.git
synced 2025-12-08 14:58:35 +00:00
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:
+2
-2
@@ -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
@@ -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;
|
||||
|
||||
@@ -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 @@
|
||||
70
|
||||
71
|
||||
|
||||
Reference in New Issue
Block a user