| modification, are permitted provided that the conditions mentioned |
| in the accompanying LICENSE file are met. |
+--------------------------------------------------------------------+
- | Copyright (c) 2004-2013, Michael Wallner <mike@php.net> |
+ | Copyright (c) 2004-2014, Michael Wallner <mike@php.net> |
+--------------------------------------------------------------------+
*/
#include <ext/standard/sha1.h>
#include <ext/standard/md5.h>
-PHP_HTTP_API php_http_etag_t *php_http_etag_init(const char *mode TSRMLS_DC)
+php_http_etag_t *php_http_etag_init(const char *mode)
{
void *ctx;
php_http_etag_t *e;
e = emalloc(sizeof(*e));
e->ctx = ctx;
e->mode = estrdup(mode);
- TSRMLS_SET_CTX(e->ts);
return e;
}
-PHP_HTTP_API char *php_http_etag_finish(php_http_etag_t *e)
+char *php_http_etag_finish(php_http_etag_t *e)
{
unsigned char digest[128] = {0};
char *etag = NULL;
unsigned char buf[4];
*((uint *) e->ctx) = ~*((uint *) e->ctx);
+#ifdef WORDS_BIGENDIAN
+ etag = php_http_etag_digest((unsigned char *) e->ctx, 4);
+#else
buf[0] = ((unsigned char *) e->ctx)[3];
buf[1] = ((unsigned char *) e->ctx)[2];
buf[2] = ((unsigned char *) e->ctx)[1];
buf[3] = ((unsigned char *) e->ctx)[0];
etag = php_http_etag_digest(buf, 4);
+#endif
} else if ((!strcasecmp(e->mode, "sha1"))) {
PHP_SHA1Final(digest, e->ctx);
etag = php_http_etag_digest(digest, 20);
return etag;
}
-PHP_HTTP_API size_t php_http_etag_update(php_http_etag_t *e, const char *data_ptr, size_t data_len)
+size_t php_http_etag_update(php_http_etag_t *e, const char *data_ptr, size_t data_len)
{
if (!strcasecmp(e->mode, "crc32b")) {
uint i, c = *((uint *) e->ctx);