projects
/
m6w6
/
ext-http
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
- allow options parameter to be NULL
[m6w6/ext-http]
/
http_cache_api.c
diff --git
a/http_cache_api.c
b/http_cache_api.c
index a03a9616f1dba581c81b7b706681dc268a57c1c1..adba374d5c65ef90726a5e4d4f9100a07a092709 100644
(file)
--- a/
http_cache_api.c
+++ b/
http_cache_api.c
@@
-63,9
+63,8
@@
PHP_HTTP_API time_t _http_last_modified(const void *data_ptr, http_send_mode dat
{
php_stream_statbuf ssb;
{
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;
}
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;
}
@@
-85,7
+84,8
@@
PHP_HTTP_API zend_bool _http_match_last_modified_ex(const char *entry, time_t t,
if ((chr_ptr = strrchr(modified, ';'))) {
chr_ptr = 0;
}
if ((chr_ptr = strrchr(modified, ';'))) {
chr_ptr = 0;
}
- retval = (t <= http_parse_date(modified));
+
+ retval = (t <= http_parse_date_ex(modified, 1));
efree(modified);
return retval;
}
efree(modified);
return retval;
}
@@
-184,7
+184,7
@@
PHP_HTTP_API STATUS _http_start_ob_etaghandler(TSRMLS_D)
}
HTTP_G->etag.started = 1;
}
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)
}
PHP_HTTP_API zend_bool _http_interrupt_ob_etaghandler(TSRMLS_D)
@@
-229,6
+229,8
@@
void _http_ob_etaghandler(char *output, uint output_len,
http_send_etag_ex(etag, strlen(etag), &sent_header);
if (http_match_etag("HTTP_IF_NONE_MATCH", etag)) {
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);
}
http_exit_ex(304, sent_header, etag, 0);
}