svn commit: samba r10914 - in branches/SAMBA_4_0/source: dsdb/samdb ldap_server lib lib/ldb/common lib/ldb/include nbt_server/wins scripting/ejs

tridge at samba.org tridge at samba.org
Wed Oct 12 06:30:49 GMT 2005


Author: tridge
Date: 2005-10-12 06:30:47 +0000 (Wed, 12 Oct 2005)
New Revision: 10914

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

Log:

moved the ldap time string functions into ldb so they can be used by
the time attribute handling functions


Modified:
   branches/SAMBA_4_0/source/dsdb/samdb/samdb.c
   branches/SAMBA_4_0/source/ldap_server/ldap_rootdse.c
   branches/SAMBA_4_0/source/lib/ldb/common/ldb_msg.c
   branches/SAMBA_4_0/source/lib/ldb/include/ldb.h
   branches/SAMBA_4_0/source/lib/time.c
   branches/SAMBA_4_0/source/nbt_server/wins/winsdb.c
   branches/SAMBA_4_0/source/scripting/ejs/smbcalls_sys.c


Changeset:
Modified: branches/SAMBA_4_0/source/dsdb/samdb/samdb.c
===================================================================
--- branches/SAMBA_4_0/source/dsdb/samdb/samdb.c	2005-10-12 06:10:23 UTC (rev 10913)
+++ branches/SAMBA_4_0/source/dsdb/samdb/samdb.c	2005-10-12 06:30:47 UTC (rev 10914)
@@ -909,19 +909,6 @@
 }
 
 /*
-  set a ldaptime element in a message
-*/
-int samdb_msg_set_ldaptime(struct ldb_context *sam_ldb, TALLOC_CTX *mem_ctx, struct ldb_message *msg,
-			   const char *attr_name, time_t t)
-{
-	char *str = ldap_timestring(mem_ctx, t);
-	if (!str) {
-		return -1;
-	}
-	return samdb_msg_set_string(sam_ldb, mem_ctx, msg, attr_name, str);
-}
-
-/*
   add a record
 */
 int samdb_add(struct ldb_context *sam_ldb, TALLOC_CTX *mem_ctx, struct ldb_message *msg)

Modified: branches/SAMBA_4_0/source/ldap_server/ldap_rootdse.c
===================================================================
--- branches/SAMBA_4_0/source/ldap_server/ldap_rootdse.c	2005-10-12 06:10:23 UTC (rev 10913)
+++ branches/SAMBA_4_0/source/ldap_server/ldap_rootdse.c	2005-10-12 06:30:47 UTC (rev 10914)
@@ -90,7 +90,7 @@
 	{
 		int num_currentTime = 1;
 		DATA_BLOB *currentTime = talloc_array(mem_ctx, DATA_BLOB, num_currentTime);
-		char *str = ldap_timestring(mem_ctx, time(NULL));
+		char *str = ldb_timestring(mem_ctx, time(NULL));
 		NT_STATUS_HAVE_NO_MEMORY(str);
 		currentTime[0].data = (uint8_t *)str;
 		currentTime[0].length = strlen(str);
@@ -316,7 +316,7 @@
 		for (j=0; j < ent->num_attributes; j++) {
 			if (ent->attributes[j].num_values == 1 &&
 			    ent->attributes[j].values[0].length >= 9 &&
-			    strncmp(ent->attributes[j].values[0].data, "_DYNAMIC_", 9) == 0) {
+			    strncmp((char *)ent->attributes[j].values[0].data, "_DYNAMIC_", 9) == 0) {
 				status = fill_dynamic_values(ent->attributes, &(ent->attributes[j]));
 				if (!NT_STATUS_IS_OK(status)) {
 					return status;

Modified: branches/SAMBA_4_0/source/lib/ldb/common/ldb_msg.c
===================================================================
--- branches/SAMBA_4_0/source/lib/ldb/common/ldb_msg.c	2005-10-12 06:10:23 UTC (rev 10913)
+++ branches/SAMBA_4_0/source/lib/ldb/common/ldb_msg.c	2005-10-12 06:30:47 UTC (rev 10914)
@@ -36,6 +36,7 @@
 #include "ldb/include/ldb.h"
 #include "ldb/include/ldb_errors.h"
 #include "ldb/include/ldb_private.h"
+#include <time.h>
 
 /*
   create a new ldb_message in a given memory context (NULL for top level)
@@ -594,3 +595,45 @@
 	return 0;
 }
 
+
+/*
+  return a LDAP formatted time string
+*/
+char *ldb_timestring(TALLOC_CTX *mem_ctx, time_t t)
+{
+	struct tm *tm = gmtime(&t);
+
+	if (!tm) {
+		return NULL;
+	}
+
+	/* formatted like: 20040408072012.0Z */
+	return talloc_asprintf(mem_ctx, 
+			       "%04u%02u%02u%02u%02u%02u.0Z",
+			       tm->tm_year+1900, tm->tm_mon+1,
+			       tm->tm_mday, tm->tm_hour, tm->tm_min,
+			       tm->tm_sec);
+}
+
+
+/*
+  convert a LDAP time string to a time_t. Return 0 if unable to convert
+*/
+time_t ldb_string_to_time(const char *s)
+{
+	struct tm tm;
+	
+	if (s == NULL) return 0;
+	
+	ZERO_STRUCT(tm);
+	if (sscanf(s, "%04u%02u%02u%02u%02u%02u.0Z", 
+		   &tm.tm_year, &tm.tm_mon, &tm.tm_mday, 
+		   &tm.tm_hour, &tm.tm_min, &tm.tm_sec) != 6) {
+		return 0;
+	}
+	tm.tm_year -= 1900;
+	tm.tm_mon -= 1;
+	
+	return timegm(&tm);
+}
+

Modified: branches/SAMBA_4_0/source/lib/ldb/include/ldb.h
===================================================================
--- branches/SAMBA_4_0/source/lib/ldb/include/ldb.h	2005-10-12 06:10:23 UTC (rev 10913)
+++ branches/SAMBA_4_0/source/lib/ldb/include/ldb.h	2005-10-12 06:30:47 UTC (rev 10914)
@@ -497,4 +497,7 @@
 void ldb_msg_rename_attr(struct ldb_message *msg, const char *attr, const char *replace);
 int ldb_msg_copy_attr(struct ldb_message *msg, const char *attr, const char *replace);
 
+char *ldb_timestring(TALLOC_CTX *mem_ctx, time_t t);
+time_t ldb_string_to_time(const char *s);
+
 #endif

Modified: branches/SAMBA_4_0/source/lib/time.c
===================================================================
--- branches/SAMBA_4_0/source/lib/time.c	2005-10-12 06:10:23 UTC (rev 10913)
+++ branches/SAMBA_4_0/source/lib/time.c	2005-10-12 06:30:47 UTC (rev 10914)
@@ -301,47 +301,6 @@
 	return buf;
 }
 
-/*
-  return a LDAP time string
-*/
-char *ldap_timestring(TALLOC_CTX *mem_ctx, time_t t)
-{
-	struct tm *tm = gmtime(&t);
-
-	if (!tm) {
-		return NULL;
-	}
-
-	/* formatted like: 20040408072012.0Z */
-	return talloc_asprintf(mem_ctx, 
-			       "%04u%02u%02u%02u%02u%02u.0Z",
-			       tm->tm_year+1900, tm->tm_mon+1,
-			       tm->tm_mday, tm->tm_hour, tm->tm_min,
-			       tm->tm_sec);
-}
-
-
-/*
-  convert a LDAP time string to a time_t. Return 0 if unable to convert
-*/
-time_t ldap_string_to_time(const char *s)
-{
-	struct tm tm;
-	
-	if (s == NULL) return 0;
-	
-	ZERO_STRUCT(tm);
-	if (sscanf(s, "%04u%02u%02u%02u%02u%02u.0Z", 
-		   &tm.tm_year, &tm.tm_mon, &tm.tm_mday, 
-		   &tm.tm_hour, &tm.tm_min, &tm.tm_sec) != 6) {
-		return 0;
-	}
-	tm.tm_year -= 1900;
-	tm.tm_mon -= 1;
-	
-	return timegm(&tm);
-}
-
 /****************************************************************************
  Return the date and time as a string
 ****************************************************************************/

Modified: branches/SAMBA_4_0/source/nbt_server/wins/winsdb.c
===================================================================
--- branches/SAMBA_4_0/source/nbt_server/wins/winsdb.c	2005-10-12 06:10:23 UTC (rev 10913)
+++ branches/SAMBA_4_0/source/nbt_server/wins/winsdb.c	2005-10-12 06:30:47 UTC (rev 10914)
@@ -136,7 +136,7 @@
 	rec->name           = name;
 	rec->state          = ldb_msg_find_int(res[0], "active", WINS_REC_RELEASED);
 	rec->nb_flags       = ldb_msg_find_int(res[0], "nbFlags", 0);
-	rec->expire_time    = ldap_string_to_time(ldb_msg_find_string(res[0], "expires", NULL));
+	rec->expire_time    = ldb_string_to_time(ldb_msg_find_string(res[0], "expires", NULL));
 	rec->registered_by  = ldb_msg_find_string(res[0], "registeredBy", NULL);
 	rec->version        = ldb_msg_find_uint64(res[0], "version", 0);
 	talloc_steal(rec, rec->registered_by);
@@ -187,7 +187,7 @@
 	ret |= ldb_msg_add_fmt(msg, "nbFlags", "0x%04x", rec->nb_flags);
 	ret |= ldb_msg_add_string(msg, "registeredBy", rec->registered_by);
 	ret |= ldb_msg_add_string(msg, "expires", 
-				  ldap_timestring(msg, rec->expire_time));
+				  ldb_timestring(msg, rec->expire_time));
 	ret |= ldb_msg_add_fmt(msg, "version", "%llu", rec->version);
 	for (i=0;rec->addresses[i];i++) {
 		ret |= ldb_msg_add_string(msg, "address", rec->addresses[i]);

Modified: branches/SAMBA_4_0/source/scripting/ejs/smbcalls_sys.c
===================================================================
--- branches/SAMBA_4_0/source/scripting/ejs/smbcalls_sys.c	2005-10-12 06:10:23 UTC (rev 10913)
+++ branches/SAMBA_4_0/source/scripting/ejs/smbcalls_sys.c	2005-10-12 06:30:47 UTC (rev 10914)
@@ -23,6 +23,7 @@
 #include "includes.h"
 #include "scripting/ejs/smbcalls.h"
 #include "lib/appweb/ejs/ejs.h"
+#include "lib/ldb/include/ldb.h"
 #include "system/time.h"
 
 /*
@@ -111,7 +112,7 @@
 		return -1;
 	}
 	t = nt_time_to_unix(mprVarToNumber(argv[0]));
-	s = ldap_timestring(mprMemCtx(), t);
+	s = ldb_timestring(mprMemCtx(), t);
 	mpr_Return(eid, mprString(s));
 	talloc_free(s);
 	return 0;



More information about the samba-cvs mailing list