helly Sun Nov 10 18:07:35 2002 EDT Modified files: /php4/ext/dba dba.c Log: Emit a warning when open mode modifier t is used wrong. Index: php4/ext/dba/dba.c diff -u php4/ext/dba/dba.c:1.58 php4/ext/dba/dba.c:1.59 --- php4/ext/dba/dba.c:1.58 Sun Nov 10 12:58:46 2002 +++ php4/ext/dba/dba.c Sun Nov 10 18:07:35 2002 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: dba.c,v 1.58 2002/11/10 17:58:46 helly Exp $ */ +/* $Id: dba.c,v 1.59 2002/11/10 23:07:35 helly Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -424,7 +424,19 @@ } if (*pmode=='t') { pmode++; - lock_mode |= LOCK_NB; /* test =: non blocking */ + if (!lock_mode) { + if ((hptr->flags & DBA_LOCK_ALL) == 0) { + php_error_docref2(NULL TSRMLS_CC, +Z_STRVAL_PP(args[0]), Z_STRVAL_PP(args[1]), E_WARNING, "Handler %s uses its own +locking which doesn't support mode modifier t (testing)", hptr->name); + FREENOW; + RETURN_FALSE; + } else { + php_error_docref2(NULL TSRMLS_CC, +Z_STRVAL_PP(args[0]), Z_STRVAL_PP(args[1]), E_WARNING, "Handler %s doesn't uses +locking for this mode which makes modifier t (testing) obsolete", hptr->name); + FREENOW; + RETURN_FALSE; + } + } else { + lock_mode |= LOCK_NB; /* test =: non blocking */ + } } if (*pmode || !modenr) { php_error_docref2(NULL TSRMLS_CC, Z_STRVAL_PP(args[0]), Z_STRVAL_PP(args[1]), E_WARNING, "Illegal DBA mode");
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php