Browse Source

MFH:

Fix bug #45266 (Fix build with BDB 4)
Fix bug #45267 (Revert invalid assumption about BDB 4 locking; let DBA handle locking)
Fix bug #45268 (Fix error callback prototype)
PECL
Christopher Jones 18 years ago
parent
commit
2bb7df3504
  1. 2
      ext/dba/dba.c
  2. 11
      ext/dba/dba_db4.c
  3. 18
      ext/dba/tests/dba_db4.phpt

2
ext/dba/dba.c

@ -360,7 +360,7 @@ static dba_handler handler[] = {
DBA_HND(db3, DBA_LOCK_ALL) /* No lock in lib */
#endif
#if DBA_DB4
DBA_HND(db4, DBA_LOCK_EXT) /* Locking done in library itself */
DBA_HND(db4, DBA_LOCK_ALL) /* No lock in lib */
#endif
#if DBA_INIFILE
DBA_HND(inifile, DBA_STREAM_OPEN|DBA_LOCK_ALL|DBA_CAST_AS_FD) /* No lock in lib */

11
ext/dba/dba_db4.c

@ -36,7 +36,11 @@
#include <db.h>
#endif
static void php_dba_db4_errcall_fcn(const char *errpfx, char *msg)
static void php_dba_db4_errcall_fcn(
#if (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 3)
const DB_ENV *dbenv,
#endif
const char *errpfx, const char *msg)
{
TSRMLS_FETCH();
@ -81,7 +85,6 @@ DBA_OPEN_FUNC(db4)
return FAILURE; /* not possible */
}
gmode |= DB_INIT_LOCK;
if (info->flags & DBA_PERSISTENT) {
gmode |= DB_THREAD;
}
@ -91,10 +94,6 @@ DBA_OPEN_FUNC(db4)
filemode = Z_LVAL_PP(info->argv[0]);
}
#ifdef DB_FCNTL_LOCKING
gmode |= DB_FCNTL_LOCKING;
#endif
if ((err=db_create(&dbp, NULL, 0)) == 0) {
dbp->set_errcall(dbp, php_dba_db4_errcall_fcn);
if (

18
ext/dba/tests/dba_db4.phpt

@ -9,7 +9,6 @@ DBA DB4 handler test
<?php
$handler = 'db4';
require_once('test.inc');
$lock_flag = ''; // lock in library
require_once('dba_handler.inc');
?>
===DONE===
@ -18,7 +17,22 @@ database handler: db4
3NYNYY
Content String 2
Content 2 replaced
Read during write: allowed
Read during write: not allowed
Content 2 replaced 2nd time
The 6th value
array(3) {
["key number 6"]=>
string(13) "The 6th value"
["key2"]=>
string(27) "Content 2 replaced 2nd time"
["key5"]=>
string(23) "The last content string"
}
--NO-LOCK--
3NYNYY
Content String 2
Content 2 replaced
Read during write: not allowed
Content 2 replaced 2nd time
The 6th value
array(3) {

Loading…
Cancel
Save