[PHP-CVS] cvs: php-src /ext/informix ifx.ec
tony2001Thu May 4 22:47:53 2006 UTC Modified files: /php-src/ext/informix ifx.ec Log: plug a leak http://cvs.php.net/viewcvs.cgi/php-src/ext/informix/ifx.ec?r1=1.115r2=1.116diff_format=u Index: php-src/ext/informix/ifx.ec diff -u php-src/ext/informix/ifx.ec:1.115 php-src/ext/informix/ifx.ec:1.116 --- php-src/ext/informix/ifx.ec:1.115 Thu May 4 18:59:59 2006 +++ php-src/ext/informix/ifx.ec Thu May 4 22:47:53 2006 @@ -21,7 +21,7 @@ +--+ */ -/* $Id: ifx.ec,v 1.115 2006/05/04 18:59:59 tony2001 Exp $ */ +/* $Id: ifx.ec,v 1.116 2006/05/04 22:47:53 tony2001 Exp $ */ /* --- * if you want a function reference : grep '^\*\*' ifx.ec will give @@ -2624,6 +2624,7 @@ IFXG(sv_sqlcode) = SQLCODE; php_error_docref(NULL TSRMLS_CC, E_WARNING, Get descriptor (field # %d) fails (%s), i, ifx_err); efree(ifx_err); + zval_dtor(return_value); RETURN_FALSE; } @@ -2789,6 +2790,7 @@ IFXG(sv_sqlcode) = SQLCODE; php_error_docref(NULL TSRMLS_CC, E_WARNING, Get descriptor (field # %d) fails (%s), i, ifx_err); efree(ifx_err); + zval_dtor(return_value); RETURN_FALSE; } -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/informix ifx.ec
sas Fri Jan 13 14:23:35 2006 UTC Modified files: /php-src/ext/informix ifx.ec Log: - lower valgrind error count to zero. http://cvs.php.net/viewcvs.cgi/php-src/ext/informix/ifx.ec?r1=1.112r2=1.113diff_format=u Index: php-src/ext/informix/ifx.ec diff -u php-src/ext/informix/ifx.ec:1.112 php-src/ext/informix/ifx.ec:1.113 --- php-src/ext/informix/ifx.ec:1.112 Sun Jan 1 13:09:50 2006 +++ php-src/ext/informix/ifx.ec Fri Jan 13 14:23:34 2006 @@ -21,7 +21,7 @@ +--+ */ -/* $Id: ifx.ec,v 1.112 2006/01/01 13:09:50 sniper Exp $ */ +/* $Id: ifx.ec,v 1.113 2006/01/13 14:23:34 sas Exp $ */ /* --- * if you want a function reference : grep '^\*\*' ifx.ec will give @@ -3948,6 +3948,7 @@ php_error_docref(NULL TSRMLS_CC, E_WARNING, Can't create char-resource); return -1; } +memset(Ifx_char, 0, sizeof(IFX_IDRES)); Ifx_char-type = TYPE_CHAR; @@ -4232,6 +4233,7 @@ php_error_docref(NULL TSRMLS_CC, E_WARNING, Can't create slob-resource); return -1; } +memset(Ifx_slob, 0, sizeof(IFX_IDRES)); errcode = ifx_lo_def_create_spec((Ifx_slob-SLOB.createspec)); if (errcode 0) { @@ -4474,6 +4476,7 @@ php_error_docref(NULL TSRMLS_CC, E_WARNING, Can't create slob-resource); return -1; } +memset(Ifx_slob, 0, sizeof(IFX_IDRES)); Ifx_slob-type = TYPE_SLOB; Ifx_slob-SLOB.lofd = -1; -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/informix ifx.ec
sas Fri Jan 13 14:30:32 2006 UTC Modified files: /php-src/ext/informix ifx.ec Log: - WS http://cvs.php.net/viewcvs.cgi/php-src/ext/informix/ifx.ec?r1=1.113r2=1.114diff_format=u Index: php-src/ext/informix/ifx.ec diff -u php-src/ext/informix/ifx.ec:1.113 php-src/ext/informix/ifx.ec:1.114 --- php-src/ext/informix/ifx.ec:1.113 Fri Jan 13 14:23:34 2006 +++ php-src/ext/informix/ifx.ec Fri Jan 13 14:30:32 2006 @@ -21,7 +21,7 @@ +--+ */ -/* $Id: ifx.ec,v 1.113 2006/01/13 14:23:34 sas Exp $ */ +/* $Id: ifx.ec,v 1.114 2006/01/13 14:30:32 sas Exp $ */ /* --- * if you want a function reference : grep '^\*\*' ifx.ec will give @@ -3948,7 +3948,7 @@ php_error_docref(NULL TSRMLS_CC, E_WARNING, Can't create char-resource); return -1; } -memset(Ifx_char, 0, sizeof(IFX_IDRES)); + memset(Ifx_char, 0, sizeof(IFX_IDRES)); Ifx_char-type = TYPE_CHAR; @@ -4233,7 +4233,7 @@ php_error_docref(NULL TSRMLS_CC, E_WARNING, Can't create slob-resource); return -1; } -memset(Ifx_slob, 0, sizeof(IFX_IDRES)); + memset(Ifx_slob, 0, sizeof(IFX_IDRES)); errcode = ifx_lo_def_create_spec((Ifx_slob-SLOB.createspec)); if (errcode 0) { @@ -4476,7 +4476,7 @@ php_error_docref(NULL TSRMLS_CC, E_WARNING, Can't create slob-resource); return -1; } -memset(Ifx_slob, 0, sizeof(IFX_IDRES)); + memset(Ifx_slob, 0, sizeof(IFX_IDRES)); Ifx_slob-type = TYPE_SLOB; Ifx_slob-SLOB.lofd = -1; -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/informix ifx.ec
iliaa Mon May 31 16:25:36 2004 EDT Modified files: /php-src/ext/informix ifx.ec Log: Fix build. http://cvs.php.net/diff.php/php-src/ext/informix/ifx.ec?r1=1.103r2=1.104ty=u Index: php-src/ext/informix/ifx.ec diff -u php-src/ext/informix/ifx.ec:1.103 php-src/ext/informix/ifx.ec:1.104 --- php-src/ext/informix/ifx.ec:1.103 Sun May 30 14:58:46 2004 +++ php-src/ext/informix/ifx.ec Mon May 31 16:25:36 2004 @@ -21,7 +21,7 @@ +--+ */ -/* $Id: ifx.ec,v 1.103 2004/05/30 18:58:46 iliaa Exp $ */ +/* $Id: ifx.ec,v 1.104 2004/05/31 20:25:36 iliaa Exp $ */ /* --- * if you want a function reference : grep '^\*\*' ifx.ec will give @@ -126,8 +126,8 @@ #define PHP_IFX_CHECK_CONNECTION(ifx) \ { \ if (ifx_check() 0) { \ + char *ifx_err = ifx_error(ifx); \ IFXG(sv_sqlcode) = SQLCODE; \ -char *ifx_err = ifx_error(ifx); \ php_error_docref(NULL TSRMLS_CC, E_WARNING, Set connection %s fails (%s), ifx, ifx_err); \ efree(ifx_err);\ RETURN_FALSE; \ @@ -289,7 +289,7 @@ PARAMETER char *link; EXEC SQL END DECLARE SECTION; { - char *ifx_err = null; + char *ifx_err = NULL; TSRMLS_FETCH(); EXEC SQL SET CONNECTION :link; -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/informix ifx.ec
pajoye Mon May 31 17:04:20 2004 EDT Modified files: /php-src/ext/informix ifx.ec Log: MFB: missing ';' http://cvs.php.net/diff.php/php-src/ext/informix/ifx.ec?r1=1.104r2=1.105ty=u Index: php-src/ext/informix/ifx.ec diff -u php-src/ext/informix/ifx.ec:1.104 php-src/ext/informix/ifx.ec:1.105 --- php-src/ext/informix/ifx.ec:1.104 Mon May 31 16:25:36 2004 +++ php-src/ext/informix/ifx.ec Mon May 31 17:04:20 2004 @@ -21,7 +21,7 @@ +--+ */ -/* $Id: ifx.ec,v 1.104 2004/05/31 20:25:36 iliaa Exp $ */ +/* $Id: ifx.ec,v 1.105 2004/05/31 21:04:20 pajoye Exp $ */ /* --- * if you want a function reference : grep '^\*\*' ifx.ec will give @@ -433,7 +433,6 @@ IFXG(num_links) = IFXG(num_persistent); return SUCCESS; } - PHP_MINFO_FUNCTION(ifx) { char buf[32]; @@ -444,7 +443,7 @@ php_info_print_table_row(2, Active Persistent links, buf); sprintf(buf, %ld, IFXG(num_links)); php_info_print_table_row(2, Active links, buf); - sprintf(buf, %02.2f, (double)(IFX_VERSION/100.0)); + sprintf(buf, %02.2f, (double)(IFX_VERSION/100.0)); php_info_print_table_row(2, ESQL/C Version, buf); php_info_print_table_end(); @@ -1419,7 +1418,7 @@ } if (ifx_check() 0) { - char *ifx_err = ifx_error(ifx) + char *ifx_err = ifx_error(ifx); IFXG(sv_sqlcode) = SQLCODE; EXEC SQL DEALLOCATE DESCRIPTOR :i_descrpid; EXEC SQL free :statemid; -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/informix ifx.ec
abies Mon May 31 20:44:19 2004 EDT Modified files: /php-src/ext/informix ifx.ec Log: Fixed bug #28569 (connection id is not thread safe) http://cvs.php.net/diff.php/php-src/ext/informix/ifx.ec?r1=1.105r2=1.106ty=u Index: php-src/ext/informix/ifx.ec diff -u php-src/ext/informix/ifx.ec:1.105 php-src/ext/informix/ifx.ec:1.106 --- php-src/ext/informix/ifx.ec:1.105 Mon May 31 17:04:20 2004 +++ php-src/ext/informix/ifx.ec Mon May 31 20:44:19 2004 @@ -21,7 +21,7 @@ +--+ */ -/* $Id: ifx.ec,v 1.105 2004/05/31 21:04:20 pajoye Exp $ */ +/* $Id: ifx.ec,v 1.106 2004/06/01 00:44:19 abies Exp $ */ /* --- * if you want a function reference : grep '^\*\*' ifx.ec will give @@ -54,6 +54,12 @@ #include winsock.h #endif +#ifdef ZTS +#define IFX_THRD_ID tsrm_thread_id() +#else +#define IFX_THRD_ID 0 +#endif + #if HAVE_SYS_TYPES_H #include sys/types.h #endif @@ -123,16 +129,16 @@ typedef char IFX[128]; #define SAFE_STRING(s) ((s) ? (s) : ) -#define PHP_IFX_CHECK_CONNECTION(ifx) \ -{ \ -if (ifx_check() 0) { \ - char *ifx_err = ifx_error(ifx); \ -IFXG(sv_sqlcode) = SQLCODE; \ -php_error_docref(NULL TSRMLS_CC, E_WARNING, Set connection %s fails (%s), ifx, ifx_err); \ -efree(ifx_err);\ -RETURN_FALSE; \ -} \ -} +#define PHP_IFX_CHECK_CONNECTION(ifx) \ + do { \ + if (ifx_check() 0) { \ + char *ifx_err = ifx_error(ifx); \ + IFXG(sv_sqlcode) = SQLCODE; \ + php_error_docref(NULL TSRMLS_CC, E_WARNING, Set connection %s fails (%s), ifx, ifx_err); \ + efree(ifx_err); \ + RETURN_FALSE; \ + } \ + } while (0) function_entry ifx_functions[] = { PHP_FE(ifx_connect,NULL) @@ -541,7 +547,7 @@ /* create the link */ ifx = (char *) malloc(sizeof(IFX)); IFXG(connectionid)++; - sprintf(ifx, %s%x, SAFE_STRING(user), IFXG(connectionid)); + sprintf(ifx, %s%x_%x, SAFE_STRING(user), IFX_THRD_ID,IFXG(connectionid)); EXEC SQL CONNECT TO :host AS :ifx USER :user USING :passwd WITH CONCURRENT TRANSACTION; @@ -644,7 +650,7 @@ ifx = (char *) emalloc(sizeof(IFX)); IFXG(connectionid)++; - sprintf(ifx, connec%x, IFXG(connectionid)); + sprintf(ifx, connec%x_%x, IFX_THRD_ID, IFXG(connectionid)); EXEC SQL CONNECT TO :host AS :ifx USER :user USING :passwd WITH CONCURRENT TRANSACTION; @@ -1241,10 +1247,10 @@ statement = Z_STRVAL_PP(query); IFXG(cursorid)++; - sprintf(statemid, statem%x, IFXG(cursorid)); - sprintf(cursorid, cursor%x, IFXG(cursorid)); - sprintf(descrpid, descrp%x, IFXG(cursorid)); - sprintf(i_descrpid, i_descrp%x, IFXG(cursorid)); + sprintf(statemid, statem%x_%x, IFX_THRD_ID, IFXG(cursorid)); + sprintf(cursorid, cursor%x_%x, IFX_THRD_ID, IFXG(cursorid)); + sprintf(descrpid, descrp%x_%x, IFX_THRD_ID, IFXG(cursorid)); + sprintf(i_descrpid, i_descrp%x_%x, IFX_THRD_ID,IFXG(cursorid)); EXEC SQL set connection :ifx; PHP_IFX_CHECK_CONNECTION(ifx); -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/informix ifx.ec
abies Mon May 31 20:50:00 2004 EDT Modified files: /php-src/ext/informix ifx.ec Log: Woops, missed one http://cvs.php.net/diff.php/php-src/ext/informix/ifx.ec?r1=1.106r2=1.107ty=u Index: php-src/ext/informix/ifx.ec diff -u php-src/ext/informix/ifx.ec:1.106 php-src/ext/informix/ifx.ec:1.107 --- php-src/ext/informix/ifx.ec:1.106 Mon May 31 20:44:19 2004 +++ php-src/ext/informix/ifx.ec Mon May 31 20:49:59 2004 @@ -21,7 +21,7 @@ +--+ */ -/* $Id: ifx.ec,v 1.106 2004/06/01 00:44:19 abies Exp $ */ +/* $Id: ifx.ec,v 1.107 2004/06/01 00:49:59 abies Exp $ */ /* --- * if you want a function reference : grep '^\*\*' ifx.ec will give @@ -823,10 +823,10 @@ statement = Z_STRVAL_PP(query); IFXG(cursorid)++; - sprintf(statemid, statem%x, IFXG(cursorid)); - sprintf(cursorid, cursor%x, IFXG(cursorid)); - sprintf(descrpid, descrp%x, IFXG(cursorid)); - sprintf(i_descrpid, i_descrp%x, IFXG(cursorid)); + sprintf(statemid, statem%x_%x, IFX_THRD_ID, IFXG(cursorid)); + sprintf(cursorid, cursor%x_%x, IFX_THRD_ID, IFXG(cursorid)); + sprintf(descrpid, descrp%x_%x, IFX_THRD_ID, IFXG(cursorid)); + sprintf(i_descrpid, i_descrp%x_%x, IFX_THRD_ID,IFXG(cursorid)); EXEC SQL set connection :ifx; PHP_IFX_CHECK_CONNECTION(ifx); -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/informix ifx.ec
iliaa Sun May 30 14:58:46 2004 EDT Modified files: /php-src/ext/informix ifx.ec Log: Fixed memory leak on ifx_error(). http://cvs.php.net/diff.php/php-src/ext/informix/ifx.ec?r1=1.102r2=1.103ty=u Index: php-src/ext/informix/ifx.ec diff -u php-src/ext/informix/ifx.ec:1.102 php-src/ext/informix/ifx.ec:1.103 --- php-src/ext/informix/ifx.ec:1.102 Sun May 30 13:56:51 2004 +++ php-src/ext/informix/ifx.ec Sun May 30 14:58:46 2004 @@ -21,7 +21,7 @@ +--+ */ -/* $Id: ifx.ec,v 1.102 2004/05/30 17:56:51 iliaa Exp $ */ +/* $Id: ifx.ec,v 1.103 2004/05/30 18:58:46 iliaa Exp $ */ /* --- * if you want a function reference : grep '^\*\*' ifx.ec will give @@ -127,7 +127,9 @@ { \ if (ifx_check() 0) { \ IFXG(sv_sqlcode) = SQLCODE; \ -php_error_docref(NULL TSRMLS_CC, E_WARNING, Set connection %s fails (%s), ifx, ifx_error(ifx)); \ +char *ifx_err = ifx_error(ifx); \ +php_error_docref(NULL TSRMLS_CC, E_WARNING, Set connection %s fails (%s), ifx, ifx_err); \ +efree(ifx_err);\ RETURN_FALSE; \ } \ } @@ -287,6 +289,7 @@ PARAMETER char *link; EXEC SQL END DECLARE SECTION; { + char *ifx_err = null; TSRMLS_FETCH(); EXEC SQL SET CONNECTION :link; @@ -303,7 +306,7 @@ EXEC SQL DISCONNECT :link; if (ifx_check() 0) { IFXG(sv_sqlcode) = SQLCODE; - php_error_docref(NULL TSRMLS_CC, E_WARNING, Disconnect link %s after Automatic Rollback fails (%s), link, ifx_error(link)); + php_error_docref(NULL TSRMLS_CC, E_WARNING, Disconnect link %s after Automatic Rollback fails (%s), link, (ifx_err = ifx_error(link))); } } if (ifx_check() 0) { @@ -311,20 +314,23 @@ EXEC SQL CLOSE DATABASE; if (ifx_check() 0) { IFXG(sv_sqlcode) = SQLCODE; - php_error_docref(NULL TSRMLS_CC, E_WARNING, Close database fails %s (%s), link, ifx_error(link)); + php_error_docref(NULL TSRMLS_CC, E_WARNING, Close database fails %s (%s), link, (ifx_err = ifx_error(link))); } } } else if (SQLCODE 0) { IFXG(sv_sqlcode) = SQLCODE; - php_error_docref(NULL TSRMLS_CC, E_WARNING, Disconnect link %s fails (%s), link, ifx_error(link)); + php_error_docref(NULL TSRMLS_CC, E_WARNING, Disconnect link %s fails (%s), link, (ifx_err = ifx_error(link))); } } else { IFXG(sv_sqlcode) = SQLCODE; - php_error_docref(NULL TSRMLS_CC, E_WARNING, Set connection %s fails (%s), link, ifx_error(link)); + php_error_docref(NULL TSRMLS_CC, E_WARNING, Set connection %s fails (%s), link, (ifx_err = ifx_error(link))); } + if (ifx_err) { + efree(ifx_err); + } } static void _close_ifx_link(zend_rsrc_list_entry *rsrc TSRMLS_DC) @@ -541,8 +547,10 @@ EXEC SQL CONNECT TO :host AS :ifx USER :user USING :passwd WITH CONCURRENT TRANSACTION; if (ifx_check() == IFX_ERROR) { + char *ifx_err = ifx_error(ifx); IFXG(sv_sqlcode) = SQLCODE; - php_error_docref(NULL TSRMLS_CC, E_WARNING, %s, ifx_error(ifx)); + php_error_docref(NULL TSRMLS_CC, E_WARNING, %s, ifx_err); + efree(ifx_err); free(ifx); efree(hashed_details); RETURN_FALSE; @@ -570,9 +578,11 @@ EXEC SQL CONNECT TO :host AS :ifx USER :user USING :passwd WITH CONCURRENT TRANSACTION; if (ifx_check() == IFX_ERROR) { + char *ifx_err = ifx_error(ifx); IFXG(sv_sqlcode) = SQLCODE; - php_error_docref(NULL TSRMLS_CC, E_WARNING, Link to server lost, unable to reconnect (%s), ifx_error(ifx)); + php_error_docref(NULL TSRMLS_CC,
[PHP-CVS] cvs: php-src /ext/informix ifx.ec
edink Fri Jan 9 09:13:46 2004 EDT Modified files: /php-src/ext/informix ifx.ec Log: Fix ZTS build Index: php-src/ext/informix/ifx.ec diff -u php-src/ext/informix/ifx.ec:1.99 php-src/ext/informix/ifx.ec:1.100 --- php-src/ext/informix/ifx.ec:1.99Thu Jan 8 12:32:12 2004 +++ php-src/ext/informix/ifx.ec Fri Jan 9 09:13:45 2004 @@ -21,7 +21,7 @@ +--+ */ -/* $Id: ifx.ec,v 1.99 2004/01/08 17:32:12 sniper Exp $ */ +/* $Id: ifx.ec,v 1.100 2004/01/09 14:13:45 edink Exp $ */ /* --- * if you want a function reference : grep '^\*\*' ifx.ec will give @@ -278,11 +278,12 @@ return(ifx_err_msg); } -static void ifx_do_close(link TSRMLS_DC) +static void ifx_do_close(link) EXEC SQL BEGIN DECLARE SECTION; PARAMETER char *link; EXEC SQL END DECLARE SECTION; { + TSRMLS_FETCH(); EXEC SQL SET CONNECTION :link; @@ -328,7 +329,7 @@ link=(char *)rsrc-ptr; - ifx_do_close(link TSRMLS_CC); + ifx_do_close(link); efree(link); IFXG(num_links)--; @@ -340,7 +341,7 @@ link = (char *)rsrc-ptr; - ifx_do_close(link TSRMLS_CC); + ifx_do_close(link); free(link); IFXG(num_persistent)--; -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/informix ifx.ec
iliaa Mon Nov 10 20:51:19 2003 EDT Modified files: /php-src/ext/informix ifx.ec Log: Fix ZTS build. Index: php-src/ext/informix/ifx.ec diff -u php-src/ext/informix/ifx.ec:1.97 php-src/ext/informix/ifx.ec:1.98 --- php-src/ext/informix/ifx.ec:1.97Tue Oct 7 05:29:55 2003 +++ php-src/ext/informix/ifx.ec Mon Nov 10 20:51:18 2003 @@ -21,7 +21,7 @@ +--+ */ -/* $Id: ifx.ec,v 1.97 2003/10/07 09:29:55 nobbie Exp $ */ +/* $Id: ifx.ec,v 1.98 2003/11/11 01:51:18 iliaa Exp $ */ /* --- * if you want a function reference : grep '^\*\*' ifx.ec will give @@ -278,7 +278,7 @@ return(ifx_err_msg); } -static void ifx_do_close(link) +static void ifx_do_close(link TSRMLS_DC) EXEC SQL BEGIN DECLARE SECTION; PARAMETER char *link; EXEC SQL END DECLARE SECTION; @@ -328,7 +328,7 @@ link=(char *)rsrc-ptr; - ifx_do_close(link); + ifx_do_close(link TSRMLS_CC); efree(link); IFXG(num_links)--; @@ -340,7 +340,7 @@ link = (char *)rsrc-ptr; - ifx_do_close(link); + ifx_do_close(link TSRMLS_CC); free(link); IFXG(num_persistent)--; -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/informix ifx.ec
nobbie Tue Oct 7 05:29:56 2003 EDT Modified files: /php-src/ext/informix ifx.ec Log: - Fixed bug #18534 (ifx_close() leaves open session) - (ifx_do_close) Added Index: php-src/ext/informix/ifx.ec diff -u php-src/ext/informix/ifx.ec:1.96 php-src/ext/informix/ifx.ec:1.97 --- php-src/ext/informix/ifx.ec:1.96Thu Sep 11 19:49:25 2003 +++ php-src/ext/informix/ifx.ec Tue Oct 7 05:29:55 2003 @@ -21,7 +21,7 @@ +--+ */ -/* $Id: ifx.ec,v 1.96 2003/09/11 23:49:25 sniper Exp $ */ +/* $Id: ifx.ec,v 1.97 2003/10/07 09:29:55 nobbie Exp $ */ /* --- * if you want a function reference : grep '^\*\*' ifx.ec will give @@ -278,36 +278,70 @@ return(ifx_err_msg); } -static void _close_ifx_link(zend_rsrc_list_entry *rsrc TSRMLS_DC) -{ +static void ifx_do_close(link) EXEC SQL BEGIN DECLARE SECTION; - char *link; + PARAMETER char *link; EXEC SQL END DECLARE SECTION; - - link=(char *)rsrc-ptr; +{ EXEC SQL SET CONNECTION :link; + if (ifx_check() = 0) { - EXEC SQL close database; - EXEC SQL DISCONNECT CURRENT; + EXEC SQL DISCONNECT :link; + + /* check if were in a transaction */ + if (SQLCODE == -1800) { + EXEC SQL SET CONNECTION :link; + EXEC SQL ROLLBACK WORK; + if (ifx_check() == 0) { + /* DISCONNECT again, after rollback */ + EXEC SQL DISCONNECT :link; + if (ifx_check() 0) { + IFXG(sv_sqlcode) = SQLCODE; + php_error_docref(NULL TSRMLS_CC, E_WARNING, Disconnect link %s after Automatic Rollback fails (%s), link, ifx_error(link)); + } + } + if (ifx_check() 0) { + /* CLOSE database if rollback or disconnect fails */ + EXEC SQL CLOSE DATABASE; + if (ifx_check() 0) { + IFXG(sv_sqlcode) = SQLCODE; + php_error_docref(NULL TSRMLS_CC, E_WARNING, Close database fails %s (%s), link, ifx_error(link)); + } + } + } + else if (SQLCODE 0) { + IFXG(sv_sqlcode) = SQLCODE; + php_error_docref(NULL TSRMLS_CC, E_WARNING, Disconnect link %s fails (%s), link, ifx_error(link)); + } + } + else { + IFXG(sv_sqlcode) = SQLCODE; + php_error_docref(NULL TSRMLS_CC, E_WARNING, Set connection %s fails (%s), link, ifx_error(link)); } + +} + +static void _close_ifx_link(zend_rsrc_list_entry *rsrc TSRMLS_DC) +{ + char *link; + + link=(char *)rsrc-ptr; + + ifx_do_close(link); + efree(link); IFXG(num_links)--; } static void _close_ifx_plink(zend_rsrc_list_entry *rsrc TSRMLS_DC) { -EXEC SQL BEGIN DECLARE SECTION; char *link; -EXEC SQL END DECLARE SECTION; link = (char *)rsrc-ptr; - EXEC SQL SET CONNECTION :link; - if (ifx_check() = 0) { - EXEC SQL close database; - EXEC SQL DISCONNECT CURRENT; - } + ifx_do_close(link); + free(link); IFXG(num_persistent)--; IFXG(num_links)--; -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/informix ifx.ec
sniper Thu Sep 11 19:49:26 2003 EDT Modified files: /php-src/ext/informix ifx.ec Log: - Fixed bug #25483 (ext/informix: bogus -469 error from ifx_query()) Index: php-src/ext/informix/ifx.ec diff -u php-src/ext/informix/ifx.ec:1.95 php-src/ext/informix/ifx.ec:1.96 --- php-src/ext/informix/ifx.ec:1.95Tue Jul 1 09:31:12 2003 +++ php-src/ext/informix/ifx.ec Thu Sep 11 19:49:25 2003 @@ -21,7 +21,7 @@ +--+ */ -/* $Id: ifx.ec,v 1.95 2003/07/01 13:31:12 sniper Exp $ */ +/* $Id: ifx.ec,v 1.96 2003/09/11 23:49:25 sniper Exp $ */ /* --- * if you want a function reference : grep '^\*\*' ifx.ec will give @@ -923,7 +923,7 @@ } len++; - EXEC SQL SET DESCRIPTOR :descrpid VALUE :i + EXEC SQL SET DESCRIPTOR :i_descrpid VALUE :i DATA= :char_tmp, LENGTH= :len, INDICATOR= :indicator, -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/informix ifx.ec
nobbie Tue Jul 1 09:27:03 2003 EDT Modified files: /php-src/ext/informix ifx.ec Log: - MFB: 1.69.2.18 Index: php-src/ext/informix/ifx.ec diff -u php-src/ext/informix/ifx.ec:1.93 php-src/ext/informix/ifx.ec:1.94 --- php-src/ext/informix/ifx.ec:1.93Tue Jul 1 07:09:10 2003 +++ php-src/ext/informix/ifx.ec Tue Jul 1 09:27:03 2003 @@ -21,7 +21,7 @@ +--+ */ -/* $Id: ifx.ec,v 1.93 2003/07/01 11:09:10 nobbie Exp $ */ +/* $Id: ifx.ec,v 1.94 2003/07/01 13:27:03 nobbie Exp $ */ /* --- * if you want a function reference : grep '^\*\*' ifx.ec will give @@ -3043,20 +3043,20 @@ if (*param param != ) { - char *filename; - - if (Ifx_blob-BLOB.blob_data.loc_fname != NULL) { - unlink(Ifx_blob-BLOB.blob_data.loc_fname); - efree(Ifx_blob-BLOB.blob_data.loc_fname); - } - if ((filename = emalloc(len + 1)) == NULL) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, Can't create blob-resource); - return -1; - } - memcpy(filename, param, len); - filename[len] = 0; - Ifx_blob-BLOB.blob_data.loc_fname = filename; - Ifx_blob-BLOB.blob_data.loc_size = -1; +/* + * copy the filename in param to filename in loc_fname + * otherwise we'll unlink non-temporary files + * + * loc_fname gets filled by php_intifx_init_blob_infile + */ + +if (Ifx_blob-BLOB.blob_data.loc_fname != NULL) { +if (php_copy_file(param, Ifx_blob-BLOB.blob_data.loc_fname TSRMLS_CC) == FAILURE) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, Can't create blob-resource file. File copy failed: %s, param); + return -1; + } +Ifx_blob-BLOB.blob_data.loc_size = -1; +} } } -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/informix ifx.ec
sniper Tue Jul 1 09:31:13 2003 EDT Modified files: /php-src/ext/informix ifx.ec Log: ws fix Index: php-src/ext/informix/ifx.ec diff -u php-src/ext/informix/ifx.ec:1.94 php-src/ext/informix/ifx.ec:1.95 --- php-src/ext/informix/ifx.ec:1.94Tue Jul 1 09:27:03 2003 +++ php-src/ext/informix/ifx.ec Tue Jul 1 09:31:12 2003 @@ -21,7 +21,7 @@ +--+ */ -/* $Id: ifx.ec,v 1.94 2003/07/01 13:27:03 nobbie Exp $ */ +/* $Id: ifx.ec,v 1.95 2003/07/01 13:31:12 sniper Exp $ */ /* --- * if you want a function reference : grep '^\*\*' ifx.ec will give @@ -2486,9 +2486,9 @@ if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, result) == FAILURE) { WRONG_PARAM_COUNT; } - + IFXG(sv_sqlcode) = 0; - + ZEND_FETCH_RESOURCE(Ifx_Result, IFX_RES *, result, -1, Informix Result, le_result); if (strcmp(Ifx_Result-cursorid, ) == 0) { @@ -2883,7 +2883,7 @@ if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, result) == FAILURE) { WRONG_PARAM_COUNT; } - + IFXG(sv_sqlcode = 0); ZEND_FETCH_RESOURCE(Ifx_Result, IFX_RES *, result, -1, Informix Result, le_result); @@ -2899,8 +2899,8 @@ cursorid = Ifx_Result-cursorid; statemid = Ifx_Result-statemid; descrpid = Ifx_Result-descrpid; - -EXEC SQL set connection :ifx; + + EXEC SQL set connection :ifx; PHP_IFX_CHECK_CONNECTION(ifx); EXEC SQL free :statemid; @@ -3043,20 +3043,19 @@ if (*param param != ) { -/* - * copy the filename in param to filename in loc_fname - * otherwise we'll unlink non-temporary files - * - * loc_fname gets filled by php_intifx_init_blob_infile - */ - -if (Ifx_blob-BLOB.blob_data.loc_fname != NULL) { -if (php_copy_file(param, Ifx_blob-BLOB.blob_data.loc_fname TSRMLS_CC) == FAILURE) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, Can't create blob-resource file. File copy failed: %s, param); + /* +* copy the filename in param to filename in loc_fname +* otherwise we'll unlink non-temporary files +* +* loc_fname gets filled by php_intifx_init_blob_infile +*/ + if (Ifx_blob-BLOB.blob_data.loc_fname != NULL) { + if (php_copy_file(param, Ifx_blob-BLOB.blob_data.loc_fname TSRMLS_CC) == FAILURE) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, Could not create blob-resource file. File copy failed: %s, param); return -1; } -Ifx_blob-BLOB.blob_data.loc_size = -1; -} + Ifx_blob-BLOB.blob_data.loc_size = -1; + } } } @@ -3103,7 +3102,7 @@ { char *filename; -blob-loc_loctype = LOCFNAME; + blob-loc_loctype = LOCFNAME; if (new) { @@ -3648,7 +3647,7 @@ if (ifx_check() = 0) { ret = s_da-sqld; - + /* * Thanks to DBD-Informix */ -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php