Author: rmeggins
Update of /cvs/dirsec/ldapserver/ldap/servers/slapd/back-ldbm
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv11117/ldapserver/ldap/servers/slapd/back-ldbm
Modified Files:
back-ldbm.h dblayer.c perfctrs.c proto-back-ldbm.h
Log Message:
Resolves: bug 454030, bug 463991
Bug Description: Need to address 64-bit compiler warnings - part 1
Reviewed by: nhosoi (Thanks!)
Fix Description: I inadvertantly committed fixes for 463991 along with fixes for 454030, and the fixes for 463991 broke the server. This commit makes the server work again.
Index: back-ldbm.h
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/back-ldbm/back-ldbm.h,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- back-ldbm.h 8 Oct 2008 17:29:03 -0000 1.16
+++ back-ldbm.h 9 Oct 2008 17:40:14 -0000 1.17
@@ -114,16 +114,6 @@
#define MEGABYTE (1024 * 1024)
#define GIGABYTE (1024 * MEGABYTE)
-#define DB_USES_LOCKING(env) \
- (DB_INIT_LOCK & ((env)->get_open_flags((env), NULL)))
-#define DB_USES_TRANSACTIONS(env) \
- (DB_INIT_TXN & ((env)->get_open_flags((env), NULL)))
-#define DB_USES_MPOOL(env) \
- (DB_INIT_MPOOL & ((env)->get_open_flags((env), NULL)))
-#define DB_USES_LOGGING(env) \
- (DB_INIT_LOG & ((env)->get_open_flags((env), NULL)))
-
-
/* include NSPR header files */
#include "nspr.h"
#include "plhash.h"
Index: dblayer.c
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/back-ldbm/dblayer.c,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -r1.28 -r1.29
--- dblayer.c 8 Oct 2008 17:29:03 -0000 1.28
+++ dblayer.c 9 Oct 2008 17:40:14 -0000 1.29
@@ -277,6 +277,31 @@
return slapi_berval_cmp(&bv1, &bv2);
}
+static int db_uses_feature(DB_ENV *db_env, u_int32_t flags)
+{
+ u_int32_t openflags = 0;
+ PR_ASSERT(db_env);
+ (*db_env->get_open_flags)(db_env, &openflags);
+
+ return (flags & openflags);
+}
+
+int dblayer_db_uses_locking(DB_ENV *db_env) {
+ return db_uses_feature(db_env, DB_INIT_LOCK);
+}
+
+int dblayer_db_uses_transactions(DB_ENV *db_env) {
+ return db_uses_feature(db_env, DB_INIT_TXN);
+}
+
+int dblayer_db_uses_mpool(DB_ENV *db_env) {
+ return db_uses_feature(db_env, DB_INIT_MPOOL);
+}
+
+int dblayer_db_uses_logging(DB_ENV *db_env) {
+ return db_uses_feature(db_env, DB_INIT_LOG);
+};
+
/* this flag use if user remotely turned batching off */
#define FLUSH_REMOTEOFF -1
@@ -3456,7 +3481,7 @@
{
if (priv->dblayer_enable_transactions)
{
- if (DB_USES_LOCKING(priv->dblayer_env->dblayer_DB_ENV)) {
+ if (dblayer_db_uses_locking(priv->dblayer_env->dblayer_DB_ENV)) {
int aborted;
if ((rval = LOCK_DETECT(priv->dblayer_env->dblayer_DB_ENV,
0,
@@ -3626,7 +3651,7 @@
checkpoint_interval)
continue;
- if (!DB_USES_TRANSACTIONS(priv->dblayer_env->dblayer_DB_ENV))
+ if (!dblayer_db_uses_transactions(priv->dblayer_env->dblayer_DB_ENV))
continue;
/* now checkpoint */
@@ -3784,7 +3809,7 @@
DS_Sleep(interval); /* 622855: wait for other threads fully started */
if (priv->dblayer_enable_transactions)
{
- if ( DB_USES_MPOOL(priv->dblayer_env->dblayer_DB_ENV) &&
+ if ( dblayer_db_uses_mpool(priv->dblayer_env->dblayer_DB_ENV) &&
(0 != priv->dblayer_trickle_percentage) )
{
int pages_written = 0;
Index: perfctrs.c
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/back-ldbm/perfctrs.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- perfctrs.c 8 Oct 2008 17:29:04 -0000 1.10
+++ perfctrs.c 9 Oct 2008 17:40:14 -0000 1.11
@@ -296,7 +296,7 @@
return;
}
/* Call libdb to get the various stats */
- if (DB_USES_LOGGING(db_env))
+ if (dblayer_db_uses_logging(db_env))
{
DB_LOG_STAT *logstat = NULL;
ret = LOG_STAT(db_env,&logstat,0,malloc);
@@ -307,7 +307,7 @@
}
free(logstat);
}
- if (DB_USES_TRANSACTIONS(db_env))
+ if (dblayer_db_uses_transactions(db_env))
{
DB_TXN_STAT *txnstat = NULL;
ret = TXN_STAT(db_env, &txnstat, 0, malloc);
@@ -320,7 +320,7 @@
if (txnstat)
free(txnstat);
}
- if (DB_USES_LOCKING(db_env))
+ if (dblayer_db_uses_locking(db_env))
{
DB_LOCK_STAT *lockstat = NULL;
ret = LOCK_STAT(db_env,&lockstat,0,malloc);
@@ -338,7 +338,7 @@
}
free(lockstat);
}
- if (DB_USES_MPOOL(db_env))
+ if (dblayer_db_uses_mpool(db_env))
{
DB_MPOOL_STAT *mpstat = NULL;
ret = MEMP_STAT(db_env,&mpstat,NULL,0,malloc);
Index: proto-back-ldbm.h
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/back-ldbm/proto-back-ldbm.h,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- proto-back-ldbm.h 2 Oct 2007 18:39:51 -0000 1.14
+++ proto-back-ldbm.h 9 Oct 2008 17:40:14 -0000 1.15
@@ -166,6 +166,10 @@
char *buf, int buflen);
void autosize_import_cache(struct ldbminfo *li);
+int dblayer_db_uses_locking(DB_ENV *db_env);
+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);
/*
* dn2entry.c