Haven't run the code but it seems that if sapi_get_request_time() is not defined then you will return the same time() for each consecutive request (i.e. you don't reset it each request). It's probably better to move the time(0) initialization to sapi_globals ctor and/or dtor.

Andi

At 05:40 PM 8/10/2004 +0000, Rasmus Lerdorf wrote:
rasmus          Tue Aug 10 13:40:00 2004 EDT

  Modified files:
    /php-src    NEWS
    /php-src/main       SAPI.c SAPI.h
    /php-src/sapi/apache        mod_php5.c
    /php-src/sapi/apache2filter sapi_apache2.c
    /php-src/sapi/apache2handler        sapi_apache2.c
  Log:
  Add SAPI hook to get the request time if provided by the web server,
  otherwise call time(0) on the first call and store it so subsequent
  calls will get the same time.  Hook support for Apache1/2 included.


http://cvs.php.net/diff.php/php-src/NEWS?r1=1.1789&r2=1.1790&ty=u
Index: php-src/NEWS
diff -u php-src/NEWS:1.1789 php-src/NEWS:1.1790
--- php-src/NEWS:1.1789 Tue Aug 10 12:43:20 2004
+++ php-src/NEWS Tue Aug 10 13:39:59 2004
@@ -1,6 +1,7 @@
PHP NEWS


|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
 ?? ??? 2004, PHP 5.1.0
+- Add SAPI hook to get the current request time. (Rasmus)
 - Fixed bug #29522 (accessing properties without connection) (Georg)
 - Fixed bug #29335 (fetch functions now use MYSQLI_BOTH as default) (Georg)
 - Fixed bug #29311 (calling parent constructor in mysqli). (Georg)
http://cvs.php.net/diff.php/php-src/main/SAPI.c?r1=1.187&r2=1.188&ty=u
Index: php-src/main/SAPI.c
diff -u php-src/main/SAPI.c:1.187 php-src/main/SAPI.c:1.188
--- php-src/main/SAPI.c:1.187   Tue Jun  8 09:23:38 2004
+++ php-src/main/SAPI.c Tue Aug 10 13:39:59 2004
@@ -18,7 +18,7 @@
    +----------------------------------------------------------------------+
 */

-/* $Id: SAPI.c,v 1.187 2004/06/08 13:23:38 iliaa Exp $ */
+/* $Id: SAPI.c,v 1.188 2004/08/10 17:39:59 rasmus Exp $ */

 #include <ctype.h>
 #include <sys/stat.h>
@@ -37,6 +37,9 @@
 #ifdef ZTS
 #include "TSRM.h"
 #endif
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif

 #include "rfc1867.h"

@@ -860,7 +863,6 @@
        }
 }

-
 SAPI_API char *sapi_getenv(char *name, size_t name_len TSRMLS_DC)
 {
        if (sapi_module.getenv) {
@@ -907,6 +909,15 @@
        }
 }

+SAPI_API time_t sapi_get_request_time(TSRMLS_D)
+{
+ if (sapi_module.get_request_time) {
+ return sapi_module.get_request_time(TSRMLS_C);
+ } else {
+ if(!SG(global_request_time)) SG(global_request_time) = time(0);
+ return SG(global_request_time);
+ }
+}


 /*
  * Local variables:
http://cvs.php.net/diff.php/php-src/main/SAPI.h?r1=1.108&r2=1.109&ty=u
Index: php-src/main/SAPI.h
diff -u php-src/main/SAPI.h:1.108 php-src/main/SAPI.h:1.109
--- php-src/main/SAPI.h:1.108   Thu Jan  8 12:33:04 2004
+++ php-src/main/SAPI.h Tue Aug 10 13:40:00 2004
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
 */

-/* $Id: SAPI.h,v 1.108 2004/01/08 17:33:04 sniper Exp $ */
+/* $Id: SAPI.h,v 1.109 2004/08/10 17:40:00 rasmus Exp $ */

 #ifndef SAPI_H
 #define SAPI_H
@@ -122,6 +122,7 @@
        long post_max_size;
        int options;
        zend_bool sapi_started;
+       time_t global_request_time;
 } sapi_globals_struct;


@@ -197,6 +198,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);
 END_EXTERN_C()

 struct _sapi_module_struct {
@@ -225,6 +227,7 @@

        void (*register_server_variables)(zval *track_vars_array TSRMLS_DC);
        void (*log_message)(char *message);
+       time_t (*get_request_time)(TSRMLS_D);

        char *php_ini_path_override;

http://cvs.php.net/diff.php/php-src/sapi/apache/mod_php5.c?r1=1.11&r2=1.12&ty=u
Index: php-src/sapi/apache/mod_php5.c
diff -u php-src/sapi/apache/mod_php5.c:1.11 php-src/sapi/apache/mod_php5.c:1.12
--- php-src/sapi/apache/mod_php5.c:1.11 Mon Jul 19 03:19:49 2004
+++ php-src/sapi/apache/mod_php5.c Tue Aug 10 13:40:00 2004
@@ -17,7 +17,7 @@
| PHP 4.0 patches by Zeev Suraski <[EMAIL PROTECTED]> |
+----------------------------------------------------------------------+
*/
-/* $Id: mod_php5.c,v 1.11 2004/07/19 07:19:49 andi Exp $ */
+/* $Id: mod_php5.c,v 1.12 2004/08/10 17:40:00 rasmus Exp $ */


 #include "php_apache_http.h"
 #include "http_conf_globals.h"
@@ -401,6 +401,14 @@
 }
 /* }}} */

+/* {{{ php_apache_get_request_time
+ */
+static time_t php_apache_get_request_time(TSRMLS_D)
+{
+       return ((request_rec *)SG(server_context))->request_time;
+}
+/* }}} */
+
 /* {{{ sapi_module_struct apache_sapi_module
  */
 static sapi_module_struct apache_sapi_module = {
@@ -429,6 +437,7 @@

sapi_apache_register_server_variables, /* register server variables */
php_apache_log_message, /* Log message */
+ php_apache_get_request_time, /* Get request time */


NULL, /* php.ini path override */

http://cvs.php.net/diff.php/php-src/sapi/apache2filter/sapi_apache2.c?r1=1.126&r2=1.127&ty=u
Index: php-src/sapi/apache2filter/sapi_apache2.c
diff -u php-src/sapi/apache2filter/sapi_apache2.c:1.126 php-src/sapi/apache2filter/sapi_apache2.c:1.127
--- php-src/sapi/apache2filter/sapi_apache2.c:1.126 Mon Jul 19 03:19:49 2004
+++ php-src/sapi/apache2filter/sapi_apache2.c Tue Aug 10 13:40:00 2004
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/


-/* $Id: sapi_apache2.c,v 1.126 2004/07/19 07:19:49 andi Exp $ */
+/* $Id: sapi_apache2.c,v 1.127 2004/08/10 17:40:00 rasmus Exp $ */

 #include <fcntl.h>

@@ -299,6 +299,15 @@
        return OK;
 }

+static time_t
+php_apache_sapi_get_request_time(void)
+{
+       php_struct *ctx = SG(server_context);
+       TSRMLS_FETCH();
+
+       return ctx->r->request_time;
+}
+
 extern zend_module_entry php_apache_module;

 static int php_apache2_startup(sapi_module_struct *sapi_module)
@@ -335,6 +344,7 @@

        php_apache_sapi_register_variables,
        php_apache_sapi_log_message,                    /* Log message */
+       php_apache_sapi_get_request_time,               /* Get Request Time */

STANDARD_SAPI_MODULE_PROPERTIES
};
http://cvs.php.net/diff.php/php-src/sapi/apache2handler/sapi_apache2.c?r1=1.42&r2=1.43&ty=u
Index: php-src/sapi/apache2handler/sapi_apache2.c
diff -u php-src/sapi/apache2handler/sapi_apache2.c:1.42 php-src/sapi/apache2handler/sapi_apache2.c:1.43
--- php-src/sapi/apache2handler/sapi_apache2.c:1.42 Mon Jul 19 03:19:50 2004
+++ php-src/sapi/apache2handler/sapi_apache2.c Tue Aug 10 13:40:00 2004
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/


-/* $Id: sapi_apache2.c,v 1.42 2004/07/19 07:19:50 andi Exp $ */
+/* $Id: sapi_apache2.c,v 1.43 2004/08/10 17:40:00 rasmus Exp $ */

 #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS

@@ -277,6 +277,13 @@
        }
 }

+static time_t php_apache_sapi_get_request_time(void) {
+       php_struct *ctx = SG(server_context);
+       TSRMLS_FETCH();
+
+       return ctx->r->request_time;
+}
+
 extern zend_module_entry php_apache_module;

 static int php_apache2_startup(sapi_module_struct *sapi_module)
@@ -313,6 +320,7 @@

        php_apache_sapi_register_variables,
        php_apache_sapi_log_message,                    /* Log message */
+       php_apache_sapi_get_request_time,               /* Request Time */

        STANDARD_SAPI_MODULE_PROPERTIES
 };

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

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



Reply via email to