[Box Backup-dev] COMMIT r278 - box/chris/win32/vc2005-compile-fixes/lib/backupclient

boxbackup-dev@fluffy.co.uk boxbackup-dev@fluffy.co.uk
Thu, 22 Dec 2005 23:00:23 +0000 (GMT)


Author: chris
Date: 2005-12-22 23:00:04 +0000 (Thu, 22 Dec 2005)
New Revision: 278

Modified:
   box/chris/win32/vc2005-compile-fixes/lib/backupclient/BackupClientFileAttributes.cpp
Log:
* BackupClientFileAttributes.cpp
- Fix erroneous detection of invalid timestamps on local files


Modified: box/chris/win32/vc2005-compile-fixes/lib/backupclient/BackupClientFileAttributes.cpp
===================================================================
--- box/chris/win32/vc2005-compile-fixes/lib/backupclient/BackupClientFileAttributes.cpp	2005-12-22 22:34:28 UTC (rev 277)
+++ box/chris/win32/vc2005-compile-fixes/lib/backupclient/BackupClientFileAttributes.cpp	2005-12-22 23:00:04 UTC (rev 278)
@@ -333,8 +333,9 @@
 		// __time64_t winTime = BoxTimeToSeconds(
 		// pnewAttr->ModificationTime);
 
-		box_time_t bob = BoxTimeToSeconds(pattr->ModificationTime);
-		__time64_t winTime = bob;
+		u_int64_t  modTime = box_ntoh64(pattr->ModificationTime);
+		box_time_t modSecs = BoxTimeToSeconds(modTime);
+		__time64_t winTime = modSecs;
 
 		// _MAX__TIME64_T doesn't seem to be defined, but the code below
 		// will throw an assertion failure if we exceed it :-)
@@ -343,17 +344,19 @@
 		// to be true (still aborts), but it can at least hold 2^32.
 		if (winTime >= 0x100000000 || _gmtime64(&winTime) == 0)
 		{
-			::syslog(LOG_ERR, "Corrupt value in store "
-				"Modification Time in file %s", Filename);
+			::syslog(LOG_ERR, "Invalid Modification Time "
+				"caught for file: %s", Filename);
 			pattr->ModificationTime = 0;
 		}
 
-		bob = BoxTimeToSeconds(pattr->AttrModificationTime);
-		winTime = bob;
+		modTime = box_ntoh64(pattr->AttrModificationTime);
+		modSecs = BoxTimeToSeconds(modTime);
+		winTime = modSecs;
+
 		if (winTime > 0x100000000 || _gmtime64(&winTime) == 0)
 		{
-			::syslog(LOG_ERR, "Corrupt value in store "
-				"Attr Modification Time in file %s", Filename);
+			::syslog(LOG_ERR, "Invalid Attribute Modification "
+				"Time caught for file: %s", Filename);
 			pattr->AttrModificationTime = 0;
 		}
 #endif