helly Thu Jun 12 15:53:40 2003 EDT Modified files: /php4/ext/dba dba.c Log: Bugfix #2397: dba_open locking error with db3 Index: php4/ext/dba/dba.c diff -u php4/ext/dba/dba.c:1.91 php4/ext/dba/dba.c:1.92 --- php4/ext/dba/dba.c:1.91 Tue Jun 10 16:03:26 2003 +++ php4/ext/dba/dba.c Thu Jun 12 15:53:40 2003 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: dba.c,v 1.91 2003/06/10 20:03:26 imajes Exp $ */ +/* $Id: dba.c,v 1.92 2003/06/12 19:53:40 helly Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -636,15 +636,20 @@ lock_mode = (lock_flag & DBA_LOCK_WRITER) ? LOCK_EX : 0; file_mode = "r+b"; break; - case 'n': - modenr = DBA_TRUNC; - lock_mode = (lock_flag & DBA_LOCK_TRUNC) ? LOCK_EX : 0; - file_mode = "w+b"; - break; case 'c': modenr = DBA_CREAT; lock_mode = (lock_flag & DBA_LOCK_CREAT) ? LOCK_EX : 0; file_mode = "a+b"; + if (!lock_mode || !lock_dbf) { + break; + } + /* When we lock the db file it will be created before the handler + * even tries to open it, hence we must change to truncate mode. + */ + case 'n': + modenr = DBA_TRUNC; + lock_mode = (lock_flag & DBA_LOCK_TRUNC) ? LOCK_EX : 0; + file_mode = "w+b"; break; default: modenr = 0;
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php