[SCM] Samba Shared Repository - branch master updated

Andreas Schneider asn at samba.org
Wed Nov 26 06:51:02 MST 2014


The branch, master has been updated
       via  ec0c9ad lib: Use tdb_parse_record in gencache_set
      from  d32b66b dns_server: Only build common library if AD DC is enabled.

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


- Log -----------------------------------------------------------------
commit ec0c9ad0994d35e22ecc50e552d14582c51622b1
Author: Volker Lendecke <vl at samba.org>
Date:   Tue Nov 25 21:03:18 2014 +0000

    lib: Use tdb_parse_record in gencache_set
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Andreas Schneider <asn at samba.org>
    
    Autobuild-User(master): Andreas Schneider <asn at cryptomilk.org>
    Autobuild-Date(master): Wed Nov 26 14:50:38 CET 2014 on sn-devel-104

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

Summary of changes:
 source3/lib/gencache.c | 22 +++++++++++++++-------
 1 file changed, 15 insertions(+), 7 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/lib/gencache.c b/source3/lib/gencache.c
index 3192b45..5ee406b 100644
--- a/source3/lib/gencache.c
+++ b/source3/lib/gencache.c
@@ -251,6 +251,17 @@ static bool gencache_have_val(const char *keystr, const DATA_BLOB *data,
 	return state.gotit;
 }
 
+static int last_stabilize_parser(TDB_DATA key, TDB_DATA data,
+				 void *private_data)
+{
+	time_t *last_stabilize = private_data;
+
+	if ((data.dsize != 0) && (data.dptr[data.dsize-1] == '\0')) {
+		*last_stabilize = atoi((char *)data.dptr);
+	}
+	return 0;
+}
+
 /**
  * Set an entry in the cache file. If there's no such
  * one, then add it.
@@ -267,7 +278,6 @@ bool gencache_set_data_blob(const char *keystr, const DATA_BLOB *blob,
 			    time_t timeout)
 {
 	int ret;
-	TDB_DATA databuf;
 	char* val;
 	time_t last_stabilize;
 	static int writecount;
@@ -337,12 +347,10 @@ bool gencache_set_data_blob(const char *keystr, const DATA_BLOB *blob,
 	 */
 
 	last_stabilize = 0;
-	databuf = tdb_fetch_compat(cache_notrans, last_stabilize_key());
-	if ((databuf.dptr != NULL)
-	    && (databuf.dptr[databuf.dsize-1] == '\0')) {
-		last_stabilize = atoi((char *)databuf.dptr);
-		SAFE_FREE(databuf.dptr);
-	}
+
+	tdb_parse_record(cache_notrans, last_stabilize_key(),
+			 last_stabilize_parser, &last_stabilize);
+
 	if ((last_stabilize
 	     + lp_parm_int(-1, "gencache", "stabilize_interval", 300))
 	    < time(NULL)) {


-- 
Samba Shared Repository


More information about the samba-cvs mailing list