]> err.no Git - varnish/commitdiff
Make SHA256 digest standard and use it in hash_classic.c
authorphk <phk@d4fa192b-c00b-0410-8231-f00ffab90ce4>
Mon, 12 Jan 2009 13:09:51 +0000 (13:09 +0000)
committerphk <phk@d4fa192b-c00b-0410-8231-f00ffab90ce4>
Mon, 12 Jan 2009 13:09:51 +0000 (13:09 +0000)
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3504 d4fa192b-c00b-0410-8231-f00ffab90ce4

varnish-cache/bin/varnishd/cache_hash.c
varnish-cache/bin/varnishd/hash_classic.c
varnish-cache/bin/varnishd/hash_critbit.c
varnish-cache/bin/varnishd/heritage.h
varnish-cache/bin/varnishd/mgt_param.c

index 9f49c4652f9b9fd40c8e61952d6457f1b9f4140e..e8b28b4b34911c2b8e20b35054fcf58a3b0f8594 100644 (file)
@@ -214,8 +214,7 @@ HSH_Prepare(struct sess *sp, unsigned nhashcount)
        if (u)
                p += sizeof(const char *) - u;
        sp->hashptr = (void*)p;
-       if (params->hash_sha256)
-               SHA256_Init(sp->wrk->sha256ctx);
+       SHA256_Init(sp->wrk->sha256ctx);
 }
 
 void
@@ -238,10 +237,8 @@ HSH_AddString(struct sess *sp, const char *str)
        sp->hashptr[sp->ihashptr + 1] = str + l;
        sp->ihashptr += 2;
        sp->lhashptr += l + 1;
-       if (params->hash_sha256) {
-               SHA256_Update(sp->wrk->sha256ctx, str, l);
-               SHA256_Update(sp->wrk->sha256ctx, "#", 1);
-       }
+       SHA256_Update(sp->wrk->sha256ctx, str, l);
+       SHA256_Update(sp->wrk->sha256ctx, "#", 1);
 }
 
 struct object *
@@ -260,10 +257,7 @@ HSH_Lookup(struct sess *sp)
        h = sp->http;
 
        HSH_Prealloc(sp);
-       if (params->hash_sha256) {
-               SHA256_Final(sp->wrk->nobjhead->digest, sp->wrk->sha256ctx);
-               /* WSP(sp, SLT_Debug, "SHA256: <%.32s>", sha256); */
-       }
+       SHA256_Final(sp->wrk->nobjhead->digest, sp->wrk->sha256ctx);
        
        if (sp->objhead != NULL) {
                CHECK_OBJ_NOTNULL(sp->objhead, OBJHEAD_MAGIC);
index f7f109c3ced29819f0200d8278637a99bbb582fd..9f2ee04a2fd5959fab41480ecd73d27eca4b50f1 100644 (file)
@@ -120,19 +120,13 @@ hcl_lookup(const struct sess *sp, struct objhead *noh)
        struct objhead *oh;
        struct hcl_hd *hp;
        unsigned u1, digest;
-       unsigned u, v;
        int i;
 
        CHECK_OBJ_NOTNULL(sp, SESS_MAGIC);
        CHECK_OBJ_NOTNULL(noh, OBJHEAD_MAGIC);
 
-       digest = ~0U;
-       for (u = 0; u < sp->ihashptr; u += 2) {
-               v = pdiff(sp->hashptr[u], sp->hashptr[u + 1]);
-               digest = crc32(digest, sp->hashptr[u], v);
-       }
-       digest ^= ~0U;
-
+       assert(sizeof noh->digest > sizeof digest);
+       memcpy(&digest, noh->digest, sizeof digest);
        u1 = digest % hcl_nhash;
        hp = &hcl_head[u1];
 
index cce96c90e54c943c78fe529898eb05f2fb9defaa..e37efcca044e78a98ee25a713e2b27ca51d77ffb 100644 (file)
@@ -367,7 +367,6 @@ hcb_start(void)
 
        (void)oh;
        AZ(pthread_create(&tp, NULL, hcb_cleaner, NULL));
-       assert(params->hash_sha256);
        assert(sizeof(struct hcb_y) <= sizeof(oh->u));
        memset(&hcb_root, 0, sizeof hcb_root);
        hcb_build_bittbl();
@@ -402,7 +401,6 @@ hcb_lookup(const struct sess *sp, struct objhead *noh)
        struct objhead *oh;
        unsigned u;
        
-       assert(params->hash_sha256);
        oh =  hcb_insert(&hcb_root, noh, 0);
        if (oh != NULL) {
                /* Assert that we didn't muck with the tree without lock */
index 7a7c21931047683b8d94756bdabec280186b4767..8be6f7af8b7a187f2722af51defbc7a9ba30d844 100644 (file)
@@ -174,9 +174,6 @@ struct params {
        /* Default grace period */
        unsigned                default_grace;
 
-       /* Use sha256 hasing */
-       unsigned                hash_sha256;
-
        /* Log hash string to shm */
        unsigned                log_hash;
 
index 6b6bc41f3efb8e213c2aaa2d19a9ffc4435914dc..56c434da863ca539fe3b78e7df299a4ec1f56b26 100644 (file)
@@ -710,10 +710,6 @@ static const struct parspec input_parspec[] = {
                "NB: Must be specified with -p to have effect.\n",
                0,
                "8192", "bytes" },
-       { "hash_sha256", tweak_bool, &master.hash_sha256, 0, 0,
-               "Use SHA256 compression of hash-strings",
-               0,
-               "on", "bool" },
        { "log_hashstring", tweak_bool, &master.log_hash, 0, 0,
                "Log the hash string to shared memory log.\n",
                0,