{
php_stream_statbuf ssb;
- switch (data_mode)
- {
- case SEND_DATA: return HTTP_GET_REQUEST_TIME();
+ switch (data_mode) {
+ case SEND_DATA: return HTTP_G->request.time;
case SEND_RSRC: return php_stream_stat((php_stream *) data_ptr, &ssb) ? 0 : ssb.sb.st_mtime;
default: return php_stream_stat_path((char *) data_ptr, &ssb) ? 0 : ssb.sb.st_mtime;
}
chr_ptr = 0;
}
- retval = (t <= http_parse_date(modified));
+ retval = (t <= http_parse_date_ex(modified, 1));
efree(modified);
return retval;
}
}
HTTP_G->etag.started = 1;
- return php_start_ob_buffer_named("ob_etaghandler", HTTP_G->send.buffer_size, 1 TSRMLS_CC);
+ return php_start_ob_buffer_named("ob_etaghandler", HTTP_G->send.buffer_size, 0 TSRMLS_CC);
}
PHP_HTTP_API zend_bool _http_interrupt_ob_etaghandler(TSRMLS_D)
http_send_etag_ex(etag, strlen(etag), &sent_header);
if (http_match_etag("HTTP_IF_NONE_MATCH", etag)) {
+ /* force exit; ob within ob does not work */
+ HTTP_G->force_exit = 1;
http_exit_ex(304, sent_header, etag, 0);
}