abies           Tue Jul  6 09:46:19 2004 EDT

  Modified files:              
    /php-src/ext/interbase      ibase_query.c interbase.c 
                                php_ibase_includes.h 
  Log:
  Don't copy ini items to module globals
  (fixed unregistered bug with mangled default_db setting)
  
  
http://cvs.php.net/diff.php/php-src/ext/interbase/ibase_query.c?r1=1.20&r2=1.21&ty=u
Index: php-src/ext/interbase/ibase_query.c
diff -u php-src/ext/interbase/ibase_query.c:1.20 
php-src/ext/interbase/ibase_query.c:1.21
--- php-src/ext/interbase/ibase_query.c:1.20    Sun Jul  4 13:13:58 2004
+++ php-src/ext/interbase/ibase_query.c Tue Jul  6 09:46:18 2004
@@ -16,13 +16,14 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: ibase_query.c,v 1.20 2004/07/04 17:13:58 iliaa Exp $ */
+/* $Id: ibase_query.c,v 1.21 2004/07/06 13:46:18 abies Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
 #endif
 
 #include "php.h"
+#include "php_ini.h"
 
 #if HAVE_IBASE
 
@@ -553,7 +554,7 @@
                                case SQL_TIMESTAMP:
                                        convert_to_string(val);
 #ifdef HAVE_STRPTIME
-                                       strptime(Z_STRVAL_P(val), 
IBG(timestampformat), &t);
+                                       strptime(Z_STRVAL_P(val), 
INI_STR("ibase.timestampformat"), &t);
 #else
                                        n = sscanf(Z_STRVAL_P(val), "%d%*[/]%d%*[/]%d 
%d%*[:]%d%*[:]%d", 
                                                &t.tm_mon, &t.tm_mday, &t.tm_year, 
&t.tm_hour, &t.tm_min, &t.tm_sec);
@@ -571,7 +572,7 @@
                                case SQL_TYPE_DATE:
                                        convert_to_string(val);
 #ifdef HAVE_STRPTIME
-                                       strptime(Z_STRVAL_P(val), IBG(dateformat), &t);
+                                       strptime(Z_STRVAL_P(val), 
INI_STR("ibase.dateformat"), &t);
 #else
                                        n = sscanf(Z_STRVAL_P(val), 
"%d%*[/]%d%*[/]%d", &t.tm_mon, &t.tm_mday, &t.tm_year);
 
@@ -588,7 +589,7 @@
                                case SQL_TYPE_TIME:
                                        convert_to_string(val);
 #ifdef HAVE_STRPTIME
-                                       strptime(Z_STRVAL_P(val), IBG(timeformat), &t);
+                                       strptime(Z_STRVAL_P(val), 
INI_STR("ibase.timeformat"), &t);
 #else
                                        n = sscanf(Z_STRVAL_P(val), 
"%d%*[:]%d%*[:]%d", &t.tm_hour, &t.tm_min, &t.tm_sec);
 
@@ -678,16 +679,16 @@
                                        t = *gmtime(&Z_LVAL_P(b_var));
                                } else {
 #ifdef HAVE_STRPTIME
-                                       char *format = IBG(timestampformat);
+                                       char *format = 
INI_STR("ibase.timestampformat");
 
                                        convert_to_string(b_var);
 
                                        switch (var->sqltype & ~1) {
                                                case SQL_TYPE_DATE:
-                                                       format = IBG(dateformat);
+                                                       format = 
INI_STR("ibase.dateformat");
                                                        break;
                                                case SQL_TYPE_TIME:
-                                                       format = IBG(timeformat);
+                                                       format = 
INI_STR("ibase.timeformat");
                                        }
                                        if (! strptime(Z_STRVAL_P(b_var), format, &t)) 
{
                                                /* strptime() cannot handle it, so let 
IB have a try */
@@ -1083,9 +1084,9 @@
                                        _php_ibase_module_error("CREATE DATABASE is 
not allowed in SQL safe mode"
                                                TSRMLS_CC);
 
-                               } else if ((IBG(max_links) != -1) && (IBG(num_links) 
>= IBG(max_links))) {
+                               } else if (((l = INI_INT("ibase.max_links")) != -1) && 
(IBG(num_links) >= l)) {
                                        _php_ibase_module_error("CREATE DATABASE is 
not allowed: maximum link count "
-                                               "(%ld) reached" TSRMLS_CC, 
IBG(max_links));
+                                               "(%ld) reached" TSRMLS_CC, l);
 
                                } else if (isc_dsql_execute_immediate(IB_STATUS, &db, 
&trans, (short)query_len, 
                                                query, SQL_DIALECT_CURRENT, NULL)) {
@@ -1355,15 +1356,15 @@
                        ZVAL_DOUBLE(val, *(double *) data);
                        break;
                case SQL_DATE: /* == case SQL_TIMESTAMP: */
-                       format = IBG(timestampformat);
+                       format = INI_STR("ibase.timestampformat");
                        isc_decode_timestamp((ISC_TIMESTAMP *) data, &t);
                        goto format_date_time;
                case SQL_TYPE_DATE:
-                       format = IBG(dateformat);
+                       format = INI_STR("ibase.dateformat");
                        isc_decode_sql_date((ISC_DATE *) data, &t);
                        goto format_date_time;
                case SQL_TYPE_TIME:
-                       format = IBG(timeformat);
+                       format = INI_STR("ibase.timeformat");
                        isc_decode_sql_time((ISC_TIME *) data, &t);
 
 format_date_time:
http://cvs.php.net/diff.php/php-src/ext/interbase/interbase.c?r1=1.222&r2=1.223&ty=u
Index: php-src/ext/interbase/interbase.c
diff -u php-src/ext/interbase/interbase.c:1.222 php-src/ext/interbase/interbase.c:1.223
--- php-src/ext/interbase/interbase.c:1.222     Wed Jun 30 06:55:03 2004
+++ php-src/ext/interbase/interbase.c   Tue Jul  6 09:46:18 2004
@@ -18,7 +18,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: interbase.c,v 1.222 2004/06/30 10:55:03 abies Exp $ */
+/* $Id: interbase.c,v 1.223 2004/07/06 13:46:18 abies Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -436,16 +436,16 @@
 
 /* {{{ startup, shutdown and info functions */
 PHP_INI_BEGIN()
-       STD_PHP_INI_BOOLEAN("ibase.allow_persistent", "1", PHP_INI_SYSTEM, 
OnUpdateBool, allow_persistent, zend_ibase_globals, ibase_globals)
-       STD_PHP_INI_ENTRY_EX("ibase.max_persistent", "-1", PHP_INI_SYSTEM, 
OnUpdateLong, max_persistent, zend_ibase_globals, ibase_globals, display_link_numbers)
-       STD_PHP_INI_ENTRY_EX("ibase.max_links", "-1", PHP_INI_SYSTEM, OnUpdateLong, 
max_links, zend_ibase_globals, ibase_globals, display_link_numbers)
-       STD_PHP_INI_ENTRY("ibase.default_db", NULL, PHP_INI_SYSTEM, OnUpdateString, 
default_db, zend_ibase_globals, ibase_globals)
-       STD_PHP_INI_ENTRY("ibase.default_user", NULL, PHP_INI_ALL, OnUpdateString, 
default_user, zend_ibase_globals, ibase_globals)
-       STD_PHP_INI_ENTRY_EX("ibase.default_password", NULL, PHP_INI_ALL, 
OnUpdateString, default_password, zend_ibase_globals, 
ibase_globals,php_ibase_password_displayer_cb)
-       STD_PHP_INI_ENTRY("ibase.default_charset", NULL, PHP_INI_ALL, OnUpdateString, 
default_charset, zend_ibase_globals, ibase_globals)
-       STD_PHP_INI_ENTRY("ibase.timestampformat", IB_DEF_DATE_FMT " " 
IB_DEF_TIME_FMT, PHP_INI_ALL, OnUpdateString, timestampformat, zend_ibase_globals, 
ibase_globals)
-       STD_PHP_INI_ENTRY("ibase.dateformat", IB_DEF_DATE_FMT, PHP_INI_ALL, 
OnUpdateString, dateformat, zend_ibase_globals, ibase_globals)
-       STD_PHP_INI_ENTRY("ibase.timeformat", IB_DEF_TIME_FMT, PHP_INI_ALL, 
OnUpdateString, timeformat, zend_ibase_globals, ibase_globals)
+       PHP_INI_ENTRY_EX("ibase.allow_persistent", "1", PHP_INI_SYSTEM, NULL, 
zend_ini_boolean_displayer_cb)
+       PHP_INI_ENTRY_EX("ibase.max_persistent", "-1", PHP_INI_SYSTEM, NULL, 
display_link_numbers)
+       PHP_INI_ENTRY_EX("ibase.max_links", "-1", PHP_INI_SYSTEM, NULL, 
display_link_numbers)
+       PHP_INI_ENTRY("ibase.default_db", NULL, PHP_INI_SYSTEM, NULL)
+       PHP_INI_ENTRY("ibase.default_user", NULL, PHP_INI_ALL, NULL)
+       PHP_INI_ENTRY_EX("ibase.default_password", NULL, PHP_INI_ALL, NULL, 
php_ibase_password_displayer_cb)
+       PHP_INI_ENTRY("ibase.default_charset", NULL, PHP_INI_ALL, NULL)
+       PHP_INI_ENTRY("ibase.timestampformat", IB_DEF_DATE_FMT " " IB_DEF_TIME_FMT, 
PHP_INI_ALL, NULL)
+       PHP_INI_ENTRY("ibase.dateformat", IB_DEF_DATE_FMT, PHP_INI_ALL, NULL)
+       PHP_INI_ENTRY("ibase.timeformat", IB_DEF_TIME_FMT, PHP_INI_ALL, NULL)
 PHP_INI_END()
 
 static void php_ibase_init_globals(zend_ibase_globals *ibase_globals)
@@ -612,7 +612,7 @@
 
 static void _php_ibase_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent) /* {{{ */
 {
-       char hash[16], *args[] = { NULL, NULL, NULL, NULL, NULL };
+       char *c, hash[16], *args[] = { NULL, NULL, NULL, NULL, NULL };
        int i, len[] = { 0, 0, 0, 0, 0 };
        long largs[] = { 0, 0, 0 };
        PHP_MD5_CTX hash_context;
@@ -630,21 +630,21 @@
        }
        
        /* restrict to the server/db in the .ini if in safe mode */
-       if ((!len[DB] || PG(sql_safe_mode)) && IBG(default_db)) { 
-               args[DB] = IBG(default_db);
-               len[DB] = strlen(IBG(default_db));
-       }
-       if (!len[USER] && IBG(default_user)) {
-               args[USER] = IBG(default_user);
-               len[USER] = strlen(args[USER]);
-       }
-       if (!len[PASS] && IBG(default_password)) {
-               args[PASS] = IBG(default_password);
-               len[PASS] = strlen(args[PASS]);
-       }
-       if (!len[CSET] && IBG(default_charset)) {
-               args[CSET] = IBG(default_charset);
-               len[CSET] = strlen(args[CSET]);
+       if ((!len[DB] || PG(sql_safe_mode)) && (c = INI_STR("ibase.default_db"))) { 
+               args[DB] = c;
+               len[DB] = strlen(c);
+       }
+       if (!len[USER] && (c = INI_STR("ibase.default_user"))) {
+               args[USER] = c;
+               len[USER] = strlen(c);
+       }
+       if (!len[PASS] && (c = INI_STR("ibase.default_password"))) {
+               args[PASS] = c;
+               len[PASS] = strlen(c);
+       }
+       if (!len[CSET] && (c = INI_STR("ibase.default_charset"))) {
+               args[CSET] = c;
+               len[CSET] = strlen(c);
        }
        
        /* don't want usernames and passwords floating around */
@@ -677,6 +677,8 @@
 
        /* ... or a persistent one */
        switch (zend_hash_find(&EG(persistent_list), hash, sizeof(hash), (void *) 
&le)) {
+               long l;
+               
                static char info[] = { isc_info_base_level, isc_info_end };
                char result[8];
                ISC_STATUS status[20];
@@ -698,7 +700,7 @@
 
                /* no link found, so we have to open one */
        
-               if (IBG(max_links) != -1 && IBG(num_links) >= IBG(max_links)) {
+               if ((l = INI_INT("ibase.max_links")) != -1 && IBG(num_links) >= l) {
                        _php_ibase_module_error("Too many open links (%ld)" TSRMLS_CC, 
IBG(num_links));
                        RETURN_FALSE;
                }
@@ -709,7 +711,7 @@
                }
        
                /* use non-persistent if allowed number of persistent links is 
exceeded */
-               if (!persistent || (IBG(max_persistent) != -1 && IBG(num_persistent) 
>= IBG(max_persistent))) {
+               if (!persistent || ((l = INI_INT("ibase.max_persistent") != -1) && 
IBG(num_persistent) >= l)) {
                        ib_link = (ibase_db_link *) emalloc(sizeof(ibase_db_link));
                        ZEND_REGISTER_RESOURCE(return_value, ib_link, le_link);
                } else {
@@ -759,7 +761,7 @@
    Open a persistent connection to an InterBase database */
 PHP_FUNCTION(ibase_pconnect)
 {
-       _php_ibase_connect(INTERNAL_FUNCTION_PARAM_PASSTHRU, IBG(allow_persistent));
+       _php_ibase_connect(INTERNAL_FUNCTION_PARAM_PASSTHRU, 
INI_INT("ibase.allow_persistent"));
 }
 /* }}} */
 
http://cvs.php.net/diff.php/php-src/ext/interbase/php_ibase_includes.h?r1=1.14&r2=1.15&ty=u
Index: php-src/ext/interbase/php_ibase_includes.h
diff -u php-src/ext/interbase/php_ibase_includes.h:1.14 
php-src/ext/interbase/php_ibase_includes.h:1.15
--- php-src/ext/interbase/php_ibase_includes.h:1.14     Tue Jun  1 04:38:33 2004
+++ php-src/ext/interbase/php_ibase_includes.h  Tue Jul  6 09:46:19 2004
@@ -18,7 +18,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: php_ibase_includes.h,v 1.14 2004/06/01 08:38:33 abies Exp $ */
+/* $Id: php_ibase_includes.h,v 1.15 2004/07/06 13:46:19 abies Exp $ */
 
 #ifndef PHP_IBASE_INCLUDES_H
 #define PHP_IBASE_INCLUDES_H
@@ -64,10 +64,6 @@
        ISC_STATUS status[20];
        long default_link;
        long num_links, num_persistent;
-       long max_links, max_persistent;
-       long allow_persistent;
-       char *default_db, *default_user, *default_password, *default_charset;
-       char *timestampformat, *dateformat, *timeformat;
        char errmsg[MAX_ERRMSG];
        long sql_code;
 ZEND_END_MODULE_GLOBALS(ibase)

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to