cvs: /php4 php4dllts.dsp /php4/ext/mysql php_mysql.c
| From: | Zeev Suraski | Date: | Sat, 19 Feb 2000 22:42:23 +0000 |
| Subject: | cvs: /php4 php4dllts.dsp /php4/ext/mysql php_mysql.c | ||
| Groups: | php.version4 | ||
| Request: | Send a blank email to php-version4+get-10506@lists.php.net to get a copy of this message | ||
zeev Sat Feb 19 14:42:23 2000 EDT
Modified files:
/php4 php4dllts.dsp
/php4/ext/mysql php_mysql.c
Log:
Restore the singal protection in the MySQL module
Index: php4/php4dllts.dsp
diff -u php4/php4dllts.dsp:1.55 php4/php4dllts.dsp:1.56
--- php4/php4dllts.dsp:1.55 Sat Feb 19 11:01:09 2000
+++ php4/php4dllts.dsp Sat Feb 19 14:41:53 2000
@@ -1072,6 +1072,10 @@
SOURCE=".\README.CVS-RULES"
# End Source File
+# Begin Source File
+
+SOURCE=.\TODO
+# End Source File
# End Group
# End Target
# End Project
Index: php4/ext/mysql/php_mysql.c
diff -u php4/ext/mysql/php_mysql.c:1.28 php4/ext/mysql/php_mysql.c:1.29
--- php4/ext/mysql/php_mysql.c:1.28 Sat Feb 12 11:47:49 2000
+++ php4/ext/mysql/php_mysql.c Sat Feb 19 14:41:53 2000
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_mysql.c,v 1.28 2000/02/12 19:47:49 andi Exp $ */
+/* $Id: php_mysql.c,v 1.29 2000/02/19 22:41:53 zeev Exp $ */
/* TODO:
@@ -158,6 +158,7 @@
DLEXPORT zend_module_entry *get_module(void) { return &mysql_module_entry; }
#endif
+void timeout(int sig);
#define CHECK_LINK(link) { if (link==-1) { php_error(E_WARNING,"MySQL: A link to the server
could not be established"); RETURN_FALSE; } }
@@ -184,18 +185,24 @@
static void _close_mysql_link(MYSQL *link)
{
+ void (*handler) (int);
MySLS_FETCH();
+ handler = signal(SIGPIPE, SIG_IGN);
mysql_close(link);
+ signal(SIGPIPE,handler);
efree(link);
MySG(num_links)--;
}
static void _close_mysql_plink(MYSQL *link)
{
+ void (*handler) (int);
MySLS_FETCH();
+ handler = signal(SIGPIPE, SIG_IGN);
mysql_close(link);
+ signal(SIGPIPE,handler);
free(link);
MySG(num_persistent)--;
@@ -316,6 +323,7 @@
char *hashed_details;
int hashed_details_length,port = MYSQL_PORT;
MYSQL *mysql;
+ void (*handler) (int);
MySLS_FETCH();
PLS_FETCH();
@@ -449,12 +457,14 @@
RETURN_FALSE;
}
/* ensure that the link did not die */
+ handler=signal(SIGPIPE,SIG_IGN);
#if defined(HAVE_MYSQL_ERRNO) && defined(CR_SERVER_GONE_ERROR)
mysql_stat(le->ptr);
if (mysql_errno((MYSQL *)le->ptr) == CR_SERVER_GONE_ERROR) {
#else
if (!strcasecmp(mysql_stat(le->ptr),"mysql server has gone away")) { /* the link
died */
#endif
+ signal(SIGPIPE,handler);
#if MYSQL_VERSION_ID > 32199 /* this lets us set the port number */
if (mysql_real_connect(le->ptr,host,user,passwd,NULL,port,socket,0)==NULL) {
#else
@@ -466,6 +476,7 @@
RETURN_FALSE;
}
}
+ signal(SIGPIPE,handler);
mysql = (MYSQL *) le->ptr;
}
ZEND_REGISTER_RESOURCE(return_value, mysql, le_plink);