svn commit: samba r19274 - in branches/SAMBA_4_0/source/lib/ldb/tools: .

tridge at samba.org tridge at samba.org
Sat Oct 14 08:26:10 GMT 2006


Author: tridge
Date: 2006-10-14 08:26:10 +0000 (Sat, 14 Oct 2006)
New Revision: 19274

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

Log:

fix ldbdel and ldbmodify to return an error if the underlying ldb call
fails

Modified:
   branches/SAMBA_4_0/source/lib/ldb/tools/ldbdel.c
   branches/SAMBA_4_0/source/lib/ldb/tools/ldbmodify.c


Changeset:
Modified: branches/SAMBA_4_0/source/lib/ldb/tools/ldbdel.c
===================================================================
--- branches/SAMBA_4_0/source/lib/ldb/tools/ldbdel.c	2006-10-14 04:43:51 UTC (rev 19273)
+++ branches/SAMBA_4_0/source/lib/ldb/tools/ldbdel.c	2006-10-14 08:26:10 UTC (rev 19274)
@@ -76,7 +76,7 @@
 int main(int argc, const char **argv)
 {
 	struct ldb_context *ldb;
-	int ret, i;
+	int ret = 0, i;
 	struct ldb_cmdline *options;
 
 	ldb_global_init();
@@ -115,5 +115,5 @@
 
 	talloc_free(ldb);
 
-	return 0;
+	return ret;
 }

Modified: branches/SAMBA_4_0/source/lib/ldb/tools/ldbmodify.c
===================================================================
--- branches/SAMBA_4_0/source/lib/ldb/tools/ldbmodify.c	2006-10-14 04:43:51 UTC (rev 19273)
+++ branches/SAMBA_4_0/source/lib/ldb/tools/ldbmodify.c	2006-10-14 08:26:10 UTC (rev 19274)
@@ -53,10 +53,10 @@
 /*
   process modifies for one file
 */
-static int process_file(struct ldb_context *ldb, FILE *f)
+static int process_file(struct ldb_context *ldb, FILE *f, int *count)
 {
 	struct ldb_ldif *ldif;
-	int ret = -1, count = 0;
+	int ret = LDB_SUCCESS;
 	
 	while ((ldif = ldb_ldif_read_file(ldb, f))) {
 		switch (ldif->changetype) {
@@ -71,24 +71,24 @@
 			ret = ldb_modify(ldb, ldif->msg);
 			break;
 		}
-		if (ret != 0) {
+		if (ret != LDB_SUCCESS) {
 			fprintf(stderr, "ERR: \"%s\" on DN %s\n", 
 				ldb_errstring(ldb), ldb_dn_linearize(ldb, ldif->msg->dn));
 			failures++;
 		} else {
-			count++;
+			(*count)++;
 		}
 		ldb_ldif_read_free(ldb, ldif);
 	}
 
-	return count;
+	return ret;
 }
 
 int main(int argc, const char **argv)
 {
 	struct ldb_context *ldb;
 	int count=0;
-	int i;
+	int i, ret=LDB_SUCCESS;
 	struct ldb_cmdline *options;
 
 	ldb_global_init();
@@ -98,7 +98,7 @@
 	options = ldb_cmdline_process(ldb, argc, argv, usage);
 
 	if (options->argc == 0) {
-		count += process_file(ldb, stdin);
+		ret = process_file(ldb, stdin, &count);
 	} else {
 		for (i=0;i<options->argc;i++) {
 			const char *fname = options->argv[i];
@@ -108,7 +108,7 @@
 				perror(fname);
 				exit(1);
 			}
-			count += process_file(ldb, f);
+			ret = process_file(ldb, f, &count);
 		}
 	}
 
@@ -116,9 +116,5 @@
 
 	printf("Modified %d records with %d failures\n", count, failures);
 
-	if (failures != 0) {
-		return -1;
-	}
-	
-	return 0;
+	return ret;
 }



More information about the samba-cvs mailing list