@@ -1162,14 +1162,35 @@ zend_result validate_timestamp_and_record(zend_persistent_script *persistent_scr
1162
1162
{
1163
1163
if (persistent_script -> timestamp == 0 ) {
1164
1164
return SUCCESS ; /* Don't check timestamps of preloaded scripts */
1165
- } else if (ZCG (accel_directives ).revalidate_freq &&
1166
- persistent_script -> dynamic_members .revalidate >= ZCG (request_time )) {
1167
- return SUCCESS ;
1168
- } else if (do_validate_timestamps (persistent_script , file_handle ) == FAILURE ) {
1169
- return FAILURE ;
1165
+ }
1166
+
1167
+ if (ZCG (cli_mode )) {
1168
+ struct timeval tp = {0 };
1169
+
1170
+ //check current time as opposed to the "time of request"
1171
+ if (gettimeofday (& tp , NULL ) != 0 ) {
1172
+ return SUCCESS ;
1173
+ }
1174
+
1175
+ double now = (double )(tp .tv_sec + tp .tv_usec / 1000000.00 );
1176
+
1177
+ if (ZCG (accel_directives ).revalidate_freq && persistent_script -> dynamic_members .revalidate >= now ) {
1178
+ return SUCCESS ;
1179
+ } else if (do_validate_timestamps (persistent_script , file_handle ) == FAILURE ) {
1180
+ return FAILURE ;
1181
+ } else {
1182
+ persistent_script -> dynamic_members .revalidate = now + ZCG (accel_directives ).revalidate_freq ;
1183
+ return SUCCESS ;
1184
+ }
1170
1185
} else {
1171
- persistent_script -> dynamic_members .revalidate = ZCG (request_time ) + ZCG (accel_directives ).revalidate_freq ;
1172
- return SUCCESS ;
1186
+ if (ZCG (accel_directives ).revalidate_freq && persistent_script -> dynamic_members .revalidate >= ZCG (request_time )) {
1187
+ return SUCCESS ;
1188
+ } else if (do_validate_timestamps (persistent_script , file_handle ) == FAILURE ) {
1189
+ return FAILURE ;
1190
+ } else {
1191
+ persistent_script -> dynamic_members .revalidate = ZCG (request_time ) + ZCG (accel_directives ).revalidate_freq ;
1192
+ return SUCCESS ;
1193
+ }
1173
1194
}
1174
1195
}
1175
1196
@@ -2832,6 +2853,7 @@ static inline zend_result accel_find_sapi(void)
2832
2853
if (ZCG (accel_directives ).enable_cli && (
2833
2854
strcmp (sapi_module .name , "cli" ) == 0
2834
2855
|| strcmp (sapi_module .name , "phpdbg" ) == 0 )) {
2856
+ ZCG (cli_mode ) = true;
2835
2857
return SUCCESS ;
2836
2858
}
2837
2859
}
0 commit comments