svn commit: samba r4351 - branches/SAMBA_3_0/source/rpc_server branches/SAMBA_3_0/source/utils trunk/source/rpc_server trunk/source/utils

gd at samba.org gd at samba.org
Fri Dec 24 00:08:16 GMT 2004


Author: gd
Date: 2004-12-24 00:08:15 +0000 (Fri, 24 Dec 2004)
New Revision: 4351

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

Log:
Vampire Logon-Hours. Update Logon-Hours only when they have changed.

Guenther

Modified:
   branches/SAMBA_3_0/source/rpc_server/srv_samr_util.c
   branches/SAMBA_3_0/source/utils/net_rpc_samsync.c
   trunk/source/rpc_server/srv_samr_util.c
   trunk/source/utils/net_rpc_samsync.c


Changeset:
Modified: branches/SAMBA_3_0/source/rpc_server/srv_samr_util.c
===================================================================
--- branches/SAMBA_3_0/source/rpc_server/srv_samr_util.c	2004-12-23 22:03:29 UTC (rev 4350)
+++ branches/SAMBA_3_0/source/rpc_server/srv_samr_util.c	2004-12-24 00:08:15 UTC (rev 4351)
@@ -262,8 +262,12 @@
 		}
 
 		DEBUG(15,("INFO_21 LOGON_HRS.HOURS: %s -> %s\n",pdb_get_hours(to),from->logon_hrs.hours));
-		/* Fix me: only update if it changes --metze */
-		pdb_set_hours(to, from->logon_hrs.hours, PDB_CHANGED);
+		pstring old, new;
+		pdb_sethexhours(old, pdb_get_hours(to));
+		pdb_sethexhours(new, (const char *)from->logon_hrs.hours);
+		if (!strequal(old, new)) {
+			pdb_set_hours(to, from->logon_hrs.hours, PDB_CHANGED);
+		}
 
 		/* This is max logon hours */
 		DEBUG(10,("INFO_21 UNKNOWN_6: %08X -> %08X\n",pdb_get_unknown_6(to),from->unknown_6));

Modified: branches/SAMBA_3_0/source/utils/net_rpc_samsync.c
===================================================================
--- branches/SAMBA_3_0/source/utils/net_rpc_samsync.c	2004-12-23 22:03:29 UTC (rev 4350)
+++ branches/SAMBA_3_0/source/utils/net_rpc_samsync.c	2004-12-24 00:08:15 UTC (rev 4351)
@@ -408,10 +408,29 @@
 			pdb_set_logoff_time(account, unix_time,PDB_CHANGED);
 	}
 
+	/* Logon Divs */
 	if (pdb_get_logon_divs(account) != delta->logon_divs)
 		pdb_set_logon_divs(account, delta->logon_divs, PDB_CHANGED);
 
-	/* TODO: logon hours */
+	/* Max Logon Hours */
+	if (delta->unknown1 != pdb_get_unknown_6(account)) {
+		pdb_set_unknown_6(account, delta->unknown1, PDB_CHANGED);
+	}
+
+	/* Logon Hours Len */
+	if (delta->buf_logon_hrs.buf_len != pdb_get_hours_len(account)) {
+		pdb_set_hours_len(account, delta->buf_logon_hrs.buf_len, PDB_CHANGED);
+	}
+
+	/* Logon Hours */
+	if (delta->buf_logon_hrs.buffer) {
+		pstring old, new;
+		pdb_sethexhours(old, pdb_get_hours(account));
+		pdb_sethexhours(new, (const char *)delta->buf_logon_hrs.buffer);
+		if (!strequal(old, new))
+			pdb_set_hours(account, (const char *)delta->buf_logon_hrs.buffer, PDB_CHANGED);
+	}
+
 	if (pdb_get_bad_password_count(account) != delta->bad_pwd_count)
 		pdb_set_bad_password_count(account, delta->bad_pwd_count, PDB_CHANGED);
 

Modified: trunk/source/rpc_server/srv_samr_util.c
===================================================================
--- trunk/source/rpc_server/srv_samr_util.c	2004-12-23 22:03:29 UTC (rev 4350)
+++ trunk/source/rpc_server/srv_samr_util.c	2004-12-24 00:08:15 UTC (rev 4351)
@@ -262,8 +262,12 @@
 		}
 
 		DEBUG(15,("INFO_21 LOGON_HRS.HOURS: %s -> %s\n",pdb_get_hours(to),from->logon_hrs.hours));
-		/* Fix me: only update if it changes --metze */
-		pdb_set_hours(to, from->logon_hrs.hours, PDB_CHANGED);
+		pstring old, new;
+		pdb_sethexhours(old, pdb_get_hours(to));
+		pdb_sethexhours(new, (const char *)from->logon_hrs.hours);
+		if (!strequal(old, new)) {
+			pdb_set_hours(to, from->logon_hrs.hours, PDB_CHANGED);
+		}
 
 		/* This is max logon hours */
 		DEBUG(10,("INFO_21 UNKNOWN_6: %08X -> %08X\n",pdb_get_unknown_6(to),from->unknown_6));

Modified: trunk/source/utils/net_rpc_samsync.c
===================================================================
--- trunk/source/utils/net_rpc_samsync.c	2004-12-23 22:03:29 UTC (rev 4350)
+++ trunk/source/utils/net_rpc_samsync.c	2004-12-24 00:08:15 UTC (rev 4351)
@@ -416,10 +416,29 @@
 			pdb_set_logoff_time(account, unix_time,PDB_CHANGED);
 	}
 
+	/* Logon Divs */
 	if (pdb_get_logon_divs(account) != delta->logon_divs)
 		pdb_set_logon_divs(account, delta->logon_divs, PDB_CHANGED);
 
-	/* TODO: logon hours */
+	/* Max Logon Hours */
+	if (delta->unknown1 != pdb_get_unknown_6(account)) {
+		pdb_set_unknown_6(account, delta->unknown1, PDB_CHANGED);
+	}
+
+	/* Logon Hours Len */
+	if (delta->buf_logon_hrs.buf_len != pdb_get_hours_len(account)) {
+		pdb_set_hours_len(account, delta->buf_logon_hrs.buf_len, PDB_CHANGED);
+	}
+
+	/* Logon Hours */
+	if (delta->buf_logon_hrs.buffer) {
+		pstring old, new;
+		pdb_sethexhours(old, pdb_get_hours(account));
+		pdb_sethexhours(new, (const char *)delta->buf_logon_hrs.buffer);
+		if (!strequal(old, new))
+			pdb_set_hours(account, (const char *)delta->buf_logon_hrs.buffer, PDB_CHANGED);
+	}
+
 	if (pdb_get_bad_password_count(account) != delta->bad_pwd_count)
 		pdb_set_bad_password_count(account, delta->bad_pwd_count, PDB_CHANGED);
 



More information about the samba-cvs mailing list