cvs: php4 / NEWS /ext/msql php_msql.c /ext/mysql/libmysql mysql_version.h /ext/pgsql pgsql.c /ext/sybase_ct php_sybase_ct.c
| From: | Zeev Suraski | Date: | Fri, 03 Nov 2000 02:46:50 +0000 |
| Subject: | cvs: php4 / NEWS /ext/msql php_msql.c /ext/mysql/libmysql mysql_version.h /ext/pgsql pgsql.c /ext/sybase_ct php_sybase_ct.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-2448@lists.php.net to get a copy of this message | ||
zeev Thu Nov 2 18:46:50 2000 EDT
Modified files:
/php4 NEWS
/php4/ext/msql php_msql.c
/php4/ext/mysql/libmysql mysql_version.h
/php4/ext/pgsql pgsql.c
/php4/ext/sybase_ct php_sybase_ct.c
Log:
Fix msql_close(), pg_close() and sybase_close() (Sybase CT)
Index: php4/NEWS
diff -u php4/NEWS:1.505 php4/NEWS:1.506
--- php4/NEWS:1.505 Thu Nov 2 16:57:05 2000
+++ php4/NEWS Thu Nov 2 18:46:48 2000
@@ -2,8 +2,9 @@
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
?? ??? 2000, Version 4.0.4
+- Fixed mysql_close(), pg_close(), msql_close() and sybase_close() - they
+ weren't properly closing the SQL connections (Zeev)
- Fixed crypt() to supply random seed if none is given (Andi)
-- Fixed mysql_close() - it wasn't properly closing MySQL connections (Zeev)
- Made print_r support recursive data structures, e.g., $GLOBALS. (Zeev)
- Fixed a bug that caused PHP not to properly flush its output buffer, if more
than one output buffer was used. (Zeev)
Index: php4/ext/msql/php_msql.c
diff -u php4/ext/msql/php_msql.c:1.25 php4/ext/msql/php_msql.c:1.26
--- php4/ext/msql/php_msql.c:1.25 Thu Nov 2 16:52:53 2000
+++ php4/ext/msql/php_msql.c Thu Nov 2 18:46:49 2000
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_msql.c,v 1.25 2000/11/03 00:52:53 zeev Exp $ */
+/* $Id: php_msql.c,v 1.26 2000/11/03 02:46:49 zeev Exp $ */
#include "php.h"
#include "php_msql.h"
@@ -404,12 +404,16 @@
ZEND_FETCH_RESOURCE2(msql, int, &msql_link, id, "mSQL-Link", msql_globals.le_link,
msql_globals.le_plink);
- zend_list_delete(Z_RESVAL_P(msql_link));
- if (Z_RESVAL_P(mysql_link)==msql_globals.default_link) {
+ if (id==-1) { /* explicit resource number */
+ zend_list_delete(Z_RESVAL_P(msql_link));
+ }
+
+ if (id!=-1
+ || (msql_link && Z_RESVAL_P(msql_link)==msql_globals.default_link)) {
zend_list_delete(msql_globals.default_link);
+ msql_globals.default_link = -1;
}
- zend_list_delete(id);
RETURN_TRUE;
}
/* }}} */
Index: php4/ext/mysql/libmysql/mysql_version.h
diff -u php4/ext/mysql/libmysql/mysql_version.h:1.4 php4/ext/mysql/libmysql/mysql_version.h:1.5
--- php4/ext/mysql/libmysql/mysql_version.h:1.4 Fri Oct 20 15:26:48 2000
+++ php4/ext/mysql/libmysql/mysql_version.h Thu Nov 2 18:46:49 2000
@@ -11,7 +11,6 @@
#define FRM_VER 6
#define MYSQL_VERSION_ID 32322
#define MYSQL_PORT 3306
-#define MYSQL_UNIX_ADDR "/tmp/mysql.sock"
/* mysqld compile time options */
#ifndef MYSQL_CHARSET
Index: php4/ext/pgsql/pgsql.c
diff -u php4/ext/pgsql/pgsql.c:1.79 php4/ext/pgsql/pgsql.c:1.80
--- php4/ext/pgsql/pgsql.c:1.79 Thu Nov 2 16:51:53 2000
+++ php4/ext/pgsql/pgsql.c Thu Nov 2 18:46:49 2000
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: pgsql.c,v 1.79 2000/11/03 00:51:53 zeev Exp $ */
+/* $Id: pgsql.c,v 1.80 2000/11/03 02:46:49 zeev Exp $ */
#include <stdlib.h>
@@ -466,7 +466,7 @@
PHP_FUNCTION(pg_close)
{
zval **pgsql_link = NULL;
- int id = -1;
+ int id;
PGconn *pgsql;
PGLS_FETCH();
@@ -479,6 +479,7 @@
if (zend_get_parameters_ex(1, &pgsql_link)==FAILURE) {
RETURN_FALSE;
}
+ id = -1;
break;
default:
WRONG_PARAM_COUNT;
@@ -486,9 +487,15 @@
}
ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link,
le_plink);
- zend_list_delete(Z_RESVAL_PP(pgsql_link));
- if (Z_RESVAL_PP(pgsql_link)==PGG(default_link)) {
+
+ if (id==-1) { /* explicit resource number */
+ zend_list_delete(Z_RESVAL_PP(pgsql_link));
+ }
+
+ if (id!=-1
+ || (pgsql_link && Z_RESVAL_PP(pgsql_link)==PGG(default_link))) {
zend_list_delete(PGG(default_link));
+ PGG(default_link) = -1;
}
RETURN_TRUE;
Index: php4/ext/sybase_ct/php_sybase_ct.c
diff -u php4/ext/sybase_ct/php_sybase_ct.c:1.37 php4/ext/sybase_ct/php_sybase_ct.c:1.38
--- php4/ext/sybase_ct/php_sybase_ct.c:1.37 Wed Oct 25 10:44:01 2000
+++ php4/ext/sybase_ct/php_sybase_ct.c Thu Nov 2 18:46:49 2000
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_sybase_ct.c,v 1.37 2000/10/25 17:44:01 andrei Exp $ */
+/* $Id: php_sybase_ct.c,v 1.38 2000/11/03 02:46:49 zeev Exp $ */
#include "php.h"
@@ -687,10 +687,14 @@
ZEND_FETCH_RESOURCE2(sybase_ptr, sybase_link *, &sybase_link_index, id,
"Sybase-Link", le_link, le_plink);
- if (sybase_link_index) {
- zend_list_delete(sybase_link_index->value.lval);
- } else {
- zend_list_delete(id);
+ if (id==-1) { /* explicit resource number */
+ zend_list_delete(Z_RESVAL_P(sybase_link_index));
+ }
+
+ if (id!=-1
+ || (sybase_link_index && Z_RESVAL_P(sybase_link_index)==SybCtG(default_link))) {
+ zend_list_delete(SybCtG(default_link));
+ SybCtG(default_link) = -1;
}
RETURN_TRUE;