[SCM] Samba Shared Repository - branch master updated

Björn Jacke bjacke at samba.org
Fri Sep 10 15:08:19 MDT 2010


The branch, master has been updated
       via  306465a s3/winbind: use mono time for startup timeout check
       via  e2de1b8 libreplace: clock_gettime sets errno
       via  3eda281 s4/pvfs: use monotonic time for this timeout
       via  d320aa1 s4/ldap: use time_mono for reconnect timeout
       via  54ca771 s4/torture: use time_mono for timeouts
       via  478ac36 s4/torture: use time_mono for delta time
      from  d4d34bd s3-selftest: add print_test_extended (as called from RPC-PRINTER) to knownfail list.

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 306465a5a4571cabe5c1c61224873471910b94b6
Author: Björn Jacke <bj at sernet.de>
Date:   Fri Sep 10 21:36:20 2010 +0200

    s3/winbind: use mono time for startup timeout check

commit e2de1b8e717f94944006f3478a133f256cef50de
Author: Björn Jacke <bj at sernet.de>
Date:   Fri Sep 10 21:03:17 2010 +0200

    libreplace: clock_gettime sets errno

commit 3eda2815f648fdb688f9bace4c45870c7a427dfc
Author: Björn Jacke <bj at sernet.de>
Date:   Fri Sep 10 20:46:10 2010 +0200

    s4/pvfs: use monotonic time for this timeout

commit d320aa1212ba926f81d37ee0690381f1f287f30d
Author: Björn Jacke <bj at sernet.de>
Date:   Fri Sep 10 20:39:20 2010 +0200

    s4/ldap: use time_mono for reconnect timeout

commit 54ca77183b63946025c7953cdb9fb558b6b91b1d
Author: Björn Jacke <bj at sernet.de>
Date:   Fri Sep 10 20:28:41 2010 +0200

    s4/torture: use time_mono for timeouts

commit 478ac36b9c4b655c013846ae5ec02c56cbc626d7
Author: Björn Jacke <bj at sernet.de>
Date:   Fri Sep 10 20:25:19 2010 +0200

    s4/torture: use time_mono for delta time

-----------------------------------------------------------------------

Summary of changes:
 lib/replace/replace.c             |    3 ++-
 source3/winbindd/winbindd.h       |    2 +-
 source3/winbindd/winbindd_cm.c    |    4 ++--
 source3/winbindd/winbindd_dual.c  |    6 +++---
 source4/libcli/ldap/ldap_client.c |    4 ++--
 source4/ntvfs/posix/pvfs_search.c |    6 +++---
 source4/ntvfs/posix/vfs_posix.h   |    2 +-
 source4/torture/basic/locking.c   |    4 ++--
 source4/torture/basic/secleak.c   |    4 ++--
 9 files changed, 18 insertions(+), 17 deletions(-)


Changeset truncated at 500 lines:

diff --git a/lib/replace/replace.c b/lib/replace/replace.c
index f3459dd..a00f705 100644
--- a/lib/replace/replace.c
+++ b/lib/replace/replace.c
@@ -776,7 +776,8 @@ int rep_clock_gettime(clockid_t clk_id, struct timespec *tp)
 			tp->tv_nsec = tval.tv_usec * 1000;
 			break;
 		default:
-			return EINVAL;
+			errno = EINVAL;
+			return -1;
 	}
 	return 0;
 }
diff --git a/source3/winbindd/winbindd.h b/source3/winbindd/winbindd.h
index d7a53e2..1ba24b5 100644
--- a/source3/winbindd/winbindd.h
+++ b/source3/winbindd/winbindd.h
@@ -157,7 +157,7 @@ struct winbindd_domain {
 	bool primary;                          /* is this our primary domain ? */
 	bool internal;                         /* BUILTIN and member SAM */
 	bool online;			       /* is this domain available ? */
-	time_t startup_time;		       /* When we set "startup" true. */
+	time_t startup_time;		       /* When we set "startup" true. monotonic clock */
 	bool startup;                          /* are we in the first 30 seconds after startup_time ? */
 
 	bool can_do_samlogon_ex; /* Due to the lack of finer control what type
diff --git a/source3/winbindd/winbindd_cm.c b/source3/winbindd/winbindd_cm.c
index 8f94b29..4ab2d94 100644
--- a/source3/winbindd/winbindd_cm.c
+++ b/source3/winbindd/winbindd_cm.c
@@ -291,7 +291,7 @@ static void check_domain_online_handler(struct event_context *ctx,
 
 	/* Are we still in "startup" mode ? */
 
-	if (domain->startup && (now.tv_sec > domain->startup_time + 30)) {
+	if (domain->startup && (time_mono(NULL) > domain->startup_time + 30)) {
 		/* No longer in "startup" mode. */
 		DEBUG(10,("check_domain_online_handler: domain %s no longer in 'startup' mode.\n",
 			domain->name ));
@@ -508,7 +508,7 @@ void set_domain_online_request(struct winbindd_domain *domain)
 	GetTimeOfDay(&tev);
 
 	/* Go into "startup" mode again. */
-	domain->startup_time = tev.tv_sec;
+	domain->startup_time = time_mono(NULL);
 	domain->startup = True;
 
 	tev.tv_sec += 5;
diff --git a/source3/winbindd/winbindd_dual.c b/source3/winbindd/winbindd_dual.c
index f78ae2d..4cec7c2 100644
--- a/source3/winbindd/winbindd_dual.c
+++ b/source3/winbindd/winbindd_dual.c
@@ -1306,7 +1306,7 @@ static bool fork_domain_child(struct winbindd_child *child)
 	 * try to bring domain online after fork. */
 	if ( child->domain ) {
 		child->domain->startup = True;
-		child->domain->startup_time = time(NULL);
+		child->domain->startup_time = time_mono(NULL);
 		/* we can be in primary domain or in trusted domain
 		 * If we are in trusted domain, set the primary domain
 		 * in start-up mode */
@@ -1314,7 +1314,7 @@ static bool fork_domain_child(struct winbindd_child *child)
 			set_domain_online_request(child->domain);
 			if (!(child->domain->primary)) {
 				primary_domain->startup = True;
-				primary_domain->startup_time = time(NULL);
+				primary_domain->startup_time = time_mono(NULL);
 				set_domain_online_request(primary_domain);
 			}
 		}
@@ -1389,7 +1389,7 @@ static bool fork_domain_child(struct winbindd_child *child)
 		GetTimeOfDay(&now);
 
 		if (child->domain && child->domain->startup &&
-				(now.tv_sec > child->domain->startup_time + 30)) {
+				(time_mono(NULL) > child->domain->startup_time + 30)) {
 			/* No longer in "startup" mode. */
 			DEBUG(10,("fork_domain_child: domain %s no longer in 'startup' mode.\n",
 				child->domain->name ));
diff --git a/source4/libcli/ldap/ldap_client.c b/source4/libcli/ldap/ldap_client.c
index b000b20..865ff6d 100644
--- a/source4/libcli/ldap/ldap_client.c
+++ b/source4/libcli/ldap/ldap_client.c
@@ -499,7 +499,7 @@ _PUBLIC_ void ldap_set_reconn_params(struct ldap_connection *conn, int max_retri
 	if (conn) {
 		conn->reconnect.max_retries = max_retries;
 		conn->reconnect.retries = 0;
-		conn->reconnect.previous = time(NULL);
+		conn->reconnect.previous = time_mono(NULL);
 	}
 }
 
@@ -507,7 +507,7 @@ _PUBLIC_ void ldap_set_reconn_params(struct ldap_connection *conn, int max_retri
 static void ldap_reconnect(struct ldap_connection *conn)
 {
 	NTSTATUS status;
-	time_t now = time(NULL);
+	time_t now = time_mono(NULL);
 
 	/* do we have set up reconnect ? */
 	if (conn->reconnect.max_retries == 0) return;
diff --git a/source4/ntvfs/posix/pvfs_search.c b/source4/ntvfs/posix/pvfs_search.c
index e6b53ee..a050de1 100644
--- a/source4/ntvfs/posix/pvfs_search.c
+++ b/source4/ntvfs/posix/pvfs_search.c
@@ -291,7 +291,7 @@ static NTSTATUS pvfs_search_fill(struct pvfs_state *pvfs, TALLOC_CTX *mem_ctx,
 static void pvfs_search_cleanup(struct pvfs_state *pvfs)
 {
 	int i;
-	time_t t = time(NULL);
+	time_t t = time_mono(NULL);
 
 	for (i=0;i<MAX_OLD_SEARCHES;i++) {
 		struct pvfs_search_state *search;
@@ -379,7 +379,7 @@ static NTSTATUS pvfs_search_first_old(struct ntvfs_module_context *ntvfs,
 	search->current_index = 0;
 	search->search_attrib = search_attrib & 0xFF;
 	search->must_attrib = (search_attrib>>8) & 0xFF;
-	search->last_used = time(NULL);
+	search->last_used = time_mono(NULL);
 	search->te = NULL;
 
 	DLIST_ADD(pvfs->search.list, search);
@@ -437,7 +437,7 @@ static NTSTATUS pvfs_search_next_old(struct ntvfs_module_context *ntvfs,
 	if (!NT_STATUS_IS_OK(status)) {
 		return status;
 	}
-	search->last_used = time(NULL);
+	search->last_used = time_mono(NULL);
 
 	status = pvfs_search_fill(pvfs, req, max_count, search, io->generic.data_level,
 				  &reply_count, search_private, callback);
diff --git a/source4/ntvfs/posix/vfs_posix.h b/source4/ntvfs/posix/vfs_posix.h
index 70e4c90..d60369d 100644
--- a/source4/ntvfs/posix/vfs_posix.h
+++ b/source4/ntvfs/posix/vfs_posix.h
@@ -224,7 +224,7 @@ struct pvfs_search_state {
 	uint16_t search_attrib;
 	uint16_t must_attrib;
 	struct pvfs_dir *dir;
-	time_t last_used;
+	time_t last_used; /* monotonic clock time */
 	unsigned int num_ea_names;
 	struct ea_name *ea_names;
 	struct tevent_timer *te;
diff --git a/source4/torture/basic/locking.c b/source4/torture/basic/locking.c
index cece543..71364ef 100644
--- a/source4/torture/basic/locking.c
+++ b/source4/torture/basic/locking.c
@@ -106,14 +106,14 @@ static bool torture_locktest1(struct torture_context *tctx,
 	lock_timeout = (6 + (random() % 20));
 	torture_comment(tctx, "Testing lock timeout with timeout=%u\n", 
 					lock_timeout);
-	t1 = time(NULL);
+	t1 = time_mono(NULL);
 	torture_assert(tctx, 
 		!NT_STATUS_IS_OK(smbcli_lock(cli2->tree, fnum3, 0, 4, lock_timeout * 1000, WRITE_LOCK)),
 		"lock3 succeeded! This is a locking bug\n");
 
 	if (!check_error(__location__, cli2, ERRDOS, ERRlock, 
 				 NT_STATUS_FILE_LOCK_CONFLICT)) return false;
-	t2 = time(NULL);
+	t2 = time_mono(NULL);
 
 	if (t2 - t1 < 5) {
 		torture_fail(tctx, 
diff --git a/source4/torture/basic/secleak.c b/source4/torture/basic/secleak.c
index 92dc350..4c73df1 100644
--- a/source4/torture/basic/secleak.c
+++ b/source4/torture/basic/secleak.c
@@ -62,10 +62,10 @@ static bool try_failed_login(struct torture_context *tctx, struct smbcli_state *
 
 bool torture_sec_leak(struct torture_context *tctx, struct smbcli_state *cli)
 {
-	time_t t1 = time(NULL);
+	time_t t1 = time_mono(NULL);
 	int timelimit = torture_setting_int(tctx, "timelimit", 20);
 
-	while (time(NULL) < t1+timelimit) {
+	while (time_mono(NULL) < t1+timelimit) {
 		if (!try_failed_login(tctx, cli)) {
 			return false;
 		}


-- 
Samba Shared Repository


More information about the samba-cvs mailing list