Merge branch 'R_2_5' [ci skip]
[m6w6/ext-http] / php_http_etag.c
index 72a7927e6ac0ab451c3dd625eb114a2b050b65ed..1ebddb35d4a7b283db6cc07c954133bbbde18c2e 100644 (file)
@@ -6,7 +6,7 @@
     | 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>            |
     +--------------------------------------------------------------------+
 */
 
@@ -20,7 +20,7 @@
 #include <ext/standard/sha1.h>
 #include <ext/standard/md5.h>
 
-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;
@@ -47,7 +47,6 @@ php_http_etag_t *php_http_etag_init(const char *mode TSRMLS_DC)
        e = emalloc(sizeof(*e));
        e->ctx = ctx;
        e->mode = estrdup(mode);
-       TSRMLS_SET_CTX(e->ts);
 
        return e;
 }
@@ -61,11 +60,15 @@ char *php_http_etag_finish(php_http_etag_t *e)
                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);