X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=http_cache_api.c;h=963bb7e1d0c1aecac81b10047662715b9407006c;hp=11609f989fee4132832bc67c7144ff08ee569e13;hb=92f5e5a5df0bff3d8076c1f5ed73590b40849501;hpb=e83a7438dc70ed96630887246a1d3aefcf155b1c diff --git a/http_cache_api.c b/http_cache_api.c index 11609f9..963bb7e 100644 --- a/http_cache_api.c +++ b/http_cache_api.c @@ -42,6 +42,14 @@ PHP_MINIT_FUNCTION(http_cache) HTTP_LONG_CONSTANT("HTTP_ETAG_SHA1", HTTP_ETAG_SHA1); HTTP_LONG_CONSTANT("HTTP_ETAG_CRC32", HTTP_ETAG_CRC32); +#ifdef HTTP_HAVE_HASH_EXT + HTTP_LONG_CONSTANT("HTTP_ETAG_SHA256", HTTP_ETAG_SHA256); + HTTP_LONG_CONSTANT("HTTP_ETAG_SHA384", HTTP_ETAG_SHA384); + HTTP_LONG_CONSTANT("HTTP_ETAG_SHA512", HTTP_ETAG_SHA512); + HTTP_LONG_CONSTANT("HTTP_ETAG_RIPEMD128", HTTP_ETAG_RIPEMD128); + HTTP_LONG_CONSTANT("HTTP_ETAG_RIPEMD160", HTTP_ETAG_RIPEMD160); +#endif + #ifdef HTTP_HAVE_MHASH { int l, i, c = mhash_count(); @@ -120,7 +128,7 @@ PHP_HTTP_API zend_bool _http_match_last_modified_ex(const char *entry, time_t t, HTTP_GSC(zmodified, entry, !enforce_presence); modified = estrndup(Z_STRVAL_P(zmodified), Z_STRLEN_P(zmodified)); - if (chr_ptr = strrchr(modified, ';')) { + if ((chr_ptr = strrchr(modified, ';'))) { chr_ptr = 0; } retval = (t <= http_parse_date(modified)); @@ -160,6 +168,10 @@ PHP_HTTP_API STATUS _http_cache_last_modified(time_t last_modified, { char *sent_header = NULL; + if (SG(headers_sent)) { + return FAILURE; + } + if (cc_len && (SUCCESS != http_send_cache_control(cache_control, cc_len))) { return FAILURE; } @@ -184,6 +196,10 @@ PHP_HTTP_API STATUS _http_cache_etag(const char *etag, size_t etag_len, { char *sent_header = NULL; + if (SG(headers_sent)) { + return FAILURE; + } + if (cc_len && (SUCCESS != http_send_cache_control(cache_control, cc_len))) { return FAILURE; }