[Fedora-directory-commits] ldapserver/ldap/servers/slapd/back-ldbm proto-back-ldbm.h, 1.16, 1.17 dblayer.c, 1.32, 1.33 dbverify.c, 1.3, 1.4
Noriko Hosoi
nhosoi at fedoraproject.org
Wed Nov 19 02:52:45 UTC 2008
- Previous message (by thread): [Fedora-directory-commits] ldapserver/ldap/servers/slapd/tools/ldclt ldapfct.c, 1.8, 1.9 ldclt.c, 1.6, 1.7 ldclt.h, 1.5, 1.6 ldcltU.c, 1.4, 1.5 threadMain.c, 1.3, 1.4
- Next message (by thread): [Fedora-directory-commits] ldapserver/ldap/servers/slapd/back-ldbm dblayer.c, 1.33, 1.34
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: nhosoi
Update of /cvs/dirsec/ldapserver/ldap/servers/slapd/back-ldbm
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv10528
Modified Files:
proto-back-ldbm.h dblayer.c dbverify.c
Log Message:
Resolves: #471998
Summary: dbverify: support integer type index
Description:
1) changed dblayer_bt_compare to public (proto-back-ldbm.h, dblayer.c)
2) set dblayer_bt_compare by dbp->set_bt_compare if the attribute has a
comparison function set in ai->ai_key_cmp_fn (dbverify.c)
3) cleaned up the function dbverify_ext; set the right page size based upon the
idl type (new idl or old idl), also set dup compare function only when the idl
type is new. (dbverify.c)
Index: proto-back-ldbm.h
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/back-ldbm/proto-back-ldbm.h,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- proto-back-ldbm.h 24 Oct 2008 23:28:22 -0000 1.16
+++ proto-back-ldbm.h 19 Nov 2008 02:52:41 -0000 1.17
@@ -170,6 +170,8 @@
int dblayer_db_uses_transactions(DB_ENV *db_env);
int dblayer_db_uses_mpool(DB_ENV *db_env);
int dblayer_db_uses_logging(DB_ENV *db_env);
+int dblayer_bt_compare(DB *db, const DBT *dbt1, const DBT *dbt2);
+
/*
* dn2entry.c
Index: dblayer.c
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/back-ldbm/dblayer.c,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -r1.32 -r1.33
--- dblayer.c 17 Oct 2008 17:13:55 -0000 1.32
+++ dblayer.c 19 Nov 2008 02:52:42 -0000 1.33
@@ -243,7 +243,7 @@
see also DBTcmp
*/
-static int
+int
dblayer_bt_compare(DB *db, const DBT *dbt1, const DBT *dbt2)
{
struct berval bv1, bv2;
Index: dbverify.c
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/back-ldbm/dbverify.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- dbverify.c 8 Oct 2008 17:29:03 -0000 1.3
+++ dbverify.c 19 Nov 2008 02:52:42 -0000 1.4
@@ -111,25 +111,67 @@
"Unable to create id2entry db file %d\n", rval);
return rval;
}
+
#define VLVPREFIX "vlv#"
- if ((0 != strncmp(direntry->name, ID2ENTRY, strlen(ID2ENTRY))) &&
- (0 != strncmp(direntry->name, VLVPREFIX, strlen(VLVPREFIX))))
+ if (0 != strncmp(direntry->name, ID2ENTRY, strlen(ID2ENTRY)))
{
- rval = dbp->set_flags(dbp, DB_DUP | DB_DUPSORT);
- if (0 != rval)
+ struct attrinfo *ai = NULL;
+ char *p = NULL;
+ p = strstr(filep, LDBM_FILENAME_SUFFIX); /* since already checked,
+ it must have it */
+ *p = '\0';
+ ainfo_get( inst->inst_be, filep+1, &ai );
+ *p = '.';
+ if (ai->ai_key_cmp_fn) {
+ dbp->app_private = (void *)ai->ai_key_cmp_fn;
+ dbp->set_bt_compare(dbp, dblayer_bt_compare);
+ }
+ if (idl_get_idl_new())
+ {
+ rval = dbp->set_pagesize(dbp,
+ (priv->dblayer_index_page_size == 0) ?
+ DBLAYER_INDEX_PAGESIZE : priv->dblayer_index_page_size);
+ }
+ else
{
- slapi_log_error(SLAPI_LOG_FATAL, "DB verify",
- "Unable to set DUP flags to db %d\n", rval);
- return rval;
+ rval = dbp->set_pagesize(dbp,
+ (priv->dblayer_page_size == 0) ?
+ DBLAYER_PAGESIZE : priv->dblayer_page_size);
}
-
- rval = dbp->set_dup_compare(dbp, idl_new_compare_dups);
if (0 != rval)
{
slapi_log_error(SLAPI_LOG_FATAL, "DB verify",
- "Unable to set dup_compare to db %d\n", rval);
+ "Unable to set pagesize flags to db (%d)\n", rval);
return rval;
}
+ if (0 == strncmp(direntry->name, VLVPREFIX, strlen(VLVPREFIX)))
+ {
+ rval = dbp->set_flags(dbp, DB_RECNUM);
+ if (0 != rval)
+ {
+ slapi_log_error(SLAPI_LOG_FATAL, "DB verify",
+ "Unable to set RECNUM flag to vlv index (%d)\n", rval);
+ return rval;
+ }
+ }
+ else if (idl_get_idl_new())
+ {
+ rval = dbp->set_flags(dbp, DB_DUP | DB_DUPSORT);
+ if (0 != rval)
+ {
+ slapi_log_error(SLAPI_LOG_FATAL, "DB verify",
+ "Unable to set DUP flags to db (%d)\n", rval);
+ return rval;
+ }
+
+ rval = dbp->set_dup_compare(dbp, idl_new_compare_dups);
+ if (0 != rval)
+ {
+ slapi_log_error(SLAPI_LOG_FATAL, "DB verify",
+ "Unable to set dup_compare to db (%d)\n", rval);
+ return rval;
+ }
+ }
}
#undef VLVPREFIX
rval = dbp->verify(dbp, dbdir, NULL, NULL, 0);
- Previous message (by thread): [Fedora-directory-commits] ldapserver/ldap/servers/slapd/tools/ldclt ldapfct.c, 1.8, 1.9 ldclt.c, 1.6, 1.7 ldclt.h, 1.5, 1.6 ldcltU.c, 1.4, 1.5 threadMain.c, 1.3, 1.4
- Next message (by thread): [Fedora-directory-commits] ldapserver/ldap/servers/slapd/back-ldbm dblayer.c, 1.33, 1.34
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the Fedora-directory-commits
mailing list