pajoye                                   Fri, 09 Oct 2009 19:06:10 +0000

Revision: http://svn.php.net/viewvc?view=revision&revision=289442

Log:
- Merge: Fixed bug #49627 (error_log to specified file does not log time 
according to date.timezone)

Bug: http://bugs.php.net/49627 (Closed) error_log to specified file does not 
log time according to date.timezone
      
Changed paths:
    U   php/php-src/branches/PHP_5_3_1/ext/date/php_date.c
    U   php/php-src/branches/PHP_5_3_1/main/main.c
    U   php/php-src/branches/PHP_5_3_1/main/php_globals.h

Modified: php/php-src/branches/PHP_5_3_1/ext/date/php_date.c
===================================================================
--- php/php-src/branches/PHP_5_3_1/ext/date/php_date.c  2009-10-09 18:59:14 UTC 
(rev 289441)
+++ php/php-src/branches/PHP_5_3_1/ext/date/php_date.c  2009-10-09 19:06:10 UTC 
(rev 289442)
@@ -849,7 +849,17 @@
                return env;
        }
        /* Check config setting for default timezone */
-       if (DATEG(default_timezone) && (strlen(DATEG(default_timezone)) > 0) && 
timelib_timezone_id_is_valid(DATEG(default_timezone), tzdb)) {
+       if (!DATEG(default_timezone)) {
+               /* Special case: ext/date wasn't initialized yet */
+               zval ztz;
+
+               if (SUCCESS == 
zend_get_configuration_directive("date.timezone", sizeof("date.timezone"), 
&ztz) &&
+                   Z_TYPE(ztz) == IS_STRING &&
+                   Z_STRLEN(ztz) > 0 &&
+                   timelib_timezone_id_is_valid(Z_STRVAL(ztz), tzdb)) {
+                       return Z_STRVAL(ztz);
+               }
+       } else if (*DATEG(default_timezone) && 
timelib_timezone_id_is_valid(DATEG(default_timezone), tzdb)) {
                return DATEG(default_timezone);
        }
 #if HAVE_TM_ZONE

Modified: php/php-src/branches/PHP_5_3_1/main/main.c
===================================================================
--- php/php-src/branches/PHP_5_3_1/main/main.c  2009-10-09 18:59:14 UTC (rev 
289441)
+++ php/php-src/branches/PHP_5_3_1/main/main.c  2009-10-09 19:06:10 UTC (rev 
289442)
@@ -556,11 +556,18 @@
        int fd = -1;
        time_t error_time;

+       if (PG(in_error_log)) {
+               /* prevent recursive invocation */
+               return;
+       }
+       PG(in_error_log) = 1;
+
        /* Try to use the specified logging location. */
        if (PG(error_log) != NULL) {
 #ifdef HAVE_SYSLOG_H
                if (!strcmp(PG(error_log), "syslog")) {
                        php_syslog(LOG_NOTICE, "%.500s", log_message);
+                       PG(in_error_log) = 0;
                        return;
                }
 #endif
@@ -571,7 +578,7 @@
                        char *error_time_str;

                        time(&error_time);
-                       error_time_str = php_format_date("d-M-Y H:i:s", 11, 
error_time, php_during_module_startup() TSRMLS_CC);
+                       error_time_str = php_format_date("d-M-Y H:i:s", 11, 
error_time, 1 TSRMLS_CC);
                        len = spprintf(&tmp, 0, "[%s] %s%s", error_time_str, 
log_message, PHP_EOL);
 #ifdef PHP_WIN32
                        php_flock(fd, 2);
@@ -580,6 +587,7 @@
                        efree(tmp);
                        efree(error_time_str);
                        close(fd);
+                       PG(in_error_log) = 0;
                        return;
                }
        }
@@ -589,6 +597,7 @@
        if (sapi_module.log_message) {
                sapi_module.log_message(log_message);
        }
+       PG(in_error_log) = 0;
 }
 /* }}} */

@@ -1352,6 +1361,7 @@
 #endif

        zend_try {
+               PG(in_error_log) = 0;
                PG(during_request_startup) = 1;

                php_output_activate(TSRMLS_C);

Modified: php/php-src/branches/PHP_5_3_1/main/php_globals.h
===================================================================
--- php/php-src/branches/PHP_5_3_1/main/php_globals.h   2009-10-09 18:59:14 UTC 
(rev 289441)
+++ php/php-src/branches/PHP_5_3_1/main/php_globals.h   2009-10-09 19:06:10 UTC 
(rev 289442)
@@ -168,6 +168,8 @@

        zend_bool mail_x_header;
        char *mail_log;
+
+       zend_bool in_error_log;
 };



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

Reply via email to