iliaa Sat, 06 Nov 2010 17:14:21 +0000 Revision: http://svn.php.net/viewvc?view=revision&revision=305129
Log: Updated _SERVER['REQUEST_TIME'] to include microsecond precision. Changed paths: U php/php-src/trunk/NEWS U php/php-src/trunk/main/SAPI.c U php/php-src/trunk/main/SAPI.h U php/php-src/trunk/main/php_variables.c U php/php-src/trunk/sapi/apache/mod_php5.c U php/php-src/trunk/sapi/apache2filter/sapi_apache2.c U php/php-src/trunk/sapi/apache2handler/sapi_apache2.c U php/php-src/trunk/sapi/nsapi/nsapi.c Modified: php/php-src/trunk/NEWS =================================================================== --- php/php-src/trunk/NEWS 2010-11-06 16:24:58 UTC (rev 305128) +++ php/php-src/trunk/NEWS 2010-11-06 17:14:21 UTC (rev 305129) @@ -4,6 +4,7 @@ - Upgraded bundled sqlite to version 3.7.3. (Ilia) - Upgraded bundled PCRE to version 8.10. (Ilia) +- Updated _SERVER['REQUEST_TIME'] to include microsecond precision. (Ilia) - Added apache compatible functions (apache_child_terminate, getallheaders, apache_request_headers, apache_response_headers) to FastCGI SAPI (Dmitry) - Added caches to eliminate repeatable run-time bindings of functions, classes, Modified: php/php-src/trunk/main/SAPI.c =================================================================== --- php/php-src/trunk/main/SAPI.c 2010-11-06 16:24:58 UTC (rev 305128) +++ php/php-src/trunk/main/SAPI.c 2010-11-06 17:14:21 UTC (rev 305129) @@ -961,14 +961,19 @@ } } -SAPI_API time_t sapi_get_request_time(TSRMLS_D) +SAPI_API double sapi_get_request_time(TSRMLS_D) { if(SG(global_request_time)) return SG(global_request_time); if (sapi_module.get_request_time && SG(server_context)) { SG(global_request_time) = sapi_module.get_request_time(TSRMLS_C); } else { - SG(global_request_time) = time(0); + struct timeval tp = {0}; + if (!gettimeofday(&tp, NULL)) { + SG(global_request_time) = (double)(tp.tv_sec + tp.tv_usec / 1000000.00); + } else { + SG(global_request_time) = (double)time(0); + } } return SG(global_request_time); } Modified: php/php-src/trunk/main/SAPI.h =================================================================== --- php/php-src/trunk/main/SAPI.h 2010-11-06 16:24:58 UTC (rev 305128) +++ php/php-src/trunk/main/SAPI.h 2010-11-06 17:14:21 UTC (rev 305129) @@ -129,7 +129,7 @@ long post_max_size; int options; zend_bool sapi_started; - time_t global_request_time; + double global_request_time; HashTable known_post_content_types; } sapi_globals_struct; @@ -208,7 +208,7 @@ SAPI_API int sapi_get_target_uid(uid_t * TSRMLS_DC); SAPI_API int sapi_get_target_gid(gid_t * TSRMLS_DC); -SAPI_API time_t sapi_get_request_time(TSRMLS_D); +SAPI_API double sapi_get_request_time(TSRMLS_D); SAPI_API void sapi_terminate_process(TSRMLS_D); END_EXTERN_C() Modified: php/php-src/trunk/main/php_variables.c =================================================================== --- php/php-src/trunk/main/php_variables.c 2010-11-06 16:24:58 UTC (rev 305128) +++ php/php-src/trunk/main/php_variables.c 2010-11-06 17:14:21 UTC (rev 305129) @@ -590,8 +590,8 @@ /* store request init time */ { zval new_entry; - Z_TYPE(new_entry) = IS_LONG; - Z_LVAL(new_entry) = sapi_get_request_time(TSRMLS_C); + Z_TYPE(new_entry) = IS_DOUBLE; + Z_DVAL(new_entry) = sapi_get_request_time(TSRMLS_C); php_register_variable_ex("REQUEST_TIME", &new_entry, array_ptr TSRMLS_CC); } Modified: php/php-src/trunk/sapi/apache/mod_php5.c =================================================================== --- php/php-src/trunk/sapi/apache/mod_php5.c 2010-11-06 16:24:58 UTC (rev 305128) +++ php/php-src/trunk/sapi/apache/mod_php5.c 2010-11-06 17:14:21 UTC (rev 305129) @@ -438,9 +438,9 @@ /* {{{ php_apache_get_request_time */ -static time_t php_apache_get_request_time(TSRMLS_D) +static double php_apache_get_request_time(TSRMLS_D) { - return ((request_rec *)SG(server_context))->request_time; + return (double) ((request_rec *)SG(server_context))->request_time; } /* }}} */ Modified: php/php-src/trunk/sapi/apache2filter/sapi_apache2.c =================================================================== --- php/php-src/trunk/sapi/apache2filter/sapi_apache2.c 2010-11-06 16:24:58 UTC (rev 305128) +++ php/php-src/trunk/sapi/apache2filter/sapi_apache2.c 2010-11-06 17:14:21 UTC (rev 305129) @@ -308,10 +308,10 @@ return OK; } -static time_t php_apache_sapi_get_request_time(TSRMLS_D) +static double php_apache_sapi_get_request_time(TSRMLS_D) { php_struct *ctx = SG(server_context); - return apr_time_sec(ctx->r->request_time); + return apr_time_as_msec(ctx->r->request_time); } extern zend_module_entry php_apache_module; Modified: php/php-src/trunk/sapi/apache2handler/sapi_apache2.c =================================================================== --- php/php-src/trunk/sapi/apache2handler/sapi_apache2.c 2010-11-06 16:24:58 UTC (rev 305128) +++ php/php-src/trunk/sapi/apache2handler/sapi_apache2.c 2010-11-06 17:14:21 UTC (rev 305129) @@ -335,10 +335,10 @@ } } -static time_t php_apache_sapi_get_request_time(TSRMLS_D) +static double php_apache_sapi_get_request_time(TSRMLS_D) { php_struct *ctx = SG(server_context); - return apr_time_sec(ctx->r->request_time); + return apr_time_as_msec(ctx->r->request_time); } extern zend_module_entry php_apache_module; Modified: php/php-src/trunk/sapi/nsapi/nsapi.c =================================================================== --- php/php-src/trunk/sapi/nsapi/nsapi.c 2010-11-06 16:24:58 UTC (rev 305128) +++ php/php-src/trunk/sapi/nsapi/nsapi.c 2010-11-06 17:14:21 UTC (rev 305129) @@ -784,7 +784,7 @@ } } -static time_t sapi_nsapi_get_request_time(TSRMLS_D) +static double sapi_nsapi_get_request_time(TSRMLS_D) { return REQ_TIME( ((nsapi_request_context *)SG(server_context))->rq ); }
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php