cvs: php4 /ext/pgsql/ pgsql.c php_pgsql.h

From: Date: Wed, 31 May 2000 20:40:29 +0000
Subject: cvs: php4 /ext/pgsql/ pgsql.c php_pgsql.h
Groups: php.version4 
Request: Send a blank email to php-version4+get-15997@lists.php.net to get a copy of this message
zeev Wed May 31 13:40:29 2000 EDT Modified files: /php4/ext/pgsql pgsql.c php_pgsql.h Log: @- Added pg_trace() and pg_untrace (Dominic J. Eidson & Zeev) Index: php4/ext/pgsql/pgsql.c diff -u php4/ext/pgsql/pgsql.c:1.51 php4/ext/pgsql/pgsql.c:1.52 --- php4/ext/pgsql/pgsql.c:1.51 Thu May 25 00:51:40 2000 +++ php4/ext/pgsql/pgsql.c Wed May 31 13:40:28 2000 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: pgsql.c,v 1.51 2000/05/25 07:51:40 jah Exp $ */ +/* $Id: pgsql.c,v 1.52 2000/05/31 20:40:28 zeev Exp $ */ #include <stdlib.h> @@ -48,6 +48,8 @@ PHP_FE(pg_cmdtuples, NULL) PHP_FE(pg_dbname, NULL) PHP_FE(pg_errormessage, NULL) + PHP_FE(pg_trace, NULL) + PHP_FE(pg_untrace, NULL) PHP_FE(pg_options, NULL) PHP_FE(pg_port, NULL) PHP_FE(pg_tty, NULL) @@ -1102,6 +1104,91 @@ #endif } /* }}} */ + + +/* {{{ proto bool pg_trace(string filename [, string mode [, resource connection]]) + Enable tracing a PostgresSQL connection */ +PHP_FUNCTION(pg_trace) +{ + zval **z_filename, **z_mode, **z_pgsql_link; + int id = -1; + PGconn *pgsql; + char *mode = "w"; + int issock, socketd; + FILE *fp; + PGLS_FETCH(); + + id = PGG(default_link); + + switch (ZEND_NUM_ARGS()) { + case 1: + if (zend_get_parameters_ex(1, &z_filename)==FAILURE) { + RETURN_FALSE; + } + break; + case 2: + if (zend_get_parameters_ex(2, &z_filename, &z_mode)==FAILURE) { + RETURN_FALSE; + } + convert_to_string_ex(z_mode); + mode = Z_STRVAL_PP(z_mode); + break; + case 3: + if (zend_get_parameters_ex(3, &z_filename, &z_mode, &z_pgsql_link)==FAILURE) { + RETURN_FALSE; + } + convert_to_string_ex(z_mode); + mode = Z_STRVAL_PP(z_mode); + break; + default: + ZEND_WRONG_PARAM_COUNT(); + break; + } + + ZEND_FETCH_RESOURCE2(pgsql, PGconn *, z_pgsql_link, id, "PostgreSQL link", le_link, le_plink); + convert_to_string_ex(z_filename); + + fp = php_fopen_wrapper(Z_STRVAL_PP(z_filename), mode, ENFORCE_SAFE_MODE, &issock, &socketd, NULL); + + if (!fp) { + php_error(E_WARNING, "Unable to open %s for logging", Z_STRVAL_PP(z_filename)); + RETURN_FALSE; + } + + PQtrace(pgsql, fp); + ZEND_REGISTER_RESOURCE(NULL, fp, php_file_le_fopen()); + RETURN_TRUE; +} + + +/* {{{ proto bool pg_untrace([int connection]) + Disable tracing of a PostgreSQL connection */ +PHP_FUNCTION(pg_untrace) +{ + zval **pgsql_link; + int id = -1; + PGconn *pgsql; + PGLS_FETCH(); + + switch (ZEND_NUM_ARGS()) { + case 0: + id = PGG(default_link); + break; + case 1: + if (zend_get_parameters_ex(1, &pgsql_link)==FAILURE) { + RETURN_FALSE; + } + break; + default: + ZEND_WRONG_PARAM_COUNT(); + break; + } + + ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink); + PQuntrace(pgsql); + RETURN_TRUE; +} + /* {{{ proto int pg_locreate(int connection) Create a large object */ Index: php4/ext/pgsql/php_pgsql.h diff -u php4/ext/pgsql/php_pgsql.h:1.10 php4/ext/pgsql/php_pgsql.h:1.11 --- php4/ext/pgsql/php_pgsql.h:1.10 Tue May 23 23:48:04 2000 +++ php4/ext/pgsql/php_pgsql.h Wed May 31 13:40:28 2000 @@ -27,7 +27,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_pgsql.h,v 1.10 2000/05/24 06:48:04 jah Exp $ */ +/* $Id: php_pgsql.h,v 1.11 2000/05/31 20:40:28 zeev Exp $ */ #ifndef _PHP_PGSQL_H #define _PHP_PGSQL_H @@ -69,6 +69,8 @@ PHP_FUNCTION(pg_close); PHP_FUNCTION(pg_dbname); PHP_FUNCTION(pg_errormessage); +PHP_FUNCTION(pg_trace); +PHP_FUNCTION(pg_untrace); PHP_FUNCTION(pg_options); PHP_FUNCTION(pg_port); PHP_FUNCTION(pg_tty);

« previous php.version4 (#15997) next »