svn commit: samba r13197 - branches/SAMBA_3_0/source/tdb
trunk/source/tdb
lmuelle at samba.org
lmuelle at samba.org
Fri Jan 27 21:49:02 GMT 2006
Author: lmuelle
Date: 2006-01-27 21:49:01 +0000 (Fri, 27 Jan 2006)
New Revision: 13197
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=13197
Log:
Add -k switch to dump the data of a single key.
Modified:
branches/SAMBA_3_0/source/tdb/tdbdump.c
trunk/source/tdb/tdbdump.c
Changeset:
Modified: branches/SAMBA_3_0/source/tdb/tdbdump.c
===================================================================
--- branches/SAMBA_3_0/source/tdb/tdbdump.c 2006-01-27 21:35:50 UTC (rev 13196)
+++ branches/SAMBA_3_0/source/tdb/tdbdump.c 2006-01-27 21:49:01 UTC (rev 13197)
@@ -59,9 +59,10 @@
return 0;
}
-static int dump_tdb(const char *fname)
+static int dump_tdb(const char *fname, const char *keyname)
{
TDB_CONTEXT *tdb;
+ TDB_DATA key, value;
tdb = tdb_open(fname, 0, 0, O_RDONLY, 0);
if (!tdb) {
@@ -69,20 +70,55 @@
return 1;
}
- tdb_traverse(tdb, traverse_fn, NULL);
+ if (!keyname) {
+ tdb_traverse(tdb, traverse_fn, NULL);
+ } else {
+ key.dptr = (char *)keyname;
+ key.dsize = strlen( keyname);
+ value = tdb_fetch(tdb, key);
+ if (!value.dptr) {
+ return 1;
+ } else {
+ print_data(value);
+ free(value.dptr);
+ }
+ }
+
return 0;
}
+static void usage( void)
+{
+ printf( "Usage: tdbdump [options] <filename>\n\n");
+ printf( " -h this help message\n");
+ printf( " -k keyname dumps value of keyname\n");
+}
+
int main(int argc, char *argv[])
{
- char *fname;
+ char *fname, *keyname=NULL;
+ int c;
if (argc < 2) {
printf("Usage: tdbdump <fname>\n");
exit(1);
}
- fname = argv[1];
+ while ((c = getopt( argc, argv, "hk:")) != -1) {
+ switch (c) {
+ case 'h':
+ usage();
+ exit( 0);
+ case 'k':
+ keyname = optarg;
+ break;
+ default:
+ usage();
+ exit( 1);
+ }
+ }
- return dump_tdb(fname);
+ fname = argv[optind];
+
+ return dump_tdb(fname, keyname);
}
Modified: trunk/source/tdb/tdbdump.c
===================================================================
--- trunk/source/tdb/tdbdump.c 2006-01-27 21:35:50 UTC (rev 13196)
+++ trunk/source/tdb/tdbdump.c 2006-01-27 21:49:01 UTC (rev 13197)
@@ -59,9 +59,10 @@
return 0;
}
-static int dump_tdb(const char *fname)
+static int dump_tdb(const char *fname, const char *keyname)
{
TDB_CONTEXT *tdb;
+ TDB_DATA key, value;
tdb = tdb_open(fname, 0, 0, O_RDONLY, 0);
if (!tdb) {
@@ -69,20 +70,55 @@
return 1;
}
- tdb_traverse(tdb, traverse_fn, NULL);
+ if (!keyname) {
+ tdb_traverse(tdb, traverse_fn, NULL);
+ } else {
+ key.dptr = (char *)keyname;
+ key.dsize = strlen( keyname);
+ value = tdb_fetch(tdb, key);
+ if (!value.dptr) {
+ return 1;
+ } else {
+ print_data(value);
+ free(value.dptr);
+ }
+ }
+
return 0;
}
+static void usage( void)
+{
+ printf( "Usage: tdbdump [options] <filename>\n\n");
+ printf( " -h this help message\n");
+ printf( " -k keyname dumps value of keyname\n");
+}
+
int main(int argc, char *argv[])
{
- char *fname;
+ char *fname, *keyname=NULL;
+ int c;
if (argc < 2) {
printf("Usage: tdbdump <fname>\n");
exit(1);
}
- fname = argv[1];
+ while ((c = getopt( argc, argv, "hk:")) != -1) {
+ switch (c) {
+ case 'h':
+ usage();
+ exit( 0);
+ case 'k':
+ keyname = optarg;
+ break;
+ default:
+ usage();
+ exit( 1);
+ }
+ }
- return dump_tdb(fname);
+ fname = argv[optind];
+
+ return dump_tdb(fname, keyname);
}
More information about the samba-cvs
mailing list