@@ -1162,14 +1162,35 @@ zend_result validate_timestamp_and_record(zend_persistent_script *persistent_scr
11621162{
11631163 if (persistent_script -> timestamp == 0 ) {
11641164 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+ }
11701185 } 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+ }
11731194 }
11741195}
11751196
@@ -2832,6 +2853,7 @@ static inline zend_result accel_find_sapi(void)
28322853 if (ZCG (accel_directives ).enable_cli && (
28332854 strcmp (sapi_module .name , "cli" ) == 0
28342855 || strcmp (sapi_module .name , "phpdbg" ) == 0 )) {
2856+ ZCG (cli_mode ) = true;
28352857 return SUCCESS ;
28362858 }
28372859 }
0 commit comments