| modification, are permitted provided that the conditions mentioned |
| in the accompanying LICENSE file are met. |
+--------------------------------------------------------------------+
- | Copyright (c) 2004-2005, Michael Wallner <mike@php.net> |
+ | Copyright (c) 2004-2006, Michael Wallner <mike@php.net> |
+--------------------------------------------------------------------+
*/
#ifndef PHP_HTTP_CACHE_API_H
#define PHP_HTTP_CACHE_API_H
-#include "zend_ini.h"
+#include "php_http_send_api.h"
#include "ext/standard/crc32.h"
#include "ext/standard/sha1.h"
#include "ext/standard/md5.h"
-#include "php_http_std_defs.h"
-#include "php_http.h"
-#include "php_http_api.h"
-#include "php_http_send_api.h"
-
-#ifdef HTTP_HAVE_EXT_HASH
+#ifdef HTTP_HAVE_HASH
# include "php_hash.h"
#endif
-ZEND_EXTERN_MODULE_GLOBALS(http);
-
#define http_etag_digest(d, l) _http_etag_digest((d), (l))
static inline char *_http_etag_digest(const unsigned char *digest, int len)
{
- static const char hexdigits[16] = "0123456789abcdef";
+ static const char hexdigits[17] = "0123456789abcdef";
int i;
char *hex = emalloc(len * 2 + 1);
char *ptr = hex;
static inline void *_http_etag_init(TSRMLS_D)
{
void *ctx = NULL;
- char *mode = HTTP_G(etag).mode;
+ char *mode = HTTP_G->etag.mode;
-#ifdef HTTP_HAVE_EXT_HASH
+#ifdef HTTP_HAVE_HASH
php_hash_ops *eho = NULL;
if (mode && (eho = php_hash_fetch_ops(mode, strlen(mode)))) {
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
+#ifdef HTTP_HAVE_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);
#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)
{
-#ifdef HTTP_HAVE_EXT_HASH
+ char *mode = HTTP_G->etag.mode;
+#ifdef HTTP_HAVE_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);
if (mode && ((!strcasecmp(mode, "crc32")) || (!strcasecmp(mode, "crc32b")))) {
uint i, c = *((uint *) ctx);
for (i = 0; i < data_len; ++i) {
- c = CRC32(c, data_ptr[i]);
+ CRC32(c, data_ptr[i]);
}
*((uint *)ctx) = c;
} else if (mode && (!strcasecmp(mode, "sha1"))) {