svn commit: samba r5666 - in branches/SAMBA_4_0/source: lib ntvfs/posix

tridge at samba.org tridge at samba.org
Sat Mar 5 22:50:14 GMT 2005


Author: tridge
Date: 2005-03-05 22:50:13 +0000 (Sat, 05 Mar 2005)
New Revision: 5666

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=5666

Log:
winxp will use a NTTIME of -1 to mean "don't change" in setfileinfo
basic_info. Add null_nttime() as the equivalent of the existing
null_time() call for cheecking for valid NTTIME values


Modified:
   branches/SAMBA_4_0/source/lib/time.c
   branches/SAMBA_4_0/source/ntvfs/posix/pvfs_setfileinfo.c
   branches/SAMBA_4_0/source/ntvfs/posix/pvfs_xattr.c


Changeset:
Modified: branches/SAMBA_4_0/source/lib/time.c
===================================================================
--- branches/SAMBA_4_0/source/lib/time.c	2005-03-05 21:59:48 UTC (rev 5665)
+++ branches/SAMBA_4_0/source/lib/time.c	2005-03-05 22:50:13 UTC (rev 5666)
@@ -112,6 +112,15 @@
 		t == (time_t)-1;
 }
 
+
+/****************************************************************************
+check if it's a null NTTIME
+****************************************************************************/
+BOOL null_nttime(NTTIME t)
+{
+	return t == 0 || t == (NTTIME)-1;
+}
+
 /*******************************************************************
   create a 16 bit dos packed date
 ********************************************************************/

Modified: branches/SAMBA_4_0/source/ntvfs/posix/pvfs_setfileinfo.c
===================================================================
--- branches/SAMBA_4_0/source/ntvfs/posix/pvfs_setfileinfo.c	2005-03-05 21:59:48 UTC (rev 5665)
+++ branches/SAMBA_4_0/source/ntvfs/posix/pvfs_setfileinfo.c	2005-03-05 22:50:13 UTC (rev 5666)
@@ -301,18 +301,18 @@
 
 	case RAW_SFILEINFO_BASIC_INFO:
 	case RAW_SFILEINFO_BASIC_INFORMATION:
-		if (info->basic_info.in.create_time) {
+		if (!null_nttime(info->basic_info.in.create_time)) {
 			newstats.dos.create_time = info->basic_info.in.create_time;
 		}
-		if (info->basic_info.in.access_time) {
+		if (!null_nttime(info->basic_info.in.access_time)) {
 			newstats.dos.access_time = info->basic_info.in.access_time;
 		}
-		if (info->basic_info.in.write_time) {
+		if (!null_nttime(info->basic_info.in.write_time)) {
 			newstats.dos.write_time = info->basic_info.in.write_time;
 			newstats.dos.flags |= XATTR_ATTRIB_FLAG_STICKY_WRITE_TIME;
 			h->sticky_write_time = True;
 		}
-		if (info->basic_info.in.change_time) {
+		if (!null_nttime(info->basic_info.in.change_time)) {
 			newstats.dos.change_time = info->basic_info.in.change_time;
 		}
 		if (info->basic_info.in.attrib != 0) {
@@ -490,16 +490,16 @@
 
 	case RAW_SFILEINFO_BASIC_INFO:
 	case RAW_SFILEINFO_BASIC_INFORMATION:
-		if (info->basic_info.in.create_time) {
+		if (!null_nttime(info->basic_info.in.create_time)) {
 			newstats.dos.create_time = info->basic_info.in.create_time;
 		}
-		if (info->basic_info.in.access_time) {
+		if (!null_nttime(info->basic_info.in.access_time)) {
 			newstats.dos.access_time = info->basic_info.in.access_time;
 		}
-		if (info->basic_info.in.write_time) {
+		if (!null_nttime(info->basic_info.in.write_time)) {
 			newstats.dos.write_time = info->basic_info.in.write_time;
 		}
-		if (info->basic_info.in.change_time) {
+		if (!null_nttime(info->basic_info.in.change_time)) {
 			newstats.dos.change_time = info->basic_info.in.change_time;
 		}
 		if (info->basic_info.in.attrib != 0) {

Modified: branches/SAMBA_4_0/source/ntvfs/posix/pvfs_xattr.c
===================================================================
--- branches/SAMBA_4_0/source/ntvfs/posix/pvfs_xattr.c	2005-03-05 21:59:48 UTC (rev 5665)
+++ branches/SAMBA_4_0/source/ntvfs/posix/pvfs_xattr.c	2005-03-05 22:50:13 UTC (rev 5666)
@@ -190,10 +190,10 @@
 			name->dos.alloc_size = 
 				pvfs_round_alloc_size(pvfs, info1->alloc_size);
 		}
-		if (info1->create_time != 0) {
+		if (!null_nttime(info1->create_time)) {
 			name->dos.create_time = info1->create_time;
 		}
-		if (info1->change_time != 0) {
+		if (!null_nttime(info1->change_time)) {
 			name->dos.change_time = info1->change_time;
 		}
 		name->dos.flags = 0;
@@ -207,10 +207,10 @@
 			name->dos.alloc_size = 
 				pvfs_round_alloc_size(pvfs, info2->alloc_size);
 		}
-		if (info2->create_time != 0) {
+		if (!null_nttime(info2->create_time)) {
 			name->dos.create_time = info2->create_time;
 		}
-		if (info2->change_time != 0) {
+		if (!null_nttime(info2->change_time)) {
 			name->dos.change_time = info2->change_time;
 		}
 		name->dos.flags = info2->flags;



More information about the samba-cvs mailing list