[PHP-CVS] cvs: php4(PHP_4_3) /ext/dba dba.c
edink Sat Jun 14 14:51:17 2003 EDT Modified files: (Branch: PHP_4_3) /php4/ext/dba dba.c Log: Fixed win32 build Index: php4/ext/dba/dba.c diff -u php4/ext/dba/dba.c:1.61.2.18 php4/ext/dba/dba.c:1.61.2.19 --- php4/ext/dba/dba.c:1.61.2.18Fri Jun 13 10:53:13 2003 +++ php4/ext/dba/dba.c Sat Jun 14 14:51:17 2003 @@ -17,7 +17,7 @@ +--+ */ -/* $Id: dba.c,v 1.61.2.18 2003/06/13 14:53:13 andrey Exp $ */ +/* $Id: dba.c,v 1.61.2.19 2003/06/14 18:51:17 edink Exp $ */ #ifdef HAVE_CONFIG_H #include config.h @@ -369,7 +369,7 @@ /* {{{ PHP_INI */ -ZEND_API ZEND_INI_MH(OnUpdateDefaultHandler) +ZEND_INI_MH(OnUpdateDefaultHandler) { dba_handler *hptr; -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php4(PHP_4_3) /ext/dba dba.c
helly Sat Jun 14 15:27:01 2003 EDT Modified files: (Branch: PHP_4_3) /php4/ext/dba dba.c Log: Remove that old thing Index: php4/ext/dba/dba.c diff -u php4/ext/dba/dba.c:1.61.2.19 php4/ext/dba/dba.c:1.61.2.20 --- php4/ext/dba/dba.c:1.61.2.19Sat Jun 14 14:51:17 2003 +++ php4/ext/dba/dba.c Sat Jun 14 15:27:01 2003 @@ -17,7 +17,7 @@ +--+ */ -/* $Id: dba.c,v 1.61.2.19 2003/06/14 18:51:17 edink Exp $ */ +/* $Id: dba.c,v 1.61.2.20 2003/06/14 19:27:01 helly Exp $ */ #ifdef HAVE_CONFIG_H #include config.h @@ -54,8 +54,6 @@ function_entry dba_functions[] = { PHP_FE(dba_open, NULL) PHP_FE(dba_popen, NULL) - /* Disabled until 4.3.1, when persistent STDIO streams are implemented. */ - /* PHP_FE(dba_popen, NULL) */ PHP_FE(dba_close, NULL) PHP_FE(dba_delete, NULL) PHP_FE(dba_exists, NULL) -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-CVS] cvs: php4(PHP_4_3) /ext/dba dba.c
And don't forget the NEWS entry..(that bug id must be wrong..? :) --Jani On Thu, 12 Jun 2003, Marcus Boerger wrote: helly Thu Jun 12 15:55:16 2003 EDT Modified files: (Branch: PHP_4_3) /php4/ext/dba dba.c Log: MFH: Bugfix #2397: dba_open locking error with db3 Index: php4/ext/dba/dba.c diff -u php4/ext/dba/dba.c:1.61.2.16 php4/ext/dba/dba.c:1.61.2.17 --- php4/ext/dba/dba.c:1.61.2.16 Thu May 29 10:16:25 2003 +++ php4/ext/dba/dba.c Thu Jun 12 15:55:16 2003 @@ -17,7 +17,7 @@ +--+ */ -/* $Id: dba.c,v 1.61.2.16 2003/05/29 14:16:25 helly Exp $ */ +/* $Id: dba.c,v 1.61.2.17 2003/06/12 19:55:16 helly Exp $ */ #ifdef HAVE_CONFIG_H #include config.h @@ -642,15 +642,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; -- https://www.paypal.com/xclick/[EMAIL PROTECTED]no_note=1tax=0currency_code=EUR -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php4(PHP_4_3) /ext/dba dba.c
andrey Fri Jun 13 10:53:13 2003 EDT Modified files: (Branch: PHP_4_3) /php4/ext/dba dba.c Log: proto fixes Index: php4/ext/dba/dba.c diff -u php4/ext/dba/dba.c:1.61.2.17 php4/ext/dba/dba.c:1.61.2.18 --- php4/ext/dba/dba.c:1.61.2.17Thu Jun 12 15:55:16 2003 +++ php4/ext/dba/dba.c Fri Jun 13 10:53:13 2003 @@ -17,7 +17,7 @@ +--+ */ -/* $Id: dba.c,v 1.61.2.17 2003/06/12 19:55:16 helly Exp $ */ +/* $Id: dba.c,v 1.61.2.18 2003/06/13 14:53:13 andrey Exp $ */ #ifdef HAVE_CONFIG_H #include config.h @@ -797,7 +797,7 @@ /* }}} */ #undef FREENOW -/* {{{ proto int dba_popen(string path, string mode [, string handlername, string ...]) +/* {{{ proto resource dba_popen(string path, string mode [, string handlername, string ...]) Opens path using the specified handler in mode persistently */ PHP_FUNCTION(dba_popen) { @@ -805,7 +805,7 @@ } /* }}} */ -/* {{{ proto int dba_open(string path, string mode [, string handlername, string ...]) +/* {{{ proto resource dba_open(string path, string mode [, string handlername, string ...]) Opens path using the specified handler in mode*/ PHP_FUNCTION(dba_open) { -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php4(PHP_4_3) /ext/dba dba.c
helly Thu Jun 12 15:55:16 2003 EDT Modified files: (Branch: PHP_4_3) /php4/ext/dba dba.c Log: MFH: Bugfix #2397: dba_open locking error with db3 Index: php4/ext/dba/dba.c diff -u php4/ext/dba/dba.c:1.61.2.16 php4/ext/dba/dba.c:1.61.2.17 --- php4/ext/dba/dba.c:1.61.2.16Thu May 29 10:16:25 2003 +++ php4/ext/dba/dba.c Thu Jun 12 15:55:16 2003 @@ -17,7 +17,7 @@ +--+ */ -/* $Id: dba.c,v 1.61.2.16 2003/05/29 14:16:25 helly Exp $ */ +/* $Id: dba.c,v 1.61.2.17 2003/06/12 19:55:16 helly Exp $ */ #ifdef HAVE_CONFIG_H #include config.h @@ -642,15 +642,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
[PHP-CVS] cvs: php4(PHP_4_3) /ext/dba dba.c dba_cdb.c dba_db2.c dba_db3.c dba_db4.c dba_dbm.c dba_flatfile.c dba_gdbm.c dba_ndbm.c php_dba.h /ext/dba/libcdb cdb.c cdb.h cdb_make.c cdb_make.h /ext/dba/libflatfile flatfile.c flatfile.h
helly Fri Jan 31 15:10:11 2003 EDT Modified files: (Branch: PHP_4_3) /php4/ext/dba dba.c dba_cdb.c dba_db2.c dba_db3.c dba_db4.c dba_dbm.c dba_flatfile.c dba_gdbm.c dba_ndbm.c php_dba.h /php4/ext/dba/libcdbcdb.c cdb.h cdb_make.c cdb_make.h /php4/ext/dba/libflatfile flatfile.c flatfile.h Log: MFH: Version info Index: php4/ext/dba/dba.c diff -u php4/ext/dba/dba.c:1.61.2.11 php4/ext/dba/dba.c:1.61.2.12 --- php4/ext/dba/dba.c:1.61.2.11Tue Dec 31 11:34:17 2002 +++ php4/ext/dba/dba.c Fri Jan 31 15:10:10 2003 @@ -17,7 +17,7 @@ +--+ */ -/* $Id: dba.c,v 1.61.2.11 2002/12/31 16:34:17 sebastian Exp $ */ +/* $Id: dba.c,v 1.61.2.12 2003/01/31 20:10:10 helly Exp $ */ #ifdef HAVE_CONFIG_H #include config.h @@ -147,7 +147,7 @@ {\ #alias, flags, dba_open_##name, dba_close_##name, dba_fetch_##name, dba_update_##name, \ dba_exists_##name, dba_delete_##name, dba_firstkey_##name, dba_nextkey_##name, \ - dba_optimize_##name, dba_sync_##name \ + dba_optimize_##name, dba_sync_##name, dba_info_##name \ }, #define DBA_HND(name, flags) DBA_NAMED_HND(name, name, flags) @@ -191,7 +191,7 @@ #if DBA_FLATFILE DBA_HND(flatfile, DBA_STREAM_OPEN|DBA_LOCK_ALL) /* No lock in lib */ #endif - { NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL } + { NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL } }; static int le_db; @@ -750,23 +750,26 @@ } /* }}} */ -/* {{{ proto array dba_handlers() +/* {{{ proto array dba_handlers([bool full_info]) List configured databases */ PHP_FUNCTION(dba_handlers) { dba_handler *hptr; + zend_bool full_info = 0; - if (ZEND_NUM_ARGS()!=0) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, |b, full_info) == +FAILURE) { ZEND_WRONG_PARAM_COUNT(); RETURN_FALSE; } - if (array_init(return_value) == FAILURE) { - php_error_docref(NULL TSRMLS_CC, E_ERROR, Unable to initialize array); - RETURN_FALSE; - } + array_init(return_value); + for(hptr = handler; hptr-name; hptr++) { - add_next_index_string(return_value, hptr-name, 1); + if (full_info) { + add_assoc_string(return_value, hptr-name, hptr-info(hptr, +NULL TSRMLS_CC), 0); + } else { + add_next_index_string(return_value, hptr-name, 1); + } } } /* }}} */ @@ -784,10 +787,8 @@ RETURN_FALSE; } - if (array_init(return_value) == FAILURE) { - php_error_docref(NULL TSRMLS_CC, E_ERROR, Unable to initialize array); - RETURN_FALSE; - } + array_init(return_value); + numitems = zend_hash_next_free_element(EG(regular_list)); for (i=1; inumitems; i++) { if (zend_hash_index_find(EG(regular_list), i, (void **) le)==FAILURE) { Index: php4/ext/dba/dba_cdb.c diff -u php4/ext/dba/dba_cdb.c:1.23.2.2 php4/ext/dba/dba_cdb.c:1.23.2.3 --- php4/ext/dba/dba_cdb.c:1.23.2.2 Tue Dec 31 11:34:18 2002 +++ php4/ext/dba/dba_cdb.c Fri Jan 31 15:10:11 2003 @@ -17,7 +17,7 @@ +--+ */ -/* $Id: dba_cdb.c,v 1.23.2.2 2002/12/31 16:34:18 sebastian Exp $ */ +/* $Id: dba_cdb.c,v 1.23.2.3 2003/01/31 20:10:11 helly Exp $ */ #ifdef HAVE_CONFIG_H #include config.h @@ -322,6 +322,19 @@ { /* this is read-only */ return SUCCESS; +} + +DBA_INFO_FUNC(cdb) +{ +#if DBA_CDB_BUILTIN + if (!strcmp(hnd-name, cdb)) { + return estrdup(cdb_version()); + } else { + return estrdup(cdb_make_version()); + } +#else + return estrdup(External); +#endif } #endif Index: php4/ext/dba/dba_db2.c diff -u php4/ext/dba/dba_db2.c:1.30.2.2 php4/ext/dba/dba_db2.c:1.30.2.3 --- php4/ext/dba/dba_db2.c:1.30.2.2 Tue Dec 31 11:34:18 2002 +++ php4/ext/dba/dba_db2.c Fri Jan 31 15:10:11 2003 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: dba_db2.c,v 1.30.2.2 2002/12/31 16:34:18 sebastian Exp $ */ +/* $Id: dba_db2.c,v 1.30.2.3 2003/01/31 20:10:11 helly Exp $ */ #ifdef HAVE_CONFIG_H #include config.h @@ -186,6 +186,11 @@ DB2_DATA; return dba-dbp-sync(dba-dbp, 0) ? FAILURE : SUCCESS; +} + +DBA_INFO_FUNC(db2) +{ + return estrdup(DB_VERSION_STRING); } #endif Index: php4/ext/dba/dba_db3.c diff -u php4/ext/dba/dba_db3.c:1.21.2.4 php4/ext/dba/dba_db3.c:1.21.2.5 --- php4/ext/dba/dba_db3.c:1.21.2.4 Tue Dec 31 11:34:18 2002 +++ php4/ext/dba/dba_db3.c Fri Jan 31 15:10:11 2003 @@ -16,7 +16,7 @@
[PHP-CVS] cvs: php4(PHP_4_3) /ext/dba dba.c
andrei Fri Dec 20 11:47:16 2002 EDT Modified files: (Branch: PHP_4_3) /php4/ext/dba dba.c Log: MFH Index: php4/ext/dba/dba.c diff -u php4/ext/dba/dba.c:1.61.2.6 php4/ext/dba/dba.c:1.61.2.7 --- php4/ext/dba/dba.c:1.61.2.6 Wed Dec 11 05:37:53 2002 +++ php4/ext/dba/dba.c Fri Dec 20 11:47:15 2002 @@ -17,7 +17,7 @@ +--+ */ -/* $Id: dba.c,v 1.61.2.6 2002/12/11 10:37:53 helly Exp $ */ +/* $Id: dba.c,v 1.61.2.7 2002/12/20 16:47:15 andrei Exp $ */ #ifdef HAVE_CONFIG_H #include config.h @@ -504,9 +504,9 @@ RETURN_FALSE; } - info = emalloc(sizeof(dba_info)); + info = pemalloc(sizeof(dba_info), persistent); memset(info, 0, sizeof(dba_info)); - info-path = estrdup(Z_STRVAL_PP(args[0])); + info-path = pestrdup(Z_STRVAL_PP(args[0]), persistent); info-mode = modenr; info-argc = ac - 3; info-argv = args + 3; @@ -529,7 +529,7 @@ if (!error lock_mode) { if (lock_dbf) { - info-lock.name = estrdup(info-path); + info-lock.name = pestrdup(info-path, persistent); lock_file_mode = file_mode; } else { spprintf(info-lock.name, 0, %s.lck, info-path); -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php4(PHP_4_3) /ext/dba dba.c dba_cdb.c dba_db2.c dba_db3.c dba_dbm.c dba_flatfile.c dba_gdbm.c php_dba.h /ext/dba/tests dba_cdb.phpt dba_handler.inc
helly Fri Dec 20 15:25:20 2002 EDT Modified files: (Branch: PHP_4_3) /php4/ext/dba dba.c dba_cdb.c dba_db2.c dba_db3.c dba_dbm.c dba_flatfile.c dba_gdbm.c php_dba.h /php4/ext/dba/tests dba_cdb.phpt dba_handler.inc Log: MFH: as discussed Index: php4/ext/dba/dba.c diff -u php4/ext/dba/dba.c:1.61.2.7 php4/ext/dba/dba.c:1.61.2.8 --- php4/ext/dba/dba.c:1.61.2.7 Fri Dec 20 11:47:15 2002 +++ php4/ext/dba/dba.c Fri Dec 20 15:25:19 2002 @@ -17,7 +17,7 @@ +--+ */ -/* $Id: dba.c,v 1.61.2.7 2002/12/20 16:47:15 andrei Exp $ */ +/* $Id: dba.c,v 1.61.2.8 2002/12/20 20:25:19 helly Exp $ */ #ifdef HAVE_CONFIG_H #include config.h @@ -211,7 +211,7 @@ static void dba_close(dba_info *info TSRMLS_DC) { if (info-hnd) info-hnd-close(info TSRMLS_CC); - if (info-path) efree(info-path); + if (info-path) pefree(info-path, info-flagsDBA_PERSISTENT); if (info-fp info-fp!=info-lock.fp) php_stream_close(info-fp); if (info-lock.fd) { php_flock(info-lock.fd, LOCK_UN); @@ -219,8 +219,8 @@ info-lock.fd = 0; } if (info-lock.fp) php_stream_close(info-lock.fp); - if (info-lock.name) efree(info-lock.name); - efree(info); + if (info-lock.name) pefree(info-lock.name, info-flagsDBA_PERSISTENT); + pefree(info, info-flagsDBA_PERSISTENT); } /* }}} */ @@ -228,7 +228,7 @@ */ static void dba_close_rsrc(zend_rsrc_list_entry *rsrc TSRMLS_DC) { - dba_info *info = (dba_info *)rsrc-ptr; + dba_info *info = (dba_info *)rsrc-ptr; dba_close(info TSRMLS_CC); } @@ -510,7 +510,7 @@ info-mode = modenr; info-argc = ac - 3; info-argv = args + 3; - info-flags = (hptr-flags ~DBA_LOCK_ALL) | (lock_flag DBA_LOCK_ALL); + info-flags = (hptr-flags ~DBA_LOCK_ALL) | (lock_flag DBA_LOCK_ALL) | +(persistent ? DBA_PERSISTENT : 0); info-lock.mode = lock_mode; /* if any open call is a locking call: @@ -536,12 +536,12 @@ if (!strcmp(file_mode, r)) { /* when in read only mode try to use existing .lck file first */ /* do not log errors for .lck file while in read ony mode on .lck file */ - lock_file_mode = rb; + lock_file_mode = rb; info-lock.fp = php_stream_open_wrapper(info-lock.name, lock_file_mode, STREAM_MUST_SEEK|IGNORE_PATH|ENFORCE_SAFE_MODE, NULL); - } + } if (!info-lock.fp) { /* when not in read mode or failed to open .lck file read only. now try again in create(write) mode and log errors */ - lock_file_mode = a+b; + lock_file_mode = a+b; } } if (!info-lock.fp) { Index: php4/ext/dba/dba_cdb.c diff -u php4/ext/dba/dba_cdb.c:1.23 php4/ext/dba/dba_cdb.c:1.23.2.1 --- php4/ext/dba/dba_cdb.c:1.23 Wed Nov 13 07:12:44 2002 +++ php4/ext/dba/dba_cdb.c Fri Dec 20 15:25:19 2002 @@ -17,7 +17,7 @@ +--+ */ -/* $Id: dba_cdb.c,v 1.23 2002/11/13 12:12:44 edink Exp $ */ +/* $Id: dba_cdb.c,v 1.23.2.1 2002/12/20 20:25:19 helly Exp $ */ #ifdef HAVE_CONFIG_H #include config.h @@ -98,7 +98,7 @@ return FAILURE; } - cdb = emalloc(sizeof(dba_cdb)); + cdb = pemalloc(sizeof(dba_cdb), info-flagsDBA_PERSISTENT); memset(cdb, 0, sizeof(dba_cdb)); #if DBA_CDB_BUILTIN @@ -132,7 +132,7 @@ cdb_free(cdb-c); close(cdb-file); #endif - efree(cdb); + pefree(cdb, info-flagsDBA_PERSISTENT); } #if DBA_CDB_BUILTIN Index: php4/ext/dba/dba_db2.c diff -u php4/ext/dba/dba_db2.c:1.30 php4/ext/dba/dba_db2.c:1.30.2.1 --- php4/ext/dba/dba_db2.c:1.30 Wed Nov 6 12:59:03 2002 +++ php4/ext/dba/dba_db2.c Fri Dec 20 15:25:19 2002 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: dba_db2.c,v 1.30 2002/11/06 17:59:03 sas Exp $ */ +/* $Id: dba_db2.c,v 1.30.2.1 2002/12/20 20:25:19 helly Exp $ */ #ifdef HAVE_CONFIG_H #include config.h @@ -76,7 +76,7 @@ return FAILURE; } - info-dbf = emalloc(sizeof(dba_db2_data)); + info-dbf = pemalloc(sizeof(dba_db2_data), info-flagsDBA_PERSISTENT); memset(info-dbf, 0, sizeof(dba_db2_data)); ((dba_db2_data *) info-dbf)-dbp = dbp; return SUCCESS; @@ -89,7 +89,7 @@ if (dba-cursor) dba-cursor-c_close(dba-cursor); dba-dbp-close(dba-dbp, 0); - efree(dba); + pefree(dba, info-flagsDBA_PERSISTENT); } DBA_FETCH_FUNC(db2) Index:
[PHP-CVS] cvs: php4(PHP_4_3) /ext/dba dba.c
helly Tue Dec 10 18:03:25 2002 EDT Modified files: (Branch: PHP_4_3) /php4/ext/dba dba.c Log: MFH Index: php4/ext/dba/dba.c diff -u php4/ext/dba/dba.c:1.61.2.4 php4/ext/dba/dba.c:1.61.2.5 --- php4/ext/dba/dba.c:1.61.2.4 Mon Dec 9 13:07:23 2002 +++ php4/ext/dba/dba.c Tue Dec 10 18:03:24 2002 @@ -17,7 +17,7 @@ +--+ */ -/* $Id: dba.c,v 1.61.2.4 2002/12/09 18:07:23 helly Exp $ */ +/* $Id: dba.c,v 1.61.2.5 2002/12/10 23:03:24 helly Exp $ */ #ifdef HAVE_CONFIG_H #include config.h @@ -215,7 +215,7 @@ if (info-fp info-fp!=info-lock.fp) php_stream_close(info-fp); if (info-lock.fd) { php_flock(info-lock.fd, LOCK_UN); - close(info-lock.fd); + /*close(info-lock.fd);*/ info-lock.fd = 0; } if (info-lock.fp) php_stream_close(info-lock.fp); @@ -417,6 +417,7 @@ * * d: force lock on database file * l: force lock on lck file +* -: ignore locking * * t: test open database, warning if locked */ @@ -440,6 +441,7 @@ } } else { lock_flag = (hptr-flagsDBA_LOCK_ALL); + lock_dbf = 1; } switch (*pmode++) { case 'r': @@ -526,9 +528,20 @@ lock_file_mode = file_mode; } else { spprintf(info-lock.name, 0, %s.lck, info-path); + if (!strcmp(file_mode, r)) { + /* when in read only mode try to use existing .lck +file first */ + /* do not log errors for .lck file while in read ony +mode on .lck file */ + lock_file_mode = rb; + info-lock.fp = +php_stream_open_wrapper(info-lock.name, lock_file_mode, +STREAM_MUST_SEEK|IGNORE_PATH|ENFORCE_SAFE_MODE, NULL); + } + if (!info-lock.fp) { + /* when not in read mode or failed to open .lck file +read only. now try again in create(write) mode and log errors */ lock_file_mode = a+b; + } + } + if (!info-lock.fp) { + info-lock.fp = php_stream_open_wrapper(info-lock.name, +lock_file_mode, STREAM_MUST_SEEK|REPORT_ERRORS|IGNORE_PATH|ENFORCE_SAFE_MODE, NULL); } - info-lock.fp = php_stream_open_wrapper(info-lock.name, lock_file_mode, STREAM_MUST_SEEK|REPORT_ERRORS|IGNORE_PATH|ENFORCE_SAFE_MODE, NULL); if (!info-lock.fp) { dba_close(info TSRMLS_CC); /* stream operation already wrote an error message */ @@ -797,4 +810,3 @@ * vim600: sw=4 ts=4 fdm=marker * vim600: sw=4 ts=4 */ - -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php4(PHP_4_3) /ext/dba dba.c
helly Mon Dec 9 13:07:23 2002 EDT Modified files: (Branch: PHP_4_3) /php4/ext/dba dba.c Log: MFH: '-' modifier (bug #20282, #20858) Index: php4/ext/dba/dba.c diff -u php4/ext/dba/dba.c:1.61.2.3 php4/ext/dba/dba.c:1.61.2.4 --- php4/ext/dba/dba.c:1.61.2.3 Fri Nov 22 10:53:00 2002 +++ php4/ext/dba/dba.c Mon Dec 9 13:07:23 2002 @@ -17,7 +17,7 @@ +--+ */ -/* $Id: dba.c,v 1.61.2.3 2002/11/22 15:53:00 helly Exp $ */ +/* $Id: dba.c,v 1.61.2.4 2002/12/09 18:07:23 helly Exp $ */ #ifdef HAVE_CONFIG_H #include config.h @@ -422,14 +422,22 @@ */ strlcpy(mode, Z_STRVAL_PP(args[1]), sizeof(mode)); pmode = mode[0]; - if (pmode[0] (pmode[1]=='d' || pmode[1]=='l')) { /* force lock on db file or lck file */ - if (pmode[1]=='d') { + 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; + break; + default: + case '-': + lock_flag = 0; + break; } - lock_flag = DBA_LOCK_ALL; } else { lock_flag = (hptr-flagsDBA_LOCK_ALL); } @@ -459,18 +467,23 @@ lock_mode = 0; file_mode = ; } - if (*pmode=='d' || *pmode=='l') { + if (*pmode=='d' || *pmode=='l' || *pmode=='-') { pmode++; /* done already - skip here */ } if (*pmode=='t') { pmode++; + if (!lock_flag) { + php_error_docref2(NULL TSRMLS_CC, Z_STRVAL_PP(args[0]), +Z_STRVAL_PP(args[1]), E_WARNING, You cannot combine modifiers - (no lock) and t +(test lock), hptr-name); + FREENOW; + RETURN_FALSE; + } 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); + 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 (test lock), 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); + 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 (test lock) obsolete, hptr-name); FREENOW; RETURN_FALSE; } @@ -784,3 +797,4 @@ * vim600: sw=4 ts=4 fdm=marker * vim600: sw=4 ts=4 */ + -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php4(PHP_4_3) /ext/dba dba.c /ext/dba/tests dba008.phpt
helly Fri Nov 22 10:53:01 2002 EDT Modified files: (Branch: PHP_4_3) /php4/ext/dba dba.c /php4/ext/dba/tests dba008.phpt Log: MFH Index: php4/ext/dba/dba.c diff -u php4/ext/dba/dba.c:1.61.2.2 php4/ext/dba/dba.c:1.61.2.3 --- php4/ext/dba/dba.c:1.61.2.2 Thu Nov 14 16:52:21 2002 +++ php4/ext/dba/dba.c Fri Nov 22 10:53:00 2002 @@ -17,7 +17,7 @@ +--+ */ -/* $Id: dba.c,v 1.61.2.2 2002/11/14 21:52:21 helly Exp $ */ +/* $Id: dba.c,v 1.61.2.3 2002/11/22 15:53:00 helly Exp $ */ #ifdef HAVE_CONFIG_H #include config.h @@ -285,6 +285,8 @@ { DBA_ID_PARS; zval **val, **key; + char *v; + int len; if(ac != 3 || zend_get_parameters_ex(ac, key, val, id) != SUCCESS) { WRONG_PARAM_COUNT; @@ -295,8 +297,19 @@ DBA_WRITE_CHECK; - if(info-hnd-update(info, VALLEN(key), VALLEN(val), mode TSRMLS_CC) == SUCCESS) - RETURN_TRUE; + if (PG(magic_quotes_runtime)) { + len = Z_STRLEN_PP(val); + v = estrndup(Z_STRVAL_PP(val), len); + php_stripslashes(v, len TSRMLS_CC); + if(info-hnd-update(info, VALLEN(key), v, len, mode TSRMLS_CC) == +SUCCESS) { + efree(v); + RETURN_TRUE; + } + efree(v); + } else { + if(info-hnd-update(info, VALLEN(key), VALLEN(val), mode TSRMLS_CC) +== SUCCESS) + RETURN_TRUE; + } RETURN_FALSE; } /* }}} */ Index: php4/ext/dba/tests/dba008.phpt diff -u php4/ext/dba/tests/dba008.phpt:1.1.2.2 php4/ext/dba/tests/dba008.phpt:1.1.2.3 --- php4/ext/dba/tests/dba008.phpt:1.1.2.2 Fri Nov 15 11:39:36 2002 +++ php4/ext/dba/tests/dba008.phpt Fri Nov 22 10:53:01 2002 @@ -10,11 +10,15 @@ require_once('test.inc'); echo database handler: $handler\n; if (($db_file=dba_open($db_file, n, $handler))!==FALSE) { - dba_insert(key1, '', $db_file); ini_set('magic_quotes_runtime', 0); + dba_insert(key1, '', $db_file); var_dump(dba_fetch(key1, $db_file)); ini_set('magic_quotes_runtime', 1); var_dump(dba_fetch(key1, $db_file)); + dba_replace(key1, '\', $db_file); + var_dump(dba_fetch(key1, $db_file)); + ini_set('magic_quotes_runtime', 0); + var_dump(dba_fetch(key1, $db_file)); dba_close($db_file); } else { echo Error creating database\n; @@ -24,3 +28,5 @@ database handler: %s string(1) string(2) \ +string(2) \ +string(1) -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php