[SCM] Samba Shared Repository - branch v3-3-test updated - release-3-2-0pre2-4699-gc46c21c

Karolin Seeger kseeger at samba.org
Tue Dec 16 12:55:03 GMT 2008


The branch, v3-3-test has been updated
       via  c46c21cde33a9cc1de9d947de64c27052ecce988 (commit)
       via  12629532985ac9fdc900d8811c33651587d0796d (commit)
      from  37543c74d72c1e76df6ff8eeae45883777044bf5 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-3-test


- Log -----------------------------------------------------------------
commit c46c21cde33a9cc1de9d947de64c27052ecce988
Author: Holger Hetterich <hhetter at novell.com>
Date:   Thu Nov 20 10:32:14 2008 +0100

    Add an entry for the "check" command to the tdbtool manpage.

commit 12629532985ac9fdc900d8811c33651587d0796d
Author: Holger Hetterich <hhetter at novell.com>
Date:   Sun Nov 2 00:12:32 2008 +0100

    Added a simple tdb integrity check to tdbtool. The command "check" runs traverse on the currently open tdb, and returns the number of entries if the integrity check is successful.

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

Summary of changes:
 docs-xml/manpages-3/tdbtool.8.xml |    8 ++++++++
 source/lib/tdb/tools/tdbtool.c    |   27 +++++++++++++++++++++++++++
 2 files changed, 35 insertions(+), 0 deletions(-)


Changeset truncated at 500 lines:

diff --git a/docs-xml/manpages-3/tdbtool.8.xml b/docs-xml/manpages-3/tdbtool.8.xml
index 48d4d03..c4b9127 100644
--- a/docs-xml/manpages-3/tdbtool.8.xml
+++ b/docs-xml/manpages-3/tdbtool.8.xml
@@ -193,6 +193,14 @@
 
 		<varlistentry>
 		<term>
+		<option>check</option>
+		</term>
+		<listitem><para>Check the integrity of the current database.
+		</para></listitem>
+		</varlistentry>
+
+		<varlistentry>
+		<term>
 		<option>quit</option>
 		</term>
 		<listitem><para>Exit <command>tdbtool</command>.
diff --git a/source/lib/tdb/tools/tdbtool.c b/source/lib/tdb/tools/tdbtool.c
index d104ccd..35f7f20 100644
--- a/source/lib/tdb/tools/tdbtool.c
+++ b/source/lib/tdb/tools/tdbtool.c
@@ -57,6 +57,7 @@ enum commands {
 	CMD_FIRST,
 	CMD_NEXT,
 	CMD_SYSTEM,
+	CMD_CHECK,
 	CMD_QUIT,
 	CMD_HELP
 };
@@ -87,6 +88,7 @@ COMMAND_TABLE cmd_table[] = {
 	{"1",		CMD_FIRST},
 	{"next",	CMD_NEXT},
 	{"n",		CMD_NEXT},
+	{"check",	CMD_CHECK},
 	{"quit",	CMD_QUIT},
 	{"q",		CMD_QUIT},
 	{"!",		CMD_SYSTEM},
@@ -179,6 +181,7 @@ static void help(void)
 "  delete    key        : delete a record by key\n"
 "  list                 : print the database hash table and freelist\n"
 "  free                 : print the database freelist\n"
+"  check                : check the integrity of an opened database\n"
 "  ! command            : execute system command\n"             
 "  1 | first            : print the first record\n"
 "  n | next             : print the next record\n"
@@ -452,6 +455,27 @@ static void next_record(TDB_CONTEXT *the_tdb, TDB_DATA *pkey)
 		print_rec(the_tdb, *pkey, dbuf, NULL);
 }
 
+static int test_fn(TDB_CONTEXT *tdb, TDB_DATA key, TDB_DATA dbuf, void *state)
+{
+	return 0;
+}
+
+static void check_db(TDB_CONTEXT *the_tdb)
+{
+	int tdbcount=-1;
+	if (the_tdb) {
+		tdbcount = tdb_traverse(the_tdb, test_fn, NULL);
+	} else {
+		printf("Error: No database opened!\n");
+	}
+
+	if (tdbcount<0) {
+		printf("Integrity check for the opened database failed.\n");
+	} else {
+		printf("Database integrity is OK and has %d records.\n", tdbcount);
+	}
+}
+
 static int do_command(void)
 {
 	COMMAND_TABLE *ctp = cmd_table;
@@ -552,6 +576,9 @@ static int do_command(void)
 	       if (bIterate)
 		  next_record(tdb, &iterate_kbuf);
 		return 0;
+	    case CMD_CHECK:
+		check_db(tdb);
+		return 0;
 	    case CMD_HELP:
 		help();
 		return 0;


-- 
Samba Shared Repository


More information about the samba-cvs mailing list