svn commit: samba r21193 - in branches/SAMBA_3_0_25/source/tdb: . common include tools

jerry at samba.org jerry at samba.org
Tue Feb 6 21:10:13 GMT 2007


Author: jerry
Date: 2007-02-06 21:10:08 +0000 (Tue, 06 Feb 2007)
New Revision: 21193

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

Log:
sync tdb code from SAMBA_3_0
Added:
   branches/SAMBA_3_0_25/source/tdb/common/freelistcheck.c
Modified:
   branches/SAMBA_3_0_25/source/tdb/Makefile.in
   branches/SAMBA_3_0_25/source/tdb/autogen.sh
   branches/SAMBA_3_0_25/source/tdb/common/freelist.c
   branches/SAMBA_3_0_25/source/tdb/common/tdb_private.h
   branches/SAMBA_3_0_25/source/tdb/config.m4
   branches/SAMBA_3_0_25/source/tdb/include/tdb.h
   branches/SAMBA_3_0_25/source/tdb/tools/tdbtest.c


Changeset:
Modified: branches/SAMBA_3_0_25/source/tdb/Makefile.in
===================================================================
--- branches/SAMBA_3_0_25/source/tdb/Makefile.in	2007-02-06 21:08:35 UTC (rev 21192)
+++ branches/SAMBA_3_0_25/source/tdb/Makefile.in	2007-02-06 21:10:08 UTC (rev 21193)
@@ -12,13 +12,19 @@
 VPATH = @srcdir@:@libreplacedir@
 srcdir = @srcdir@
 builddir = @builddir@
-CFLAGS = -I$(srcdir)/include -Iinclude -I at libreplacedir@ @CFLAGS@
+CPPFLAGS = @CPPFLAGS@ -I$(srcdir)/include -Iinclude -I../include -I at libreplacedir@
+CFLAGS = $(CPPFLAGS) @CFLAGS@
+LDFLAGS = @LDFLAGS@
+EXEEXT = @EXEEXT@
 
 .PHONY: test
 
-PROGS = bin/tdbtool bin/tdbtorture
-TDB_OBJ = @TDBOBJ@ @LIBREPLACEOBJ@
+PROGS = bin/tdbtool$(EXEEXT) bin/tdbtorture$(EXEEXT)
+PROGS_NOINSTALL = bin/tdbtest$(EXEEXT) bin/tdbdump$(EXEEXT) bin/tdbbackup$(EXEEXT)
+ALL_PROGS = $(PROGS) $(PROGS_NOINSTALL)
 
+TDB_OBJ = @TDBOBJ@
+
 DIRS = bin common tools
 
 all: showflags dirs $(PROGS)
@@ -26,6 +32,8 @@
 showflags:
 	@echo 'tdb will be compiled with flags:'
 	@echo '  CFLAGS = $(CFLAGS)'
+	@echo '  CPPFLAGS = $(CPPFLAGS)'
+	@echo '  LDFLAGS = $(LDFLAGS)'
 	@echo '  LIBS = $(LIBS)'
 
 .c.o:
@@ -48,28 +56,28 @@
 libtdb.a: $(TDB_OBJ)
 	ar -rv libtdb.a $(TDB_OBJ)
 
-bin/tdbtest: tools/tdbtest.o libtdb.a
-	$(CC) $(CFLAGS) -o bin/tdbtest tools/tdbtest.o -L. -ltdb -lgdbm
+bin/tdbtest$(EXEEXT): tools/tdbtest.o libtdb.a
+	$(CC) $(CFLAGS) $(LDFLAGS) -o bin/tdbtest tools/tdbtest.o -L. -ltdb -lgdbm
 
-bin/tdbtool: tools/tdbtool.o libtdb.a
-	$(CC) $(CFLAGS) -o bin/tdbtool tools/tdbtool.o -L. -ltdb
+bin/tdbtool$(EXEEXT): tools/tdbtool.o libtdb.a
+	$(CC) $(CFLAGS) $(LDFLAGS) -o bin/tdbtool tools/tdbtool.o -L. -ltdb
 
-bin/tdbtorture: tools/tdbtorture.o libtdb.a
-	$(CC) $(CFLAGS) -o bin/tdbtorture tools/tdbtorture.o -L. -ltdb
+bin/tdbtorture$(EXEEXT): tools/tdbtorture.o libtdb.a
+	$(CC) $(CFLAGS) $(LDFLAGS) -o bin/tdbtorture tools/tdbtorture.o -L. -ltdb
 
-bin/tdbdump: tools/tdbdump.o libtdb.a
-	$(CC) $(CFLAGS) -o bin/tdbdump tools/tdbdump.o -L. -ltdb
+bin/tdbdump$(EXEEXT): tools/tdbdump.o libtdb.a
+	$(CC) $(CFLAGS) $(LDFLAGS) -o bin/tdbdump tools/tdbdump.o -L. -ltdb
 
-bin/tdbbackup: tools/tdbbackup.o libtdb.a
-	$(CC) $(CFLAGS) -o bin/tdbbackup tools/tdbbackup.o -L. -ltdb
+bin/tdbbackup$(EXEEXT): tools/tdbbackup.o libtdb.a
+	$(CC) $(CFLAGS) $(LDFLAGS) -o bin/tdbbackup tools/tdbbackup.o -L. -ltdb
 
-test: bin/tdbtorture
-	bin/tdbtorture
+test: bin/tdbtorture$(EXEEXT)
+	bin/tdbtorture$(EXEEXT)
 
 installcheck: test install
 
 clean:
-	rm -f $(PROGS) *.o *.a common/*.o tools/*.o tdb.pc
+	rm -f $(ALL_PROGS) *.o *.a common/*.o tools/*.o tdb.pc
 	rm -f test.db test.tdb torture.tdb test.gdbm
 
 distclean: clean

Modified: branches/SAMBA_3_0_25/source/tdb/autogen.sh
===================================================================
--- branches/SAMBA_3_0_25/source/tdb/autogen.sh	2007-02-06 21:08:35 UTC (rev 21192)
+++ branches/SAMBA_3_0_25/source/tdb/autogen.sh	2007-02-06 21:10:08 UTC (rev 21193)
@@ -3,7 +3,7 @@
 rm -rf autom4te.cache
 rm -f configure config.h.in
 
-IPATHS="-I libreplace -I lib/replace -I ../libreplace -I ../replace"
+IPATHS="-I libreplace -I lib/replace -I ../libreplace -I ../replace -I ../lib/replace"
 autoconf $IPATHS || exit 1
 autoheader $IPATHS || exit 1
 

Modified: branches/SAMBA_3_0_25/source/tdb/common/freelist.c
===================================================================
--- branches/SAMBA_3_0_25/source/tdb/common/freelist.c	2007-02-06 21:08:35 UTC (rev 21192)
+++ branches/SAMBA_3_0_25/source/tdb/common/freelist.c	2007-02-06 21:10:08 UTC (rev 21193)
@@ -29,7 +29,7 @@
 #include "tdb_private.h"
 
 /* read a freelist record and check for simple errors */
-static int rec_free_read(struct tdb_context *tdb, tdb_off_t off, struct list_struct *rec)
+int rec_free_read(struct tdb_context *tdb, tdb_off_t off, struct list_struct *rec)
 {
 	if (tdb->methods->tdb_read(tdb, off, rec, sizeof(*rec),DOCONV()) == -1)
 		return -1;

Copied: branches/SAMBA_3_0_25/source/tdb/common/freelistcheck.c (from rev 21182, branches/SAMBA_3_0/source/tdb/common/freelistcheck.c)

Modified: branches/SAMBA_3_0_25/source/tdb/common/tdb_private.h
===================================================================
--- branches/SAMBA_3_0_25/source/tdb/common/tdb_private.h	2007-02-06 21:08:35 UTC (rev 21192)
+++ branches/SAMBA_3_0_25/source/tdb/common/tdb_private.h	2007-02-06 21:10:08 UTC (rev 21193)
@@ -198,5 +198,7 @@
 			   struct list_struct *rec);
 void tdb_io_init(struct tdb_context *tdb);
 int tdb_expand(struct tdb_context *tdb, tdb_off_t size);
+int rec_free_read(struct tdb_context *tdb, tdb_off_t off,
+		  struct list_struct *rec);
 
 

Modified: branches/SAMBA_3_0_25/source/tdb/config.m4
===================================================================
--- branches/SAMBA_3_0_25/source/tdb/config.m4	2007-02-06 21:08:35 UTC (rev 21192)
+++ branches/SAMBA_3_0_25/source/tdb/config.m4	2007-02-06 21:10:08 UTC (rev 21193)
@@ -1,3 +1,24 @@
+dnl find the tdb sources. This is meant to work both for
+dnl tdb standalone builds, and builds of packages using tdb
+tdbdir=""
+tdbpaths="$srcdir $srcdir/lib/tdb $srcdir/tdb $srcdir/../tdb"
+for d in $tdbpaths; do
+        if test -f "$d/common/tdb.c"; then
+                tdbdir="$d"
+                AC_SUBST(tdbdir)
+                break;
+        fi
+done
+if test x"$tdbdir" = "x"; then
+   AC_MSG_ERROR([cannot find tdb source in $tdbpaths])
+fi
+TDBOBJ="common/tdb.o common/dump.o common/transaction.o common/error.o common/traverse.o"
+TDBOBJ="$TDBOBJ common/freelist.o common/freelistcheck.o common/io.o common/lock.o common/open.o"
+AC_SUBST(TDBOBJ)
+
+libreplacedir=../lib/replace
+AC_SUBST(libreplacedir)
+
 AC_CHECK_FUNCS(mmap pread pwrite getpagesize utime)
 AC_CHECK_HEADERS(getopt.h sys/select.h sys/time.h)
 

Modified: branches/SAMBA_3_0_25/source/tdb/include/tdb.h
===================================================================
--- branches/SAMBA_3_0_25/source/tdb/include/tdb.h	2007-02-06 21:08:35 UTC (rev 21192)
+++ branches/SAMBA_3_0_25/source/tdb/include/tdb.h	2007-02-06 21:10:08 UTC (rev 21193)
@@ -136,6 +136,7 @@
 /* Debug functions. Not used in production. */
 void tdb_dump_all(struct tdb_context *tdb);
 int tdb_printfreelist(struct tdb_context *tdb);
+int tdb_validate_freelist(struct tdb_context *tdb, int *pnum_entries);
 
 extern TDB_DATA tdb_null;
 

Modified: branches/SAMBA_3_0_25/source/tdb/tools/tdbtest.c
===================================================================
--- branches/SAMBA_3_0_25/source/tdb/tools/tdbtest.c	2007-02-06 21:08:35 UTC (rev 21192)
+++ branches/SAMBA_3_0_25/source/tdb/tools/tdbtest.c	2007-02-06 21:10:08 UTC (rev 21193)
@@ -219,6 +219,7 @@
 {
 	int i, seed=0;
 	int loops = 10000;
+	int num_entries;
 	char test_gdbm[] = "test.gdbm";
 
 	unlink("test.gdbm");
@@ -232,8 +233,6 @@
 		fatal("db open failed");
 	}
 
-	tdb_logging_function(db, tdb_log);
-	
 #if 1
 	srand(seed);
 	_start_timer();
@@ -248,6 +247,12 @@
 	for (i=0;i<loops;i++) addrec_db();
 	printf("tdb got %.2f ops/sec\n", i/_end_timer());
 
+	if (tdb_validate_freelist(db, &num_entries) == -1) {
+		printf("tdb freelist is corrupt\n");
+	} else {
+		printf("tdb freelist is good (%d entries)\n", num_entries);
+	}
+
 	compare_db();
 
 	printf("traversed %d records\n", tdb_traverse(db, traverse_fn, NULL));



More information about the samba-cvs mailing list