[PATCH 4/6] s3-printing: remove printer_list_need_refresh

David Disseldorp ddiss at suse.de
Tue Dec 28 07:54:54 MST 2010


printer_list_need_refresh() was used previously to ensure one smbd
process did not attempt to update the printer_list tdb during or soon
after update by another smbd.

It is no longer needed, as pcap updates are now only performed by the
parent smbd process following startup, SIGHUP, config update or printcap
cache time expiry.
---
 source3/printing/pcap.c         |    6 ------
 source3/printing/printer_list.c |   26 --------------------------
 source3/printing/printer_list.h |    9 ---------
 3 files changed, 0 insertions(+), 41 deletions(-)

diff --git a/source3/printing/pcap.c b/source3/printing/pcap.c
index e1085ba..e1d58ce 100644
--- a/source3/printing/pcap.c
+++ b/source3/printing/pcap.c
@@ -139,12 +139,6 @@ void pcap_cache_reload(struct tevent_context *ev,
 		return;
 	}
 
-	if (!printer_list_need_refresh()) {
-		/* has been just refeshed, skip */
-		DEBUG(5, ("Refresh just happend, skipping.\n"));
-		return;
-	}
-
 	status = printer_list_mark_reload();
 	if (!NT_STATUS_IS_OK(status)) {
 		DEBUG(0, ("Failed to mark printer list for reload!\n"));
diff --git a/source3/printing/printer_list.c b/source3/printing/printer_list.c
index f3f00f0..d36a746 100644
--- a/source3/printing/printer_list.c
+++ b/source3/printing/printer_list.c
@@ -215,32 +215,6 @@ done:
 	return status;
 }
 
-bool printer_list_need_refresh(void)
-{
-	NTSTATUS status;
-	time_t last_refresh;
-	int timediff;
-
-	status = printer_list_get_last_refresh(&last_refresh);
-	if (!NT_STATUS_IS_OK(status)) {
-		return true;
-	}
-	timediff = time_mono(NULL) - last_refresh;
-
-	if (timediff > 1 ) {
-		/* if refresh occurred more than 1s (TODO:use lp_printcap_cache_time) ago,
-		 * then we need to refresh */
-		return true;
-	} else if (timediff < 0) {
-		/* last_refresh newer than now. Seems we have no monotonic
-		 * clock and the clock was adjusted backwards.
-		 * we need to refresh which also resets last_refresh */
-		return true;
-	}
-
-	return false;
-}
-
 NTSTATUS printer_list_mark_reload(void)
 {
 	struct db_context *db;
diff --git a/source3/printing/printer_list.h b/source3/printing/printer_list.h
index bdcf308..fce3e34 100644
--- a/source3/printing/printer_list.h
+++ b/source3/printing/printer_list.h
@@ -96,13 +96,4 @@ NTSTATUS printer_list_clean_old(void);
 
 NTSTATUS printer_list_run_fn(void (*fn)(const char *, const char *, void *),
 			     void *private_data);
-
-/**
- * @brief Check if the printer list needs to be refreshed.
- *
- * @return              True if the database needs to be refreshed, false if
- *                      not.
- */
-bool printer_list_need_refresh(void);
-
 #endif /* _PRINTER_LIST_H_ */
-- 
1.7.1


--MP_/Db.Efq6a5W1YjEvpEDSnP+4--


More information about the samba-technical mailing list