sixd            Thu Jun 19 22:39:04 2008 UTC

  Modified files:              
    /php-src/ext/dba    dba.c dba_db4.c 
    /php-src/ext/dba/tests      dba_db4.phpt 
  Log:
  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)
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/dba/dba.c?r1=1.125&r2=1.126&diff_format=u
Index: php-src/ext/dba/dba.c
diff -u php-src/ext/dba/dba.c:1.125 php-src/ext/dba/dba.c:1.126
--- php-src/ext/dba/dba.c:1.125 Mon Dec 31 07:12:08 2007
+++ php-src/ext/dba/dba.c       Thu Jun 19 22:39:03 2008
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: dba.c,v 1.125 2007/12/31 07:12:08 sebastian Exp $ */
+/* $Id: dba.c,v 1.126 2008/06/19 22:39:03 sixd Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -360,7 +360,7 @@
        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 */
http://cvs.php.net/viewvc.cgi/php-src/ext/dba/dba_db4.c?r1=1.20&r2=1.21&diff_format=u
Index: php-src/ext/dba/dba_db4.c
diff -u php-src/ext/dba/dba_db4.c:1.20 php-src/ext/dba/dba_db4.c:1.21
--- php-src/ext/dba/dba_db4.c:1.20      Mon Dec 31 07:12:08 2007
+++ php-src/ext/dba/dba_db4.c   Thu Jun 19 22:39:03 2008
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: dba_db4.c,v 1.20 2007/12/31 07:12:08 sebastian Exp $ */
+/* $Id: dba_db4.c,v 1.21 2008/06/19 22:39:03 sixd Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -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, char *msg)
 {
        TSRMLS_FETCH();
        
@@ -81,7 +85,6 @@
                return FAILURE; /* not possible */
        }
 
-       gmode |= DB_INIT_LOCK;
        if (info->flags & DBA_PERSISTENT) {
                gmode |= DB_THREAD;
        }
@@ -91,10 +94,6 @@
                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 (
http://cvs.php.net/viewvc.cgi/php-src/ext/dba/tests/dba_db4.phpt?r1=1.5&r2=1.6&diff_format=u
Index: php-src/ext/dba/tests/dba_db4.phpt
diff -u php-src/ext/dba/tests/dba_db4.phpt:1.5 
php-src/ext/dba/tests/dba_db4.phpt:1.6
--- php-src/ext/dba/tests/dba_db4.phpt:1.5      Sun Nov 20 12:39:04 2005
+++ php-src/ext/dba/tests/dba_db4.phpt  Thu Jun 19 22:39:03 2008
@@ -9,7 +9,6 @@
 <?php
        $handler = 'db4';
        require_once('test.inc');
-       $lock_flag = ''; // lock in library
        require_once('dba_handler.inc');
 ?>
 ===DONE===
@@ -18,7 +17,22 @@
 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) {



-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to