helly Tue Mar 4 18:45:48 2003 EDT
Modified files:
/php4/ext/dba dba.c php_dba.h
Log:
Use stream locking support
# needs more testing
Index: php4/ext/dba/dba.c
diff -u php4/ext/dba/dba.c:1.85 php4/ext/dba/dba.c:1.86
--- php4/ext/dba/dba.c:1.85 Tue Mar 4 14:56:35 2003
+++ php4/ext/dba/dba.c Tue Mar 4 18:45:48 2003
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: dba.c,v 1.85 2003/03/04 19:56:35 helly Exp $ */
+/* $Id: dba.c,v 1.86 2003/03/04 23:45:48 helly Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -28,7 +28,6 @@
#if HAVE_DBA
#include "php_ini.h"
-#include "ext/standard/flock_compat.h"
#include <stdio.h>
#include <fcntl.h>
#ifdef HAVE_SYS_FILE_H
@@ -319,11 +318,6 @@
if (info->hnd) info->hnd->close(info TSRMLS_CC);
if (info->path) pefree(info->path, info->flags&DBA_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);
- /*close(info->lock.fd);*/
- info->lock.fd = 0;
- }
if (info->lock.fp) php_stream_close(info->lock.fp);
if (info->lock.name) pefree(info->lock.name, info->flags&DBA_PERSISTENT);
pefree(info, info->flags&DBA_PERSISTENT);
@@ -707,13 +701,10 @@
FREENOW;
RETURN_FALSE;
}
- if (php_stream_cast(info->lock.fp, PHP_STREAM_AS_FD,
(void*)&info->lock.fd, 1) == FAILURE) {
- dba_close(info TSRMLS_CC);
- /* stream operation already wrote an error message */
- FREENOW;
- RETURN_FALSE;
+ if (!php_stream_supports_lock(info->lock.fp)) {
+ error = "Stream does not support locking";
}
- if (php_flock(info->lock.fd, lock_mode)) {
+ if (php_stream_lock(info->lock.fp, lock_mode)) {
error = "Unable to establish lock"; /* force failure exit */
}
}
Index: php4/ext/dba/php_dba.h
diff -u php4/ext/dba/php_dba.h:1.23 php4/ext/dba/php_dba.h:1.24
--- php4/ext/dba/php_dba.h:1.23 Tue Dec 31 11:06:25 2002
+++ php4/ext/dba/php_dba.h Tue Mar 4 18:45:48 2003
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_dba.h,v 1.23 2002/12/31 16:06:25 sebastian Exp $ */
+/* $Id: php_dba.h,v 1.24 2003/03/04 23:45:48 helly Exp $ */
#ifndef PHP_DBA_H
#define PHP_DBA_H
@@ -33,7 +33,6 @@
typedef struct dba_lock {
php_stream *fp;
- int fd;
char *name;
int mode; /* LOCK_EX,LOCK_SH */
} dba_lock;
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php