summaryrefslogtreecommitdiff
path: root/ext/dba/dba.c
diff options
context:
space:
mode:
authorMarcus Boerger <helly@php.net>2002-12-11 10:37:38 +0000
committerMarcus Boerger <helly@php.net>2002-12-11 10:37:38 +0000
commite0c983a013bc508452b4120e64fb64c26fb89ffe (patch)
tree892167282cbc516874c389193b80226184085e33 /ext/dba/dba.c
parentf84aff8f5c24ea06db932626a375e5058504df73 (diff)
downloadphp-git-e0c983a013bc508452b4120e64fb64c26fb89ffe.tar.gz
Warnings and Notices when lock modifiers for dba_(p)open are used wrong.
This finally closes bug #20828 (and i hope it must not be reopened)
Diffstat (limited to 'ext/dba/dba.c')
-rw-r--r--ext/dba/dba.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/ext/dba/dba.c b/ext/dba/dba.c
index 1f2badd308..c110d73229 100644
--- a/ext/dba/dba.c
+++ b/ext/dba/dba.c
@@ -430,16 +430,21 @@ static void php_dba_open(INTERNAL_FUNCTION_PARAMETERS, int persistent)
if (pmode[0] && (pmode[1]=='d' || pmode[1]=='l' || pmode[1]=='-')) { /* force lock on db file or lck file or disable locking */
switch (pmode[1]) {
case 'd':
- if ((hptr->flags & DBA_LOCK_ALL) == 0) {
- php_error_docref2(NULL TSRMLS_CC, Z_STRVAL_PP(args[0]), Z_STRVAL_PP(args[1]), E_NOTICE, "Handler %s does locking internally", hptr->name);
- }
lock_dbf = 1;
/* no break */
case 'l':
lock_flag = DBA_LOCK_ALL;
+ if ((hptr->flags & DBA_LOCK_ALL) == 0) {
+ php_error_docref2(NULL TSRMLS_CC, Z_STRVAL_PP(args[0]), Z_STRVAL_PP(args[1]), E_NOTICE, "Handler %s does locking internally", hptr->name);
+ }
break;
default:
case '-':
+ 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, "Locking cannot be disabled for handler %s", hptr->name);
+ FREENOW;
+ RETURN_FALSE;
+ }
lock_flag = 0;
break;
}