summaryrefslogtreecommitdiffstats
path: root/ldap
diff options
context:
space:
mode:
authorRich Megginson <rmeggins@redhat.com>2008-10-09 17:40:14 +0000
committerRich Megginson <rmeggins@redhat.com>2008-10-09 17:40:14 +0000
commitc556522a1848bdbe50842a5be8300a2e80cf4d3e (patch)
tree0e0040c52acb9c871456efffa771e70927b5552d /ldap
parent4a045f0c371ae588c39cdfe1cbdb4ee048b0aeac (diff)
downloadds-c556522a1848bdbe50842a5be8300a2e80cf4d3e.tar.gz
ds-c556522a1848bdbe50842a5be8300a2e80cf4d3e.tar.xz
ds-c556522a1848bdbe50842a5be8300a2e80cf4d3e.zip
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.
Diffstat (limited to 'ldap')
-rw-r--r--ldap/servers/slapd/back-ldbm/back-ldbm.h10
-rw-r--r--ldap/servers/slapd/back-ldbm/dblayer.c31
-rw-r--r--ldap/servers/slapd/back-ldbm/perfctrs.c8
-rw-r--r--ldap/servers/slapd/back-ldbm/proto-back-ldbm.h4
4 files changed, 36 insertions, 17 deletions
diff --git a/ldap/servers/slapd/back-ldbm/back-ldbm.h b/ldap/servers/slapd/back-ldbm/back-ldbm.h
index f362f76c..c916f093 100644
--- a/ldap/servers/slapd/back-ldbm/back-ldbm.h
+++ b/ldap/servers/slapd/back-ldbm/back-ldbm.h
@@ -114,16 +114,6 @@ typedef unsigned short u_int16_t;
#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"
diff --git a/ldap/servers/slapd/back-ldbm/dblayer.c b/ldap/servers/slapd/back-ldbm/dblayer.c
index bc8b55f7..18c504d2 100644
--- a/ldap/servers/slapd/back-ldbm/dblayer.c
+++ b/ldap/servers/slapd/back-ldbm/dblayer.c
@@ -277,6 +277,31 @@ dblayer_bt_compare(DB *db, const DBT *dbt1, const DBT *dbt2)
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 @@ static int deadlock_threadmain(void *param)
{
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 @@ static int checkpoint_threadmain(void *param)
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 @@ static int trickle_threadmain(void *param)
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;
diff --git a/ldap/servers/slapd/back-ldbm/perfctrs.c b/ldap/servers/slapd/back-ldbm/perfctrs.c
index c6affe36..578c7528 100644
--- a/ldap/servers/slapd/back-ldbm/perfctrs.c
+++ b/ldap/servers/slapd/back-ldbm/perfctrs.c
@@ -296,7 +296,7 @@ void perfctrs_update(perfctrs_private *priv, DB_ENV *db_env)
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 @@ void perfctrs_update(perfctrs_private *priv, DB_ENV *db_env)
}
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 @@ void perfctrs_update(perfctrs_private *priv, DB_ENV *db_env)
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 @@ void perfctrs_update(perfctrs_private *priv, DB_ENV *db_env)
}
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);
diff --git a/ldap/servers/slapd/back-ldbm/proto-back-ldbm.h b/ldap/servers/slapd/back-ldbm/proto-back-ldbm.h
index 34c76d50..51491e65 100644
--- a/ldap/servers/slapd/back-ldbm/proto-back-ldbm.h
+++ b/ldap/servers/slapd/back-ldbm/proto-back-ldbm.h
@@ -166,6 +166,10 @@ char *dblayer_get_full_inst_dir(struct ldbminfo *li, ldbm_instance *inst,
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