- ext/hash detection
[m6w6/ext-http] / php_http_cache_api.h
index 03ea1134be656f6412583633e544c9eaaa9069c5..e349cc6cc3eb1a60c2b88fc3f53b17c4ff5cf96c 100644 (file)
 #include "php_http_api.h"
 #include "php_http_send_api.h"
 
-#ifdef HTTP_HAVE_EXT_HASH
+#if defined(HTTP_HAVE_EXT_HASH)
 #      include "php_hash.h"
+#elif defined(HTTP_HAVE_HASH_EXT_HASH)
+#      define HTTP_HAVE_EXT_HASH
+#      include "hash/php_hash.h"
+#elif defined(HTTP_HAVE_EXT_HASH_EXT_HASH)
+#      define HTTP_HAVE_EXT_HASH
+#      include "ext/hash/php_hash.h"
 #endif
 
 ZEND_EXTERN_MODULE_GLOBALS(http);
@@ -79,11 +85,10 @@ static inline void *_http_etag_init(TSRMLS_D)
 static inline char *_http_etag_finish(void *ctx TSRMLS_DC)
 {
        unsigned char digest[128] = {0};
-       char *etag = NULL;
+       char *etag = NULL, *mode = HTTP_G(etag).mode;
        
 #ifdef HTTP_HAVE_EXT_HASH
        php_hash_ops *eho = NULL;
-       char *mode = HTTP_G(etag).mode;
        
        if (mode && (eho = php_hash_fetch_ops(mode, strlen(mode)))) {
                eho->hash_final(digest, ctx);
@@ -108,9 +113,9 @@ static inline char *_http_etag_finish(void *ctx TSRMLS_DC)
 #define http_etag_update(c, d, l) _http_etag_update((c), (d), (l) TSRMLS_CC)
 static inline void _http_etag_update(void *ctx, const char *data_ptr, size_t data_len TSRMLS_DC)
 {
+       char *mode = HTTP_G(etag).mode;
 #ifdef HTTP_HAVE_EXT_HASH
        php_hash_ops *eho = NULL;
-       char *mode = HTTP_G(etag).mode;
        
        if (mode && (eho = php_hash_fetch_ops(mode, strlen(mode)))) {
                eho->hash_update(ctx, (const unsigned char *) data_ptr, data_len);