Skip to content
Snippets Groups Projects
Commit 73dc8ffe authored by Howard Chu's avatar Howard Chu Committed by Quanah Gibson-Mount
Browse files

More for envflags

If trying to alter a non-resettable flag, just close/reopen the env.
parent c4e35bd8
No related branches found
No related tags found
No related merge requests found
...@@ -379,8 +379,11 @@ mdb_cf_gen( ConfigArgs *c ) ...@@ -379,8 +379,11 @@ mdb_cf_gen( ConfigArgs *c )
if ( mdb->mi_dbenv_flags & mdb_envflags[i].mask ) { if ( mdb->mi_dbenv_flags & mdb_envflags[i].mask ) {
/* not all flags are runtime resettable */ /* not all flags are runtime resettable */
rc = mdb_env_set_flags( mdb->mi_dbenv, mdb_envflags[i].mask, 0 ); rc = mdb_env_set_flags( mdb->mi_dbenv, mdb_envflags[i].mask, 0 );
if ( rc ) if ( rc ) {
break; mdb->mi_flags |= MDB_RE_OPEN;
c->cleanup = mdb_cf_cleanup;
rc = 0;
}
mdb->mi_dbenv_flags ^= mdb_envflags[i].mask; mdb->mi_dbenv_flags ^= mdb_envflags[i].mask;
} }
} }
...@@ -388,8 +391,15 @@ mdb_cf_gen( ConfigArgs *c ) ...@@ -388,8 +391,15 @@ mdb_cf_gen( ConfigArgs *c )
int i = verb_to_mask( c->line, mdb_envflags ); int i = verb_to_mask( c->line, mdb_envflags );
if ( mdb_envflags[i].mask & mdb->mi_dbenv_flags ) { if ( mdb_envflags[i].mask & mdb->mi_dbenv_flags ) {
rc = mdb_env_set_flags( mdb->mi_dbenv, mdb_envflags[i].mask, 0 ); rc = mdb_env_set_flags( mdb->mi_dbenv, mdb_envflags[i].mask, 0 );
if ( !rc ) if ( rc ) {
mdb->mi_dbenv_flags ^= mdb_envflags[i].mask; mdb->mi_flags |= MDB_RE_OPEN;
c->cleanup = mdb_cf_cleanup;
rc = 0;
}
mdb->mi_dbenv_flags ^= mdb_envflags[i].mask;
} else {
/* unknown keyword */
rc = 1;
} }
} }
break; break;
...@@ -583,10 +593,15 @@ mdb_cf_gen( ConfigArgs *c ) ...@@ -583,10 +593,15 @@ mdb_cf_gen( ConfigArgs *c )
rc = mdb_env_set_flags( mdb->mi_dbenv, mdb_envflags[j].mask, 1 ); rc = mdb_env_set_flags( mdb->mi_dbenv, mdb_envflags[j].mask, 1 );
else else
rc = 0; rc = 0;
if ( rc ) if ( rc ) {
break; mdb->mi_flags |= MDB_RE_OPEN;
else c->cleanup = mdb_cf_cleanup;
mdb->mi_dbenv_flags |= mdb_envflags[i].mask; rc = 0;
}
mdb->mi_dbenv_flags |= mdb_envflags[i].mask;
} else {
/* unknown keyword */
rc = 1;
} }
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment