KNF.
authorjsing <jsing@openbsd.org>
Sun, 20 Apr 2014 13:42:57 +0000 (13:42 +0000)
committerjsing <jsing@openbsd.org>
Sun, 20 Apr 2014 13:42:57 +0000 (13:42 +0000)
lib/libcrypto/lhash/lh_stats.c
lib/libcrypto/lhash/lh_test.c
lib/libcrypto/lhash/lhash.c
lib/libcrypto/lhash/lhash.h
lib/libssl/src/crypto/lhash/lh_stats.c
lib/libssl/src/crypto/lhash/lh_test.c
lib/libssl/src/crypto/lhash/lhash.c
lib/libssl/src/crypto/lhash/lhash.h

index 815615e..34c7d77 100644 (file)
@@ -5,21 +5,21 @@
  * This package is an SSL implementation written
  * by Eric Young (eay@cryptsoft.com).
  * The implementation was written so as to conform with Netscapes SSL.
- * 
+ *
  * This library is free for commercial and non-commercial use as long as
  * the following conditions are aheared to.  The following conditions
  * apply to all code found in this distribution, be it the RC4, RSA,
  * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
  * included with this distribution is covered by the same copyright terms
  * except that the holder is Tim Hudson (tjh@cryptsoft.com).
- * 
+ *
  * Copyright remains Eric Young's, and as such any Copyright notices in
  * the code are not to be removed.
  * If this package is used in a product, Eric Young should be given attribution
  * as the author of the parts of the library used.
  * This can be in the form of a textual message at program startup or
  * in documentation (online or textual) provided with the package.
- * 
+ *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
  * are met:
  *     Eric Young (eay@cryptsoft.com)"
  *    The word 'cryptographic' can be left out if the rouines from the library
  *    being used are not cryptographic related :-).
- * 4. If you include any Windows specific code (or a derivative thereof) from 
+ * 4. If you include any Windows specific code (or a derivative thereof) from
  *    the apps directory (application code) you must include an acknowledgement:
  *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
- * 
+ *
  * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
@@ -49,7 +49,7 @@
  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
- * 
+ *
  * The licence and distribution terms for any publically available version or
  * derivative of this code cannot be changed.  i.e. this code cannot simply be
  * copied and put under another distribution licence
 
 #ifdef OPENSSL_NO_BIO
 
-void lh_stats(LHASH *lh, FILE *out)
-       {
-       fprintf(out,"num_items             = %lu\n",lh->num_items);
-       fprintf(out,"num_nodes             = %u\n",lh->num_nodes);
-       fprintf(out,"num_alloc_nodes       = %u\n",lh->num_alloc_nodes);
-       fprintf(out,"num_expands           = %lu\n",lh->num_expands);
-       fprintf(out,"num_expand_reallocs   = %lu\n",lh->num_expand_reallocs);
-       fprintf(out,"num_contracts         = %lu\n",lh->num_contracts);
-       fprintf(out,"num_contract_reallocs = %lu\n",lh->num_contract_reallocs);
-       fprintf(out,"num_hash_calls        = %lu\n",lh->num_hash_calls);
-       fprintf(out,"num_comp_calls        = %lu\n",lh->num_comp_calls);
-       fprintf(out,"num_insert            = %lu\n",lh->num_insert);
-       fprintf(out,"num_replace           = %lu\n",lh->num_replace);
-       fprintf(out,"num_delete            = %lu\n",lh->num_delete);
-       fprintf(out,"num_no_delete         = %lu\n",lh->num_no_delete);
-       fprintf(out,"num_retrieve          = %lu\n",lh->num_retrieve);
-       fprintf(out,"num_retrieve_miss     = %lu\n",lh->num_retrieve_miss);
-       fprintf(out,"num_hash_comps        = %lu\n",lh->num_hash_comps);
+void
+lh_stats(LHASH *lh, FILE *out)
+{
+       fprintf(out, "num_items             = %lu\n", lh->num_items);
+       fprintf(out, "num_nodes             = %u\n", lh->num_nodes);
+       fprintf(out, "num_alloc_nodes       = %u\n", lh->num_alloc_nodes);
+       fprintf(out, "num_expands           = %lu\n", lh->num_expands);
+       fprintf(out, "num_expand_reallocs   = %lu\n", lh->num_expand_reallocs);
+       fprintf(out, "num_contracts         = %lu\n", lh->num_contracts);
+       fprintf(out, "num_contract_reallocs = %lu\n",
+           lh->num_contract_reallocs);
+       fprintf(out, "num_hash_calls        = %lu\n", lh->num_hash_calls);
+       fprintf(out, "num_comp_calls        = %lu\n", lh->num_comp_calls);
+       fprintf(out, "num_insert            = %lu\n", lh->num_insert);
+       fprintf(out, "num_replace           = %lu\n", lh->num_replace);
+       fprintf(out, "num_delete            = %lu\n", lh->num_delete);
+       fprintf(out, "num_no_delete         = %lu\n", lh->num_no_delete);
+       fprintf(out, "num_retrieve          = %lu\n", lh->num_retrieve);
+       fprintf(out, "num_retrieve_miss     = %lu\n", lh->num_retrieve_miss);
+       fprintf(out, "num_hash_comps        = %lu\n", lh->num_hash_comps);
 #if 0
-       fprintf(out,"p                     = %u\n",lh->p);
-       fprintf(out,"pmax                  = %u\n",lh->pmax);
-       fprintf(out,"up_load               = %lu\n",lh->up_load);
-       fprintf(out,"down_load             = %lu\n",lh->down_load);
+       fprintf(out, "p                     = %u\n", lh->p);
+       fprintf(out, "pmax                  = %u\n", lh->pmax);
+       fprintf(out, "up_load               = %lu\n", lh->up_load);
+       fprintf(out, "down_load             = %lu\n", lh->down_load);
 #endif
-       }
+}
 
-void lh_node_stats(LHASH *lh, FILE *out)
-       {
+void
+lh_node_stats(LHASH *lh, FILE *out)
+{
        LHASH_NODE *n;
-       unsigned int i,num;
+       unsigned int i, num;
 
-       for (i=0; i<lh->num_nodes; i++)
-               {
-               for (n=lh->b[i],num=0; n != NULL; n=n->next)
+       for (i = 0; i < lh->num_nodes; i++) {
+               for (n = lh->b[i], num = 0; n != NULL; n = n->next)
                        num++;
-               fprintf(out,"node %6u -> %3u\n",i,num);
-               }
+               fprintf(out, "node %6u -> %3u\n", i, num);
        }
+}
 
-void lh_node_usage_stats(LHASH *lh, FILE *out)
-       {
+void
+lh_node_usage_stats(LHASH *lh, FILE *out)
+{
        LHASH_NODE *n;
        unsigned long num;
        unsigned int i;
-       unsigned long total=0,n_used=0;
+       unsigned long total = 0, n_used = 0;
 
-       for (i=0; i<lh->num_nodes; i++)
-               {
-               for (n=lh->b[i],num=0; n != NULL; n=n->next)
+       for (i = 0; i < lh->num_nodes; i++) {
+               for (n = lh->b[i], num = 0; n != NULL; n = n->next)
                        num++;
-               if (num != 0)
-                       {
+               if (num != 0) {
                        n_used++;
-                       total+=num;
-                       }
+                       total += num;
                }
-       fprintf(out,"%lu nodes used out of %u\n",n_used,lh->num_nodes);
-       fprintf(out,"%lu items\n",total);
-       if (n_used == 0) return;
-       fprintf(out,"load %d.%02d  actual load %d.%02d\n",
-               (int)(total/lh->num_nodes),
-               (int)((total%lh->num_nodes)*100/lh->num_nodes),
-               (int)(total/n_used),
-               (int)((total%n_used)*100/n_used));
        }
+       fprintf(out, "%lu nodes used out of %u\n", n_used, lh->num_nodes);
+       fprintf(out, "%lu items\n", total);
+       if (n_used == 0)
+               return;
+       fprintf(out, "load %d.%02d  actual load %d.%02d\n",
+           (int)(total / lh->num_nodes),
+           (int)((total % lh->num_nodes) * 100 / lh->num_nodes),
+           (int)(total / n_used),
+           (int)((total % n_used) * 100 / n_used));
+}
 
 #else
 
 #ifndef OPENSSL_NO_FP_API
-void lh_stats(const _LHASH *lh, FILE *fp)
-       {
+void
+lh_stats(const _LHASH *lh, FILE *fp)
+{
        BIO *bp;
 
-       bp=BIO_new(BIO_s_file());
-       if (bp == NULL) goto end;
-       BIO_set_fp(bp,fp,BIO_NOCLOSE);
-       lh_stats_bio(lh,bp);
+       bp = BIO_new(BIO_s_file());
+       if (bp == NULL)
+               goto end;
+       BIO_set_fp(bp, fp, BIO_NOCLOSE);
+       lh_stats_bio(lh, bp);
        BIO_free(bp);
 end:;
-       }
+}
 
-void lh_node_stats(const _LHASH *lh, FILE *fp)
-       {
+void
+lh_node_stats(const _LHASH *lh, FILE *fp)
+{
        BIO *bp;
 
-       bp=BIO_new(BIO_s_file());
-       if (bp == NULL) goto end;
-       BIO_set_fp(bp,fp,BIO_NOCLOSE);
-       lh_node_stats_bio(lh,bp);
+       bp = BIO_new(BIO_s_file());
+       if (bp == NULL)
+               goto end;
+       BIO_set_fp(bp, fp, BIO_NOCLOSE);
+       lh_node_stats_bio(lh, bp);
        BIO_free(bp);
 end:;
-       }
+}
 
-void lh_node_usage_stats(const _LHASH *lh, FILE *fp)
-       {
+void
+lh_node_usage_stats(const _LHASH *lh, FILE *fp)
+{
        BIO *bp;
 
-       bp=BIO_new(BIO_s_file());
-       if (bp == NULL) goto end;
-       BIO_set_fp(bp,fp,BIO_NOCLOSE);
-       lh_node_usage_stats_bio(lh,bp);
+       bp = BIO_new(BIO_s_file());
+       if (bp == NULL)
+               goto end;
+       BIO_set_fp(bp, fp, BIO_NOCLOSE);
+       lh_node_usage_stats_bio(lh, bp);
        BIO_free(bp);
 end:;
-       }
+}
 
 #endif
 
-void lh_stats_bio(const _LHASH *lh, BIO *out)
-       {
-       BIO_printf(out,"num_items             = %lu\n",lh->num_items);
-       BIO_printf(out,"num_nodes             = %u\n",lh->num_nodes);
-       BIO_printf(out,"num_alloc_nodes       = %u\n",lh->num_alloc_nodes);
-       BIO_printf(out,"num_expands           = %lu\n",lh->num_expands);
-       BIO_printf(out,"num_expand_reallocs   = %lu\n",
-                  lh->num_expand_reallocs);
-       BIO_printf(out,"num_contracts         = %lu\n",lh->num_contracts);
-       BIO_printf(out,"num_contract_reallocs = %lu\n",
-                  lh->num_contract_reallocs);
-       BIO_printf(out,"num_hash_calls        = %lu\n",lh->num_hash_calls);
-       BIO_printf(out,"num_comp_calls        = %lu\n",lh->num_comp_calls);
-       BIO_printf(out,"num_insert            = %lu\n",lh->num_insert);
-       BIO_printf(out,"num_replace           = %lu\n",lh->num_replace);
-       BIO_printf(out,"num_delete            = %lu\n",lh->num_delete);
-       BIO_printf(out,"num_no_delete         = %lu\n",lh->num_no_delete);
-       BIO_printf(out,"num_retrieve          = %lu\n",lh->num_retrieve);
-       BIO_printf(out,"num_retrieve_miss     = %lu\n",lh->num_retrieve_miss);
-       BIO_printf(out,"num_hash_comps        = %lu\n",lh->num_hash_comps);
+void
+lh_stats_bio(const _LHASH *lh, BIO *out)
+{
+       BIO_printf(out, "num_items             = %lu\n", lh->num_items);
+       BIO_printf(out, "num_nodes             = %u\n", lh->num_nodes);
+       BIO_printf(out, "num_alloc_nodes       = %u\n", lh->num_alloc_nodes);
+       BIO_printf(out, "num_expands           = %lu\n", lh->num_expands);
+       BIO_printf(out, "num_expand_reallocs   = %lu\n",
+           lh->num_expand_reallocs);
+       BIO_printf(out, "num_contracts         = %lu\n", lh->num_contracts);
+       BIO_printf(out, "num_contract_reallocs = %lu\n",
+           lh->num_contract_reallocs);
+       BIO_printf(out, "num_hash_calls        = %lu\n", lh->num_hash_calls);
+       BIO_printf(out, "num_comp_calls        = %lu\n", lh->num_comp_calls);
+       BIO_printf(out, "num_insert            = %lu\n", lh->num_insert);
+       BIO_printf(out, "num_replace           = %lu\n", lh->num_replace);
+       BIO_printf(out, "num_delete            = %lu\n", lh->num_delete);
+       BIO_printf(out, "num_no_delete         = %lu\n", lh->num_no_delete);
+       BIO_printf(out, "num_retrieve          = %lu\n", lh->num_retrieve);
+       BIO_printf(out, "num_retrieve_miss     = %lu\n", lh->num_retrieve_miss);
+       BIO_printf(out, "num_hash_comps        = %lu\n", lh->num_hash_comps);
 #if 0
-       BIO_printf(out,"p                     = %u\n",lh->p);
-       BIO_printf(out,"pmax                  = %u\n",lh->pmax);
-       BIO_printf(out,"up_load               = %lu\n",lh->up_load);
-       BIO_printf(out,"down_load             = %lu\n",lh->down_load);
+       BIO_printf(out, "p                     = %u\n", lh->p);
+       BIO_printf(out, "pmax                  = %u\n", lh->pmax);
+       BIO_printf(out, "up_load               = %lu\n", lh->up_load);
+       BIO_printf(out, "down_load             = %lu\n", lh->down_load);
 #endif
-       }
+}
 
-void lh_node_stats_bio(const _LHASH *lh, BIO *out)
-       {
+void
+lh_node_stats_bio(const _LHASH *lh, BIO *out)
+{
        LHASH_NODE *n;
-       unsigned int i,num;
+       unsigned int i, num;
 
-       for (i=0; i<lh->num_nodes; i++)
-               {
-               for (n=lh->b[i],num=0; n != NULL; n=n->next)
+       for (i = 0; i < lh->num_nodes; i++) {
+               for (n = lh->b[i], num = 0; n != NULL; n = n->next)
                        num++;
-               BIO_printf(out,"node %6u -> %3u\n",i,num);
-               }
+               BIO_printf(out, "node %6u -> %3u\n", i, num);
        }
+}
 
-void lh_node_usage_stats_bio(const _LHASH *lh, BIO *out)
-       {
+void
+lh_node_usage_stats_bio(const _LHASH *lh, BIO *out)
+{
        LHASH_NODE *n;
        unsigned long num;
        unsigned int i;
-       unsigned long total=0,n_used=0;
+       unsigned long total = 0, n_used = 0;
 
-       for (i=0; i<lh->num_nodes; i++)
-               {
-               for (n=lh->b[i],num=0; n != NULL; n=n->next)
+       for (i = 0; i < lh->num_nodes; i++) {
+               for (n = lh->b[i], num = 0; n != NULL; n = n->next)
                        num++;
-               if (num != 0)
-                       {
+               if (num != 0) {
                        n_used++;
-                       total+=num;
-                       }
+                       total += num;
                }
-       BIO_printf(out,"%lu nodes used out of %u\n",n_used,lh->num_nodes);
-       BIO_printf(out,"%lu items\n",total);
-       if (n_used == 0) return;
-       BIO_printf(out,"load %d.%02d  actual load %d.%02d\n",
-                  (int)(total/lh->num_nodes),
-                  (int)((total%lh->num_nodes)*100/lh->num_nodes),
-                  (int)(total/n_used),
-                  (int)((total%n_used)*100/n_used));
        }
+       BIO_printf(out, "%lu nodes used out of %u\n", n_used, lh->num_nodes);
+       BIO_printf(out, "%lu items\n", total);
+       if (n_used == 0)
+               return;
+       BIO_printf(out, "load %d.%02d  actual load %d.%02d\n",
+           (int)(total / lh->num_nodes),
+           (int)((total % lh->num_nodes) * 100 / lh->num_nodes),
+           (int)(total / n_used),
+           (int)((total % n_used) * 100 / n_used));
+}
 
 #endif
index 2224a21..6167be3 100644 (file)
@@ -5,21 +5,21 @@
  * This package is an SSL implementation written
  * by Eric Young (eay@cryptsoft.com).
  * The implementation was written so as to conform with Netscapes SSL.
- * 
+ *
  * This library is free for commercial and non-commercial use as long as
  * the following conditions are aheared to.  The following conditions
  * apply to all code found in this distribution, be it the RC4, RSA,
  * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
  * included with this distribution is covered by the same copyright terms
  * except that the holder is Tim Hudson (tjh@cryptsoft.com).
- * 
+ *
  * Copyright remains Eric Young's, and as such any Copyright notices in
  * the code are not to be removed.
  * If this package is used in a product, Eric Young should be given attribution
  * as the author of the parts of the library used.
  * This can be in the form of a textual message at program startup or
  * in documentation (online or textual) provided with the package.
- * 
+ *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
  * are met:
  *     Eric Young (eay@cryptsoft.com)"
  *    The word 'cryptographic' can be left out if the rouines from the library
  *    being used are not cryptographic related :-).
- * 4. If you include any Windows specific code (or a derivative thereof) from 
+ * 4. If you include any Windows specific code (or a derivative thereof) from
  *    the apps directory (application code) you must include an acknowledgement:
  *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
- * 
+ *
  * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
@@ -49,7 +49,7 @@
  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
- * 
+ *
  * The licence and distribution terms for any publically available version or
  * derivative of this code cannot be changed.  i.e. this code cannot simply be
  * copied and put under another distribution licence
 #include <openssl/lhash.h>
 
 main()
-       {
+{
        LHASH *conf;
        char buf[256];
        int i;
 
-       conf=lh_new(lh_strhash,strcmp);
-       for (;;)
-               {
+       conf = lh_new(lh_strhash, strcmp);
+       for (;;) {
                char *p;
 
-               buf[0]='\0';
-               fgets(buf,256,stdin);
-               if (buf[0] == '\0') break;
-               i=strlen(buf);
-               p=malloc(i+1);
-               memcpy(p,buf,i+1);
-               lh_insert(conf,p);
-               }
+               buf[0] = '\0';
+               fgets(buf, 256, stdin);
+               if (buf[0] == '\0')
+                       break;
+               i = strlen(buf);
+               p = malloc(i + 1);
+               memcpy(p, buf, i + 1);
+               lh_insert(conf, p);
+       }
 
-       lh_node_stats(conf,stdout);
-       lh_stats(conf,stdout);
-       lh_node_usage_stats(conf,stdout);
+       lh_node_stats(conf, stdout);
+       lh_stats(conf, stdout);
+       lh_node_usage_stats(conf, stdout);
        exit(0);
-       }
+}
index 78ba26d..ad24a77 100644 (file)
@@ -5,21 +5,21 @@
  * This package is an SSL implementation written
  * by Eric Young (eay@cryptsoft.com).
  * The implementation was written so as to conform with Netscapes SSL.
- * 
+ *
  * This library is free for commercial and non-commercial use as long as
  * the following conditions are aheared to.  The following conditions
  * apply to all code found in this distribution, be it the RC4, RSA,
  * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
  * included with this distribution is covered by the same copyright terms
  * except that the holder is Tim Hudson (tjh@cryptsoft.com).
- * 
+ *
  * Copyright remains Eric Young's, and as such any Copyright notices in
  * the code are not to be removed.
  * If this package is used in a product, Eric Young should be given attribution
  * as the author of the parts of the library used.
  * This can be in the form of a textual message at program startup or
  * in documentation (online or textual) provided with the package.
- * 
+ *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
  * are met:
  *     Eric Young (eay@cryptsoft.com)"
  *    The word 'cryptographic' can be left out if the rouines from the library
  *    being used are not cryptographic related :-).
- * 4. If you include any Windows specific code (or a derivative thereof) from 
+ * 4. If you include any Windows specific code (or a derivative thereof) from
  *    the apps directory (application code) you must include an acknowledgement:
  *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
- * 
+ *
  * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
@@ -49,7 +49,7 @@
  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
- * 
+ *
  * The licence and distribution terms for any publically available version or
  * derivative of this code cannot be changed.  i.e. this code cannot simply be
  * copied and put under another distribution licence
 #include <openssl/crypto.h>
 #include <openssl/lhash.h>
 
-const char lh_version[]="lhash" OPENSSL_VERSION_PTEXT;
+const char lh_version[] = "lhash" OPENSSL_VERSION_PTEXT;
 
-#undef MIN_NODES 
+#undef MIN_NODES
 #define MIN_NODES      16
 #define UP_LOAD                (2*LH_LOAD_MULT) /* load times 256  (default 2) */
 #define DOWN_LOAD      (LH_LOAD_MULT)   /* load times 256  (default 1) */
@@ -111,365 +111,354 @@ static void expand(_LHASH *lh);
 static void contract(_LHASH *lh);
 static LHASH_NODE **getrn(_LHASH *lh, const void *data, unsigned long *rhash);
 
-_LHASH *lh_new(LHASH_HASH_FN_TYPE h, LHASH_COMP_FN_TYPE c)
-       {
+_LHASH *
+lh_new(LHASH_HASH_FN_TYPE h, LHASH_COMP_FN_TYPE c)
+{
        _LHASH *ret;
        int i;
 
-       if ((ret=malloc(sizeof(_LHASH))) == NULL)
+       if ((ret = malloc(sizeof(_LHASH))) == NULL)
                goto err0;
-       if ((ret->b=malloc(sizeof(LHASH_NODE *)*MIN_NODES)) == NULL)
+       if ((ret->b = malloc(sizeof(LHASH_NODE *) * MIN_NODES)) == NULL)
                goto err1;
-       for (i=0; i<MIN_NODES; i++)
-               ret->b[i]=NULL;
-       ret->comp=((c == NULL)?(LHASH_COMP_FN_TYPE)strcmp:c);
-       ret->hash=((h == NULL)?(LHASH_HASH_FN_TYPE)lh_strhash:h);
-       ret->num_nodes=MIN_NODES/2;
-       ret->num_alloc_nodes=MIN_NODES;
-       ret->p=0;
-       ret->pmax=MIN_NODES/2;
-       ret->up_load=UP_LOAD;
-       ret->down_load=DOWN_LOAD;
-       ret->num_items=0;
-
-       ret->num_expands=0;
-       ret->num_expand_reallocs=0;
-       ret->num_contracts=0;
-       ret->num_contract_reallocs=0;
-       ret->num_hash_calls=0;
-       ret->num_comp_calls=0;
-       ret->num_insert=0;
-       ret->num_replace=0;
-       ret->num_delete=0;
-       ret->num_no_delete=0;
-       ret->num_retrieve=0;
-       ret->num_retrieve_miss=0;
-       ret->num_hash_comps=0;
-
-       ret->error=0;
-       return(ret);
+       for (i = 0; i < MIN_NODES; i++)
+               ret->b[i] = NULL;
+       ret->comp = ((c == NULL) ? (LHASH_COMP_FN_TYPE)strcmp : c);
+       ret->hash = ((h == NULL) ? (LHASH_HASH_FN_TYPE)lh_strhash : h);
+       ret->num_nodes = MIN_NODES / 2;
+       ret->num_alloc_nodes = MIN_NODES;
+       ret->p = 0;
+       ret->pmax = MIN_NODES / 2;
+       ret->up_load = UP_LOAD;
+       ret->down_load = DOWN_LOAD;
+       ret->num_items = 0;
+
+       ret->num_expands = 0;
+       ret->num_expand_reallocs = 0;
+       ret->num_contracts = 0;
+       ret->num_contract_reallocs = 0;
+       ret->num_hash_calls = 0;
+       ret->num_comp_calls = 0;
+       ret->num_insert = 0;
+       ret->num_replace = 0;
+       ret->num_delete = 0;
+       ret->num_no_delete = 0;
+       ret->num_retrieve = 0;
+       ret->num_retrieve_miss = 0;
+       ret->num_hash_comps = 0;
+
+       ret->error = 0;
+       return (ret);
+
 err1:
        free(ret);
 err0:
-       return(NULL);
-       }
+       return (NULL);
+}
 
-void lh_free(_LHASH *lh)
-       {
+void
+lh_free(_LHASH *lh)
+{
        unsigned int i;
-       LHASH_NODE *n,*nn;
+       LHASH_NODE *n, *nn;
 
        if (lh == NULL)
-           return;
-
-       for (i=0; i<lh->num_nodes; i++)
-               {
-               n=lh->b[i];
-               while (n != NULL)
-                       {
-                       nn=n->next;
+               return;
+
+       for (i = 0; i < lh->num_nodes; i++) {
+               n = lh->b[i];
+               while (n != NULL) {
+                       nn = n->next;
                        free(n);
-                       n=nn;
-                       }
+                       n = nn;
                }
+       }
        free(lh->b);
        free(lh);
-       }
+}
 
-void *lh_insert(_LHASH *lh, void *data)
-       {
+void *
+lh_insert(_LHASH *lh, void *data)
+{
        unsigned long hash;
-       LHASH_NODE *nn,**rn;
+       LHASH_NODE *nn, **rn;
        void *ret;
 
-       lh->error=0;
-       if (lh->up_load <= (lh->num_items*LH_LOAD_MULT/lh->num_nodes))
+       lh->error = 0;
+       if (lh->up_load <= (lh->num_items * LH_LOAD_MULT / lh->num_nodes))
                expand(lh);
 
-       rn=getrn(lh,data,&hash);
+       rn = getrn(lh, data, &hash);
 
-       if (*rn == NULL)
-               {
-               if ((nn=(LHASH_NODE *)malloc(sizeof(LHASH_NODE))) == NULL)
-                       {
+       if (*rn == NULL) {
+               if ((nn = (LHASH_NODE *)malloc(sizeof(LHASH_NODE))) == NULL) {
                        lh->error++;
-                       return(NULL);
-                       }
-               nn->data=data;
-               nn->next=NULL;
+                       return (NULL);
+               }
+               nn->data = data;
+               nn->next = NULL;
 #ifndef OPENSSL_NO_HASH_COMP
-               nn->hash=hash;
+               nn->hash = hash;
 #endif
-               *rn=nn;
-               ret=NULL;
+               *rn = nn;
+               ret = NULL;
                lh->num_insert++;
                lh->num_items++;
-               }
+       }
        else /* replace same key */
-               {
-               ret= (*rn)->data;
-               (*rn)->data=data;
+       {
+               ret = (*rn)->data;
+               (*rn)->data = data;
                lh->num_replace++;
-               }
-       return(ret);
        }
+       return (ret);
+}
 
-void *lh_delete(_LHASH *lh, const void *data)
-       {
+void *
+lh_delete(_LHASH *lh, const void *data)
+{
        unsigned long hash;
-       LHASH_NODE *nn,**rn;
+       LHASH_NODE *nn, **rn;
        void *ret;
 
-       lh->error=0;
-       rn=getrn(lh,data,&hash);
+       lh->error = 0;
+       rn = getrn(lh, data, &hash);
 
-       if (*rn == NULL)
-               {
+       if (*rn == NULL) {
                lh->num_no_delete++;
-               return(NULL);
-               }
-       else
-               {
+               return (NULL);
+       } else {
                nn= *rn;
-               *rn=nn->next;
-               ret=nn->data;
+               *rn = nn->next;
+               ret = nn->data;
                free(nn);
                lh->num_delete++;
-               }
+       }
 
        lh->num_items--;
        if ((lh->num_nodes > MIN_NODES) &&
-               (lh->down_load >= (lh->num_items*LH_LOAD_MULT/lh->num_nodes)))
+           (lh->down_load >= (lh->num_items * LH_LOAD_MULT / lh->num_nodes)))
                contract(lh);
 
-       return(ret);
-       }
+       return (ret);
+}
 
-void *lh_retrieve(_LHASH *lh, const void *data)
-       {
+void *
+lh_retrieve(_LHASH *lh, const void *data)
+{
        unsigned long hash;
        LHASH_NODE **rn;
        void *ret;
 
-       lh->error=0;
-       rn=getrn(lh,data,&hash);
+       lh->error = 0;
+       rn = getrn(lh, data, &hash);
 
-       if (*rn == NULL)
-               {
+       if (*rn == NULL) {
                lh->num_retrieve_miss++;
-               return(NULL);
-               }
-       else
-               {
-               ret= (*rn)->data;
+               return (NULL);
+       } else {
+               ret = (*rn)->data;
                lh->num_retrieve++;
-               }
-       return(ret);
        }
+       return (ret);
+}
 
-static void doall_util_fn(_LHASH *lh, int use_arg, LHASH_DOALL_FN_TYPE func,
-                         LHASH_DOALL_ARG_FN_TYPE func_arg, void *arg)
-       {
+static void
+doall_util_fn(_LHASH *lh, int use_arg, LHASH_DOALL_FN_TYPE func,
+    LHASH_DOALL_ARG_FN_TYPE func_arg, void *arg)
+{
        int i;
-       LHASH_NODE *a,*n;
+       LHASH_NODE *a, *n;
 
        if (lh == NULL)
                return;
 
        /* reverse the order so we search from 'top to bottom'
         * We were having memory leaks otherwise */
-       for (i=lh->num_nodes-1; i>=0; i--)
-               {
-               a=lh->b[i];
-               while (a != NULL)
-                       {
+       for (i = lh->num_nodes - 1; i >= 0; i--) {
+               a = lh->b[i];
+               while (a != NULL) {
                        /* 28/05/91 - eay - n added so items can be deleted
                         * via lh_doall */
                        /* 22/05/08 - ben - eh? since a is not passed,
                         * this should not be needed */
-                       n=a->next;
-                       if(use_arg)
-                               func_arg(a->data,arg);
+                       n = a->next;
+                       if (use_arg)
+                               func_arg(a->data, arg);
                        else
                                func(a->data);
-                       a=n;
-                       }
+                       a = n;
                }
        }
+}
 
-void lh_doall(_LHASH *lh, LHASH_DOALL_FN_TYPE func)
-       {
+void
+lh_doall(_LHASH *lh, LHASH_DOALL_FN_TYPE func)
+{
        doall_util_fn(lh, 0, func, (LHASH_DOALL_ARG_FN_TYPE)0, NULL);
-       }
+}
 
-void lh_doall_arg(_LHASH *lh, LHASH_DOALL_ARG_FN_TYPE func, void *arg)
-       {
+void
+lh_doall_arg(_LHASH *lh, LHASH_DOALL_ARG_FN_TYPE func, void *arg)
+{
        doall_util_fn(lh, 1, (LHASH_DOALL_FN_TYPE)0, func, arg);
-       }
+}
 
-static void expand(_LHASH *lh)
-       {
-       LHASH_NODE **n,**n1,**n2,*np;
-       unsigned int p,i,j;
-       unsigned long hash,nni;
+static void
+expand(_LHASH *lh)
+{
+       LHASH_NODE **n, **n1, **n2, *np;
+       unsigned int p, i, j;
+       unsigned long hash, nni;
 
        lh->num_nodes++;
        lh->num_expands++;
-       p=(int)lh->p++;
-       n1= &(lh->b[p]);
-       n2= &(lh->b[p+(int)lh->pmax]);
-       *n2=NULL;        /* 27/07/92 - eay - undefined pointer bug */
-       nni=lh->num_alloc_nodes;
-       
-       for (np= *n1; np != NULL; )
-               {
+       p = (int)lh->p++;
+       n1 = &(lh->b[p]);
+       n2 = &(lh->b[p + (int)lh->pmax]);
+       *n2 = NULL;        /* 27/07/92 - eay - undefined pointer bug */
+       nni = lh->num_alloc_nodes;
+
+       for (np = *n1; np != NULL; ) {
 #ifndef OPENSSL_NO_HASH_COMP
-               hash=np->hash;
+               hash = np->hash;
 #else
-               hash=lh->hash(np->data);
+               hash = lh->hash(np->data);
                lh->num_hash_calls++;
 #endif
-               if ((hash%nni) != p)
-                       { /* move it */
-                       *n1= (*n1)->next;
+               if ((hash % nni) != p) { /* move it */
+                       *n1 = (*n1)->next;
                        np->next= *n2;
-                       *n2=np;
-                       }
-               else
-                       n1= &((*n1)->next);
+                       *n2 = np;
+               } else
+                       n1 = &((*n1)->next);
                np= *n1;
-               }
+       }
 
-       if ((lh->p) >= lh->pmax)
-               {
-               j=(int)lh->num_alloc_nodes*2;
-               n=(LHASH_NODE **)realloc(lh->b,
-                       (int)(sizeof(LHASH_NODE *)*j));
-               if (n == NULL)
-                       {
-/*                     fputs("realloc error in lhash",stderr); */
+       if ((lh->p) >= lh->pmax) {
+               j = (int)lh->num_alloc_nodes * 2;
+               n = (LHASH_NODE **)realloc(lh->b,
+                   (int)(sizeof(LHASH_NODE *) * j));
+               if (n == NULL) {
+/*                     fputs("realloc error in lhash", stderr); */
                        lh->error++;
-                       lh->p=0;
+                       lh->p = 0;
                        return;
-                       }
+               }
                /* else */
-               for (i=(int)lh->num_alloc_nodes; i<j; i++)/* 26/02/92 eay */
-                       n[i]=NULL;                        /* 02/03/92 eay */
-               lh->pmax=lh->num_alloc_nodes;
-               lh->num_alloc_nodes=j;
+               for (i = (int)lh->num_alloc_nodes; i < j; i++)/* 26/02/92 eay */
+                       n[i] = NULL;                      /* 02/03/92 eay */
+               lh->pmax = lh->num_alloc_nodes;
+               lh->num_alloc_nodes = j;
                lh->num_expand_reallocs++;
-               lh->p=0;
-               lh->b=n;
-               }
+               lh->p = 0;
+               lh->b = n;
        }
-
-static void contract(_LHASH *lh)
-       {
-       LHASH_NODE **n,*n1,*np;
-
-       np=lh->b[lh->p+lh->pmax-1];
-       lh->b[lh->p+lh->pmax-1]=NULL; /* 24/07-92 - eay - weird but :-( */
-       if (lh->p == 0)
-               {
-               n=(LHASH_NODE **)realloc(lh->b,
-                       (unsigned int)(sizeof(LHASH_NODE *)*lh->pmax));
-               if (n == NULL)
-                       {
-/*                     fputs("realloc error in lhash",stderr); */
+}
+
+static void
+contract(_LHASH *lh)
+{
+       LHASH_NODE **n, *n1, *np;
+
+       np = lh->b[lh->p + lh->pmax - 1];
+       lh->b[lh->p+lh->pmax - 1] = NULL; /* 24/07-92 - eay - weird but :-( */
+       if (lh->p == 0) {
+               n = (LHASH_NODE **)realloc(lh->b,
+                   (unsigned int)(sizeof(LHASH_NODE *) * lh->pmax));
+               if (n == NULL) {
+/*                     fputs("realloc error in lhash", stderr); */
                        lh->error++;
                        return;
-                       }
-               lh->num_contract_reallocs++;
-               lh->num_alloc_nodes/=2;
-               lh->pmax/=2;
-               lh->p=lh->pmax-1;
-               lh->b=n;
                }
-       else
+               lh->num_contract_reallocs++;
+               lh->num_alloc_nodes /= 2;
+               lh->pmax /= 2;
+               lh->p = lh->pmax - 1;
+               lh->b = n;
+       } else
                lh->p--;
 
        lh->num_nodes--;
        lh->num_contracts++;
 
-       n1=lh->b[(int)lh->p];
+       n1 = lh->b[(int)lh->p];
        if (n1 == NULL)
-               lh->b[(int)lh->p]=np;
-       else
-               {
+               lh->b[(int)lh->p] = np;
+       else {
                while (n1->next != NULL)
-                       n1=n1->next;
-               n1->next=np;
-               }
+                       n1 = n1->next;
+               n1->next = np;
        }
+}
 
 static LHASH_NODE **getrn(_LHASH *lh, const void *data, unsigned long *rhash)
-       {
-       LHASH_NODE **ret,*n1;
-       unsigned long hash,nn;
+{
+       LHASH_NODE **ret, *n1;
+       unsigned long hash, nn;
        LHASH_COMP_FN_TYPE cf;
 
-       hash=(*(lh->hash))(data);
+       hash = (*(lh->hash))(data);
        lh->num_hash_calls++;
-       *rhash=hash;
+       *rhash = hash;
 
-       nn=hash%lh->pmax;
+       nn = hash % lh->pmax;
        if (nn < lh->p)
-               nn=hash%lh->num_alloc_nodes;
+               nn = hash % lh->num_alloc_nodes;
 
-       cf=lh->comp;
-       ret= &(lh->b[(int)nn]);
-       for (n1= *ret; n1 != NULL; n1=n1->next)
-               {
+       cf = lh->comp;
+       ret = &(lh->b[(int)nn]);
+       for (n1 = *ret; n1 != NULL; n1 = n1->next) {
 #ifndef OPENSSL_NO_HASH_COMP
                lh->num_hash_comps++;
-               if (n1->hash != hash)
-                       {
-                       ret= &(n1->next);
+               if (n1->hash != hash) {
+                       ret = &(n1->next);
                        continue;
-                       }
+               }
 #endif
                lh->num_comp_calls++;
-               if(cf(n1->data,data) == 0)
+               if (cf(n1->data, data) == 0)
                        break;
-               ret= &(n1->next);
-               }
-       return(ret);
+               ret = &(n1->next);
        }
+       return (ret);
+}
 
 /* The following hash seems to work very well on normal text strings
  * no collisions on /usr/dict/words and it distributes on %2^n quite
  * well, not as good as MD5, but still good.
  */
-unsigned long lh_strhash(const char *c)
-       {
-       unsigned long ret=0;
+unsigned long
+lh_strhash(const char *c)
+{
+       unsigned long ret = 0;
        long n;
        unsigned long v;
        int r;
 
        if ((c == NULL) || (*c == '\0'))
-               return(ret);
+               return (ret);
 /*
        unsigned char b[16];
        MD5(c,strlen(c),b);
-       return(b[0]|(b[1]<<8)|(b[2]<<16)|(b[3]<<24)); 
+       return(b[0]|(b[1]<<8)|(b[2]<<16)|(b[3]<<24));
 */
 
-       n=0x100;
-       while (*c)
-               {
-               v=n|(*c);
-               n+=0x100;
-               r= (int)((v>>2)^v)&0x0f;
-               ret=(ret<<r)|(ret>>(32-r));
-               ret&=0xFFFFFFFFL;
-               ret^=v*v;
+       n = 0x100;
+       while (*c) {
+               v = n | (*c);
+               n += 0x100;
+               r = (int)((v >> 2) ^ v) & 0x0f;
+               ret = (ret << r)|(ret >> (32 - r));
+               ret &= 0xFFFFFFFFL;
+               ret ^= v * v;
                c++;
-               }
-       return((ret>>16)^ret);
        }
+       return ((ret >> 16) ^ ret);
+}
 
-unsigned long lh_num_items(const _LHASH *lh)
-       {
+unsigned long
+lh_num_items(const _LHASH *lh)
+{
        return lh ? lh->num_items : 0;
-       }
+}
index e7d8763..ea40ef1 100644 (file)
@@ -5,21 +5,21 @@
  * This package is an SSL implementation written
  * by Eric Young (eay@cryptsoft.com).
  * The implementation was written so as to conform with Netscapes SSL.
- * 
+ *
  * This library is free for commercial and non-commercial use as long as
  * the following conditions are aheared to.  The following conditions
  * apply to all code found in this distribution, be it the RC4, RSA,
  * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
  * included with this distribution is covered by the same copyright terms
  * except that the holder is Tim Hudson (tjh@cryptsoft.com).
- * 
+ *
  * Copyright remains Eric Young's, and as such any Copyright notices in
  * the code are not to be removed.
  * If this package is used in a product, Eric Young should be given attribution
  * as the author of the parts of the library used.
  * This can be in the form of a textual message at program startup or
  * in documentation (online or textual) provided with the package.
- * 
+ *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
  * are met:
  *     Eric Young (eay@cryptsoft.com)"
  *    The word 'cryptographic' can be left out if the rouines from the library
  *    being used are not cryptographic related :-).
- * 4. If you include any Windows specific code (or a derivative thereof) from 
+ * 4. If you include any Windows specific code (or a derivative thereof) from
  *    the apps directory (application code) you must include an acknowledgement:
  *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
- * 
+ *
  * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
@@ -49,7 +49,7 @@
  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
- * 
+ *
  * The licence and distribution terms for any publically available version or
  * derivative of this code cannot be changed.  i.e. this code cannot simply be
  * copied and put under another distribution licence
 extern "C" {
 #endif
 
-typedef struct lhash_node_st
-       {
+typedef struct lhash_node_st {
        void *data;
        struct lhash_node_st *next;
 #ifndef OPENSSL_NO_HASH_COMP
        unsigned long hash;
 #endif
-       } LHASH_NODE;
+} LHASH_NODE;
 
 typedef int (*LHASH_COMP_FN_TYPE)(const void *, const void *);
 typedef unsigned long (*LHASH_HASH_FN_TYPE)(const void *);
@@ -135,8 +134,7 @@ typedef void (*LHASH_DOALL_ARG_FN_TYPE)(void *, void *);
                name##_doall_arg(a, b); }
 #define LHASH_DOALL_ARG_FN(name) name##_LHASH_DOALL_ARG
 
-typedef struct lhash_st
-       {
+typedef struct lhash_st {
        LHASH_NODE **b;
        LHASH_COMP_FN_TYPE comp;
        LHASH_HASH_FN_TYPE hash;
@@ -163,8 +161,8 @@ typedef struct lhash_st
        unsigned long num_hash_comps;
 
        int error;
-       } _LHASH;       /* Do not use _LHASH directly, use LHASH_OF
-                        * and friends */
+} _LHASH;      /* Do not use _LHASH directly, use LHASH_OF
+                * and friends */
 
 #define LH_LOAD_MULT   256
 
@@ -238,4 +236,3 @@ DECLARE_LHASH_OF(OPENSSL_CSTRING);
 #endif
 
 #endif
-
index 815615e..34c7d77 100644 (file)
@@ -5,21 +5,21 @@
  * This package is an SSL implementation written
  * by Eric Young (eay@cryptsoft.com).
  * The implementation was written so as to conform with Netscapes SSL.
- * 
+ *
  * This library is free for commercial and non-commercial use as long as
  * the following conditions are aheared to.  The following conditions
  * apply to all code found in this distribution, be it the RC4, RSA,
  * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
  * included with this distribution is covered by the same copyright terms
  * except that the holder is Tim Hudson (tjh@cryptsoft.com).
- * 
+ *
  * Copyright remains Eric Young's, and as such any Copyright notices in
  * the code are not to be removed.
  * If this package is used in a product, Eric Young should be given attribution
  * as the author of the parts of the library used.
  * This can be in the form of a textual message at program startup or
  * in documentation (online or textual) provided with the package.
- * 
+ *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
  * are met:
  *     Eric Young (eay@cryptsoft.com)"
  *    The word 'cryptographic' can be left out if the rouines from the library
  *    being used are not cryptographic related :-).
- * 4. If you include any Windows specific code (or a derivative thereof) from 
+ * 4. If you include any Windows specific code (or a derivative thereof) from
  *    the apps directory (application code) you must include an acknowledgement:
  *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
- * 
+ *
  * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
@@ -49,7 +49,7 @@
  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
- * 
+ *
  * The licence and distribution terms for any publically available version or
  * derivative of this code cannot be changed.  i.e. this code cannot simply be
  * copied and put under another distribution licence
 
 #ifdef OPENSSL_NO_BIO
 
-void lh_stats(LHASH *lh, FILE *out)
-       {
-       fprintf(out,"num_items             = %lu\n",lh->num_items);
-       fprintf(out,"num_nodes             = %u\n",lh->num_nodes);
-       fprintf(out,"num_alloc_nodes       = %u\n",lh->num_alloc_nodes);
-       fprintf(out,"num_expands           = %lu\n",lh->num_expands);
-       fprintf(out,"num_expand_reallocs   = %lu\n",lh->num_expand_reallocs);
-       fprintf(out,"num_contracts         = %lu\n",lh->num_contracts);
-       fprintf(out,"num_contract_reallocs = %lu\n",lh->num_contract_reallocs);
-       fprintf(out,"num_hash_calls        = %lu\n",lh->num_hash_calls);
-       fprintf(out,"num_comp_calls        = %lu\n",lh->num_comp_calls);
-       fprintf(out,"num_insert            = %lu\n",lh->num_insert);
-       fprintf(out,"num_replace           = %lu\n",lh->num_replace);
-       fprintf(out,"num_delete            = %lu\n",lh->num_delete);
-       fprintf(out,"num_no_delete         = %lu\n",lh->num_no_delete);
-       fprintf(out,"num_retrieve          = %lu\n",lh->num_retrieve);
-       fprintf(out,"num_retrieve_miss     = %lu\n",lh->num_retrieve_miss);
-       fprintf(out,"num_hash_comps        = %lu\n",lh->num_hash_comps);
+void
+lh_stats(LHASH *lh, FILE *out)
+{
+       fprintf(out, "num_items             = %lu\n", lh->num_items);
+       fprintf(out, "num_nodes             = %u\n", lh->num_nodes);
+       fprintf(out, "num_alloc_nodes       = %u\n", lh->num_alloc_nodes);
+       fprintf(out, "num_expands           = %lu\n", lh->num_expands);
+       fprintf(out, "num_expand_reallocs   = %lu\n", lh->num_expand_reallocs);
+       fprintf(out, "num_contracts         = %lu\n", lh->num_contracts);
+       fprintf(out, "num_contract_reallocs = %lu\n",
+           lh->num_contract_reallocs);
+       fprintf(out, "num_hash_calls        = %lu\n", lh->num_hash_calls);
+       fprintf(out, "num_comp_calls        = %lu\n", lh->num_comp_calls);
+       fprintf(out, "num_insert            = %lu\n", lh->num_insert);
+       fprintf(out, "num_replace           = %lu\n", lh->num_replace);
+       fprintf(out, "num_delete            = %lu\n", lh->num_delete);
+       fprintf(out, "num_no_delete         = %lu\n", lh->num_no_delete);
+       fprintf(out, "num_retrieve          = %lu\n", lh->num_retrieve);
+       fprintf(out, "num_retrieve_miss     = %lu\n", lh->num_retrieve_miss);
+       fprintf(out, "num_hash_comps        = %lu\n", lh->num_hash_comps);
 #if 0
-       fprintf(out,"p                     = %u\n",lh->p);
-       fprintf(out,"pmax                  = %u\n",lh->pmax);
-       fprintf(out,"up_load               = %lu\n",lh->up_load);
-       fprintf(out,"down_load             = %lu\n",lh->down_load);
+       fprintf(out, "p                     = %u\n", lh->p);
+       fprintf(out, "pmax                  = %u\n", lh->pmax);
+       fprintf(out, "up_load               = %lu\n", lh->up_load);
+       fprintf(out, "down_load             = %lu\n", lh->down_load);
 #endif
-       }
+}
 
-void lh_node_stats(LHASH *lh, FILE *out)
-       {
+void
+lh_node_stats(LHASH *lh, FILE *out)
+{
        LHASH_NODE *n;
-       unsigned int i,num;
+       unsigned int i, num;
 
-       for (i=0; i<lh->num_nodes; i++)
-               {
-               for (n=lh->b[i],num=0; n != NULL; n=n->next)
+       for (i = 0; i < lh->num_nodes; i++) {
+               for (n = lh->b[i], num = 0; n != NULL; n = n->next)
                        num++;
-               fprintf(out,"node %6u -> %3u\n",i,num);
-               }
+               fprintf(out, "node %6u -> %3u\n", i, num);
        }
+}
 
-void lh_node_usage_stats(LHASH *lh, FILE *out)
-       {
+void
+lh_node_usage_stats(LHASH *lh, FILE *out)
+{
        LHASH_NODE *n;
        unsigned long num;
        unsigned int i;
-       unsigned long total=0,n_used=0;
+       unsigned long total = 0, n_used = 0;
 
-       for (i=0; i<lh->num_nodes; i++)
-               {
-               for (n=lh->b[i],num=0; n != NULL; n=n->next)
+       for (i = 0; i < lh->num_nodes; i++) {
+               for (n = lh->b[i], num = 0; n != NULL; n = n->next)
                        num++;
-               if (num != 0)
-                       {
+               if (num != 0) {
                        n_used++;
-                       total+=num;
-                       }
+                       total += num;
                }
-       fprintf(out,"%lu nodes used out of %u\n",n_used,lh->num_nodes);
-       fprintf(out,"%lu items\n",total);
-       if (n_used == 0) return;
-       fprintf(out,"load %d.%02d  actual load %d.%02d\n",
-               (int)(total/lh->num_nodes),
-               (int)((total%lh->num_nodes)*100/lh->num_nodes),
-               (int)(total/n_used),
-               (int)((total%n_used)*100/n_used));
        }
+       fprintf(out, "%lu nodes used out of %u\n", n_used, lh->num_nodes);
+       fprintf(out, "%lu items\n", total);
+       if (n_used == 0)
+               return;
+       fprintf(out, "load %d.%02d  actual load %d.%02d\n",
+           (int)(total / lh->num_nodes),
+           (int)((total % lh->num_nodes) * 100 / lh->num_nodes),
+           (int)(total / n_used),
+           (int)((total % n_used) * 100 / n_used));
+}
 
 #else
 
 #ifndef OPENSSL_NO_FP_API
-void lh_stats(const _LHASH *lh, FILE *fp)
-       {
+void
+lh_stats(const _LHASH *lh, FILE *fp)
+{
        BIO *bp;
 
-       bp=BIO_new(BIO_s_file());
-       if (bp == NULL) goto end;
-       BIO_set_fp(bp,fp,BIO_NOCLOSE);
-       lh_stats_bio(lh,bp);
+       bp = BIO_new(BIO_s_file());
+       if (bp == NULL)
+               goto end;
+       BIO_set_fp(bp, fp, BIO_NOCLOSE);
+       lh_stats_bio(lh, bp);
        BIO_free(bp);
 end:;
-       }
+}
 
-void lh_node_stats(const _LHASH *lh, FILE *fp)
-       {
+void
+lh_node_stats(const _LHASH *lh, FILE *fp)
+{
        BIO *bp;
 
-       bp=BIO_new(BIO_s_file());
-       if (bp == NULL) goto end;
-       BIO_set_fp(bp,fp,BIO_NOCLOSE);
-       lh_node_stats_bio(lh,bp);
+       bp = BIO_new(BIO_s_file());
+       if (bp == NULL)
+               goto end;
+       BIO_set_fp(bp, fp, BIO_NOCLOSE);
+       lh_node_stats_bio(lh, bp);
        BIO_free(bp);
 end:;
-       }
+}
 
-void lh_node_usage_stats(const _LHASH *lh, FILE *fp)
-       {
+void
+lh_node_usage_stats(const _LHASH *lh, FILE *fp)
+{
        BIO *bp;
 
-       bp=BIO_new(BIO_s_file());
-       if (bp == NULL) goto end;
-       BIO_set_fp(bp,fp,BIO_NOCLOSE);
-       lh_node_usage_stats_bio(lh,bp);
+       bp = BIO_new(BIO_s_file());
+       if (bp == NULL)
+               goto end;
+       BIO_set_fp(bp, fp, BIO_NOCLOSE);
+       lh_node_usage_stats_bio(lh, bp);
        BIO_free(bp);
 end:;
-       }
+}
 
 #endif
 
-void lh_stats_bio(const _LHASH *lh, BIO *out)
-       {
-       BIO_printf(out,"num_items             = %lu\n",lh->num_items);
-       BIO_printf(out,"num_nodes             = %u\n",lh->num_nodes);
-       BIO_printf(out,"num_alloc_nodes       = %u\n",lh->num_alloc_nodes);
-       BIO_printf(out,"num_expands           = %lu\n",lh->num_expands);
-       BIO_printf(out,"num_expand_reallocs   = %lu\n",
-                  lh->num_expand_reallocs);
-       BIO_printf(out,"num_contracts         = %lu\n",lh->num_contracts);
-       BIO_printf(out,"num_contract_reallocs = %lu\n",
-                  lh->num_contract_reallocs);
-       BIO_printf(out,"num_hash_calls        = %lu\n",lh->num_hash_calls);
-       BIO_printf(out,"num_comp_calls        = %lu\n",lh->num_comp_calls);
-       BIO_printf(out,"num_insert            = %lu\n",lh->num_insert);
-       BIO_printf(out,"num_replace           = %lu\n",lh->num_replace);
-       BIO_printf(out,"num_delete            = %lu\n",lh->num_delete);
-       BIO_printf(out,"num_no_delete         = %lu\n",lh->num_no_delete);
-       BIO_printf(out,"num_retrieve          = %lu\n",lh->num_retrieve);
-       BIO_printf(out,"num_retrieve_miss     = %lu\n",lh->num_retrieve_miss);
-       BIO_printf(out,"num_hash_comps        = %lu\n",lh->num_hash_comps);
+void
+lh_stats_bio(const _LHASH *lh, BIO *out)
+{
+       BIO_printf(out, "num_items             = %lu\n", lh->num_items);
+       BIO_printf(out, "num_nodes             = %u\n", lh->num_nodes);
+       BIO_printf(out, "num_alloc_nodes       = %u\n", lh->num_alloc_nodes);
+       BIO_printf(out, "num_expands           = %lu\n", lh->num_expands);
+       BIO_printf(out, "num_expand_reallocs   = %lu\n",
+           lh->num_expand_reallocs);
+       BIO_printf(out, "num_contracts         = %lu\n", lh->num_contracts);
+       BIO_printf(out, "num_contract_reallocs = %lu\n",
+           lh->num_contract_reallocs);
+       BIO_printf(out, "num_hash_calls        = %lu\n", lh->num_hash_calls);
+       BIO_printf(out, "num_comp_calls        = %lu\n", lh->num_comp_calls);
+       BIO_printf(out, "num_insert            = %lu\n", lh->num_insert);
+       BIO_printf(out, "num_replace           = %lu\n", lh->num_replace);
+       BIO_printf(out, "num_delete            = %lu\n", lh->num_delete);
+       BIO_printf(out, "num_no_delete         = %lu\n", lh->num_no_delete);
+       BIO_printf(out, "num_retrieve          = %lu\n", lh->num_retrieve);
+       BIO_printf(out, "num_retrieve_miss     = %lu\n", lh->num_retrieve_miss);
+       BIO_printf(out, "num_hash_comps        = %lu\n", lh->num_hash_comps);
 #if 0
-       BIO_printf(out,"p                     = %u\n",lh->p);
-       BIO_printf(out,"pmax                  = %u\n",lh->pmax);
-       BIO_printf(out,"up_load               = %lu\n",lh->up_load);
-       BIO_printf(out,"down_load             = %lu\n",lh->down_load);
+       BIO_printf(out, "p                     = %u\n", lh->p);
+       BIO_printf(out, "pmax                  = %u\n", lh->pmax);
+       BIO_printf(out, "up_load               = %lu\n", lh->up_load);
+       BIO_printf(out, "down_load             = %lu\n", lh->down_load);
 #endif
-       }
+}
 
-void lh_node_stats_bio(const _LHASH *lh, BIO *out)
-       {
+void
+lh_node_stats_bio(const _LHASH *lh, BIO *out)
+{
        LHASH_NODE *n;
-       unsigned int i,num;
+       unsigned int i, num;
 
-       for (i=0; i<lh->num_nodes; i++)
-               {
-               for (n=lh->b[i],num=0; n != NULL; n=n->next)
+       for (i = 0; i < lh->num_nodes; i++) {
+               for (n = lh->b[i], num = 0; n != NULL; n = n->next)
                        num++;
-               BIO_printf(out,"node %6u -> %3u\n",i,num);
-               }
+               BIO_printf(out, "node %6u -> %3u\n", i, num);
        }
+}
 
-void lh_node_usage_stats_bio(const _LHASH *lh, BIO *out)
-       {
+void
+lh_node_usage_stats_bio(const _LHASH *lh, BIO *out)
+{
        LHASH_NODE *n;
        unsigned long num;
        unsigned int i;
-       unsigned long total=0,n_used=0;
+       unsigned long total = 0, n_used = 0;
 
-       for (i=0; i<lh->num_nodes; i++)
-               {
-               for (n=lh->b[i],num=0; n != NULL; n=n->next)
+       for (i = 0; i < lh->num_nodes; i++) {
+               for (n = lh->b[i], num = 0; n != NULL; n = n->next)
                        num++;
-               if (num != 0)
-                       {
+               if (num != 0) {
                        n_used++;
-                       total+=num;
-                       }
+                       total += num;
                }
-       BIO_printf(out,"%lu nodes used out of %u\n",n_used,lh->num_nodes);
-       BIO_printf(out,"%lu items\n",total);
-       if (n_used == 0) return;
-       BIO_printf(out,"load %d.%02d  actual load %d.%02d\n",
-                  (int)(total/lh->num_nodes),
-                  (int)((total%lh->num_nodes)*100/lh->num_nodes),
-                  (int)(total/n_used),
-                  (int)((total%n_used)*100/n_used));
        }
+       BIO_printf(out, "%lu nodes used out of %u\n", n_used, lh->num_nodes);
+       BIO_printf(out, "%lu items\n", total);
+       if (n_used == 0)
+               return;
+       BIO_printf(out, "load %d.%02d  actual load %d.%02d\n",
+           (int)(total / lh->num_nodes),
+           (int)((total % lh->num_nodes) * 100 / lh->num_nodes),
+           (int)(total / n_used),
+           (int)((total % n_used) * 100 / n_used));
+}
 
 #endif
index 2224a21..6167be3 100644 (file)
@@ -5,21 +5,21 @@
  * This package is an SSL implementation written
  * by Eric Young (eay@cryptsoft.com).
  * The implementation was written so as to conform with Netscapes SSL.
- * 
+ *
  * This library is free for commercial and non-commercial use as long as
  * the following conditions are aheared to.  The following conditions
  * apply to all code found in this distribution, be it the RC4, RSA,
  * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
  * included with this distribution is covered by the same copyright terms
  * except that the holder is Tim Hudson (tjh@cryptsoft.com).
- * 
+ *
  * Copyright remains Eric Young's, and as such any Copyright notices in
  * the code are not to be removed.
  * If this package is used in a product, Eric Young should be given attribution
  * as the author of the parts of the library used.
  * This can be in the form of a textual message at program startup or
  * in documentation (online or textual) provided with the package.
- * 
+ *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
  * are met:
  *     Eric Young (eay@cryptsoft.com)"
  *    The word 'cryptographic' can be left out if the rouines from the library
  *    being used are not cryptographic related :-).
- * 4. If you include any Windows specific code (or a derivative thereof) from 
+ * 4. If you include any Windows specific code (or a derivative thereof) from
  *    the apps directory (application code) you must include an acknowledgement:
  *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
- * 
+ *
  * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
@@ -49,7 +49,7 @@
  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
- * 
+ *
  * The licence and distribution terms for any publically available version or
  * derivative of this code cannot be changed.  i.e. this code cannot simply be
  * copied and put under another distribution licence
 #include <openssl/lhash.h>
 
 main()
-       {
+{
        LHASH *conf;
        char buf[256];
        int i;
 
-       conf=lh_new(lh_strhash,strcmp);
-       for (;;)
-               {
+       conf = lh_new(lh_strhash, strcmp);
+       for (;;) {
                char *p;
 
-               buf[0]='\0';
-               fgets(buf,256,stdin);
-               if (buf[0] == '\0') break;
-               i=strlen(buf);
-               p=malloc(i+1);
-               memcpy(p,buf,i+1);
-               lh_insert(conf,p);
-               }
+               buf[0] = '\0';
+               fgets(buf, 256, stdin);
+               if (buf[0] == '\0')
+                       break;
+               i = strlen(buf);
+               p = malloc(i + 1);
+               memcpy(p, buf, i + 1);
+               lh_insert(conf, p);
+       }
 
-       lh_node_stats(conf,stdout);
-       lh_stats(conf,stdout);
-       lh_node_usage_stats(conf,stdout);
+       lh_node_stats(conf, stdout);
+       lh_stats(conf, stdout);
+       lh_node_usage_stats(conf, stdout);
        exit(0);
-       }
+}
index 78ba26d..ad24a77 100644 (file)
@@ -5,21 +5,21 @@
  * This package is an SSL implementation written
  * by Eric Young (eay@cryptsoft.com).
  * The implementation was written so as to conform with Netscapes SSL.
- * 
+ *
  * This library is free for commercial and non-commercial use as long as
  * the following conditions are aheared to.  The following conditions
  * apply to all code found in this distribution, be it the RC4, RSA,
  * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
  * included with this distribution is covered by the same copyright terms
  * except that the holder is Tim Hudson (tjh@cryptsoft.com).
- * 
+ *
  * Copyright remains Eric Young's, and as such any Copyright notices in
  * the code are not to be removed.
  * If this package is used in a product, Eric Young should be given attribution
  * as the author of the parts of the library used.
  * This can be in the form of a textual message at program startup or
  * in documentation (online or textual) provided with the package.
- * 
+ *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
  * are met:
  *     Eric Young (eay@cryptsoft.com)"
  *    The word 'cryptographic' can be left out if the rouines from the library
  *    being used are not cryptographic related :-).
- * 4. If you include any Windows specific code (or a derivative thereof) from 
+ * 4. If you include any Windows specific code (or a derivative thereof) from
  *    the apps directory (application code) you must include an acknowledgement:
  *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
- * 
+ *
  * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
@@ -49,7 +49,7 @@
  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
- * 
+ *
  * The licence and distribution terms for any publically available version or
  * derivative of this code cannot be changed.  i.e. this code cannot simply be
  * copied and put under another distribution licence
 #include <openssl/crypto.h>
 #include <openssl/lhash.h>
 
-const char lh_version[]="lhash" OPENSSL_VERSION_PTEXT;
+const char lh_version[] = "lhash" OPENSSL_VERSION_PTEXT;
 
-#undef MIN_NODES 
+#undef MIN_NODES
 #define MIN_NODES      16
 #define UP_LOAD                (2*LH_LOAD_MULT) /* load times 256  (default 2) */
 #define DOWN_LOAD      (LH_LOAD_MULT)   /* load times 256  (default 1) */
@@ -111,365 +111,354 @@ static void expand(_LHASH *lh);
 static void contract(_LHASH *lh);
 static LHASH_NODE **getrn(_LHASH *lh, const void *data, unsigned long *rhash);
 
-_LHASH *lh_new(LHASH_HASH_FN_TYPE h, LHASH_COMP_FN_TYPE c)
-       {
+_LHASH *
+lh_new(LHASH_HASH_FN_TYPE h, LHASH_COMP_FN_TYPE c)
+{
        _LHASH *ret;
        int i;
 
-       if ((ret=malloc(sizeof(_LHASH))) == NULL)
+       if ((ret = malloc(sizeof(_LHASH))) == NULL)
                goto err0;
-       if ((ret->b=malloc(sizeof(LHASH_NODE *)*MIN_NODES)) == NULL)
+       if ((ret->b = malloc(sizeof(LHASH_NODE *) * MIN_NODES)) == NULL)
                goto err1;
-       for (i=0; i<MIN_NODES; i++)
-               ret->b[i]=NULL;
-       ret->comp=((c == NULL)?(LHASH_COMP_FN_TYPE)strcmp:c);
-       ret->hash=((h == NULL)?(LHASH_HASH_FN_TYPE)lh_strhash:h);
-       ret->num_nodes=MIN_NODES/2;
-       ret->num_alloc_nodes=MIN_NODES;
-       ret->p=0;
-       ret->pmax=MIN_NODES/2;
-       ret->up_load=UP_LOAD;
-       ret->down_load=DOWN_LOAD;
-       ret->num_items=0;
-
-       ret->num_expands=0;
-       ret->num_expand_reallocs=0;
-       ret->num_contracts=0;
-       ret->num_contract_reallocs=0;
-       ret->num_hash_calls=0;
-       ret->num_comp_calls=0;
-       ret->num_insert=0;
-       ret->num_replace=0;
-       ret->num_delete=0;
-       ret->num_no_delete=0;
-       ret->num_retrieve=0;
-       ret->num_retrieve_miss=0;
-       ret->num_hash_comps=0;
-
-       ret->error=0;
-       return(ret);
+       for (i = 0; i < MIN_NODES; i++)
+               ret->b[i] = NULL;
+       ret->comp = ((c == NULL) ? (LHASH_COMP_FN_TYPE)strcmp : c);
+       ret->hash = ((h == NULL) ? (LHASH_HASH_FN_TYPE)lh_strhash : h);
+       ret->num_nodes = MIN_NODES / 2;
+       ret->num_alloc_nodes = MIN_NODES;
+       ret->p = 0;
+       ret->pmax = MIN_NODES / 2;
+       ret->up_load = UP_LOAD;
+       ret->down_load = DOWN_LOAD;
+       ret->num_items = 0;
+
+       ret->num_expands = 0;
+       ret->num_expand_reallocs = 0;
+       ret->num_contracts = 0;
+       ret->num_contract_reallocs = 0;
+       ret->num_hash_calls = 0;
+       ret->num_comp_calls = 0;
+       ret->num_insert = 0;
+       ret->num_replace = 0;
+       ret->num_delete = 0;
+       ret->num_no_delete = 0;
+       ret->num_retrieve = 0;
+       ret->num_retrieve_miss = 0;
+       ret->num_hash_comps = 0;
+
+       ret->error = 0;
+       return (ret);
+
 err1:
        free(ret);
 err0:
-       return(NULL);
-       }
+       return (NULL);
+}
 
-void lh_free(_LHASH *lh)
-       {
+void
+lh_free(_LHASH *lh)
+{
        unsigned int i;
-       LHASH_NODE *n,*nn;
+       LHASH_NODE *n, *nn;
 
        if (lh == NULL)
-           return;
-
-       for (i=0; i<lh->num_nodes; i++)
-               {
-               n=lh->b[i];
-               while (n != NULL)
-                       {
-                       nn=n->next;
+               return;
+
+       for (i = 0; i < lh->num_nodes; i++) {
+               n = lh->b[i];
+               while (n != NULL) {
+                       nn = n->next;
                        free(n);
-                       n=nn;
-                       }
+                       n = nn;
                }
+       }
        free(lh->b);
        free(lh);
-       }
+}
 
-void *lh_insert(_LHASH *lh, void *data)
-       {
+void *
+lh_insert(_LHASH *lh, void *data)
+{
        unsigned long hash;
-       LHASH_NODE *nn,**rn;
+       LHASH_NODE *nn, **rn;
        void *ret;
 
-       lh->error=0;
-       if (lh->up_load <= (lh->num_items*LH_LOAD_MULT/lh->num_nodes))
+       lh->error = 0;
+       if (lh->up_load <= (lh->num_items * LH_LOAD_MULT / lh->num_nodes))
                expand(lh);
 
-       rn=getrn(lh,data,&hash);
+       rn = getrn(lh, data, &hash);
 
-       if (*rn == NULL)
-               {
-               if ((nn=(LHASH_NODE *)malloc(sizeof(LHASH_NODE))) == NULL)
-                       {
+       if (*rn == NULL) {
+               if ((nn = (LHASH_NODE *)malloc(sizeof(LHASH_NODE))) == NULL) {
                        lh->error++;
-                       return(NULL);
-                       }
-               nn->data=data;
-               nn->next=NULL;
+                       return (NULL);
+               }
+               nn->data = data;
+               nn->next = NULL;
 #ifndef OPENSSL_NO_HASH_COMP
-               nn->hash=hash;
+               nn->hash = hash;
 #endif
-               *rn=nn;
-               ret=NULL;
+               *rn = nn;
+               ret = NULL;
                lh->num_insert++;
                lh->num_items++;
-               }
+       }
        else /* replace same key */
-               {
-               ret= (*rn)->data;
-               (*rn)->data=data;
+       {
+               ret = (*rn)->data;
+               (*rn)->data = data;
                lh->num_replace++;
-               }
-       return(ret);
        }
+       return (ret);
+}
 
-void *lh_delete(_LHASH *lh, const void *data)
-       {
+void *
+lh_delete(_LHASH *lh, const void *data)
+{
        unsigned long hash;
-       LHASH_NODE *nn,**rn;
+       LHASH_NODE *nn, **rn;
        void *ret;
 
-       lh->error=0;
-       rn=getrn(lh,data,&hash);
+       lh->error = 0;
+       rn = getrn(lh, data, &hash);
 
-       if (*rn == NULL)
-               {
+       if (*rn == NULL) {
                lh->num_no_delete++;
-               return(NULL);
-               }
-       else
-               {
+               return (NULL);
+       } else {
                nn= *rn;
-               *rn=nn->next;
-               ret=nn->data;
+               *rn = nn->next;
+               ret = nn->data;
                free(nn);
                lh->num_delete++;
-               }
+       }
 
        lh->num_items--;
        if ((lh->num_nodes > MIN_NODES) &&
-               (lh->down_load >= (lh->num_items*LH_LOAD_MULT/lh->num_nodes)))
+           (lh->down_load >= (lh->num_items * LH_LOAD_MULT / lh->num_nodes)))
                contract(lh);
 
-       return(ret);
-       }
+       return (ret);
+}
 
-void *lh_retrieve(_LHASH *lh, const void *data)
-       {
+void *
+lh_retrieve(_LHASH *lh, const void *data)
+{
        unsigned long hash;
        LHASH_NODE **rn;
        void *ret;
 
-       lh->error=0;
-       rn=getrn(lh,data,&hash);
+       lh->error = 0;
+       rn = getrn(lh, data, &hash);
 
-       if (*rn == NULL)
-               {
+       if (*rn == NULL) {
                lh->num_retrieve_miss++;
-               return(NULL);
-               }
-       else
-               {
-               ret= (*rn)->data;
+               return (NULL);
+       } else {
+               ret = (*rn)->data;
                lh->num_retrieve++;
-               }
-       return(ret);
        }
+       return (ret);
+}
 
-static void doall_util_fn(_LHASH *lh, int use_arg, LHASH_DOALL_FN_TYPE func,
-                         LHASH_DOALL_ARG_FN_TYPE func_arg, void *arg)
-       {
+static void
+doall_util_fn(_LHASH *lh, int use_arg, LHASH_DOALL_FN_TYPE func,
+    LHASH_DOALL_ARG_FN_TYPE func_arg, void *arg)
+{
        int i;
-       LHASH_NODE *a,*n;
+       LHASH_NODE *a, *n;
 
        if (lh == NULL)
                return;
 
        /* reverse the order so we search from 'top to bottom'
         * We were having memory leaks otherwise */
-       for (i=lh->num_nodes-1; i>=0; i--)
-               {
-               a=lh->b[i];
-               while (a != NULL)
-                       {
+       for (i = lh->num_nodes - 1; i >= 0; i--) {
+               a = lh->b[i];
+               while (a != NULL) {
                        /* 28/05/91 - eay - n added so items can be deleted
                         * via lh_doall */
                        /* 22/05/08 - ben - eh? since a is not passed,
                         * this should not be needed */
-                       n=a->next;
-                       if(use_arg)
-                               func_arg(a->data,arg);
+                       n = a->next;
+                       if (use_arg)
+                               func_arg(a->data, arg);
                        else
                                func(a->data);
-                       a=n;
-                       }
+                       a = n;
                }
        }
+}
 
-void lh_doall(_LHASH *lh, LHASH_DOALL_FN_TYPE func)
-       {
+void
+lh_doall(_LHASH *lh, LHASH_DOALL_FN_TYPE func)
+{
        doall_util_fn(lh, 0, func, (LHASH_DOALL_ARG_FN_TYPE)0, NULL);
-       }
+}
 
-void lh_doall_arg(_LHASH *lh, LHASH_DOALL_ARG_FN_TYPE func, void *arg)
-       {
+void
+lh_doall_arg(_LHASH *lh, LHASH_DOALL_ARG_FN_TYPE func, void *arg)
+{
        doall_util_fn(lh, 1, (LHASH_DOALL_FN_TYPE)0, func, arg);
-       }
+}
 
-static void expand(_LHASH *lh)
-       {
-       LHASH_NODE **n,**n1,**n2,*np;
-       unsigned int p,i,j;
-       unsigned long hash,nni;
+static void
+expand(_LHASH *lh)
+{
+       LHASH_NODE **n, **n1, **n2, *np;
+       unsigned int p, i, j;
+       unsigned long hash, nni;
 
        lh->num_nodes++;
        lh->num_expands++;
-       p=(int)lh->p++;
-       n1= &(lh->b[p]);
-       n2= &(lh->b[p+(int)lh->pmax]);
-       *n2=NULL;        /* 27/07/92 - eay - undefined pointer bug */
-       nni=lh->num_alloc_nodes;
-       
-       for (np= *n1; np != NULL; )
-               {
+       p = (int)lh->p++;
+       n1 = &(lh->b[p]);
+       n2 = &(lh->b[p + (int)lh->pmax]);
+       *n2 = NULL;        /* 27/07/92 - eay - undefined pointer bug */
+       nni = lh->num_alloc_nodes;
+
+       for (np = *n1; np != NULL; ) {
 #ifndef OPENSSL_NO_HASH_COMP
-               hash=np->hash;
+               hash = np->hash;
 #else
-               hash=lh->hash(np->data);
+               hash = lh->hash(np->data);
                lh->num_hash_calls++;
 #endif
-               if ((hash%nni) != p)
-                       { /* move it */
-                       *n1= (*n1)->next;
+               if ((hash % nni) != p) { /* move it */
+                       *n1 = (*n1)->next;
                        np->next= *n2;
-                       *n2=np;
-                       }
-               else
-                       n1= &((*n1)->next);
+                       *n2 = np;
+               } else
+                       n1 = &((*n1)->next);
                np= *n1;
-               }
+       }
 
-       if ((lh->p) >= lh->pmax)
-               {
-               j=(int)lh->num_alloc_nodes*2;
-               n=(LHASH_NODE **)realloc(lh->b,
-                       (int)(sizeof(LHASH_NODE *)*j));
-               if (n == NULL)
-                       {
-/*                     fputs("realloc error in lhash",stderr); */
+       if ((lh->p) >= lh->pmax) {
+               j = (int)lh->num_alloc_nodes * 2;
+               n = (LHASH_NODE **)realloc(lh->b,
+                   (int)(sizeof(LHASH_NODE *) * j));
+               if (n == NULL) {
+/*                     fputs("realloc error in lhash", stderr); */
                        lh->error++;
-                       lh->p=0;
+                       lh->p = 0;
                        return;
-                       }
+               }
                /* else */
-               for (i=(int)lh->num_alloc_nodes; i<j; i++)/* 26/02/92 eay */
-                       n[i]=NULL;                        /* 02/03/92 eay */
-               lh->pmax=lh->num_alloc_nodes;
-               lh->num_alloc_nodes=j;
+               for (i = (int)lh->num_alloc_nodes; i < j; i++)/* 26/02/92 eay */
+                       n[i] = NULL;                      /* 02/03/92 eay */
+               lh->pmax = lh->num_alloc_nodes;
+               lh->num_alloc_nodes = j;
                lh->num_expand_reallocs++;
-               lh->p=0;
-               lh->b=n;
-               }
+               lh->p = 0;
+               lh->b = n;
        }
-
-static void contract(_LHASH *lh)
-       {
-       LHASH_NODE **n,*n1,*np;
-
-       np=lh->b[lh->p+lh->pmax-1];
-       lh->b[lh->p+lh->pmax-1]=NULL; /* 24/07-92 - eay - weird but :-( */
-       if (lh->p == 0)
-               {
-               n=(LHASH_NODE **)realloc(lh->b,
-                       (unsigned int)(sizeof(LHASH_NODE *)*lh->pmax));
-               if (n == NULL)
-                       {
-/*                     fputs("realloc error in lhash",stderr); */
+}
+
+static void
+contract(_LHASH *lh)
+{
+       LHASH_NODE **n, *n1, *np;
+
+       np = lh->b[lh->p + lh->pmax - 1];
+       lh->b[lh->p+lh->pmax - 1] = NULL; /* 24/07-92 - eay - weird but :-( */
+       if (lh->p == 0) {
+               n = (LHASH_NODE **)realloc(lh->b,
+                   (unsigned int)(sizeof(LHASH_NODE *) * lh->pmax));
+               if (n == NULL) {
+/*                     fputs("realloc error in lhash", stderr); */
                        lh->error++;
                        return;
-                       }
-               lh->num_contract_reallocs++;
-               lh->num_alloc_nodes/=2;
-               lh->pmax/=2;
-               lh->p=lh->pmax-1;
-               lh->b=n;
                }
-       else
+               lh->num_contract_reallocs++;
+               lh->num_alloc_nodes /= 2;
+               lh->pmax /= 2;
+               lh->p = lh->pmax - 1;
+               lh->b = n;
+       } else
                lh->p--;
 
        lh->num_nodes--;
        lh->num_contracts++;
 
-       n1=lh->b[(int)lh->p];
+       n1 = lh->b[(int)lh->p];
        if (n1 == NULL)
-               lh->b[(int)lh->p]=np;
-       else
-               {
+               lh->b[(int)lh->p] = np;
+       else {
                while (n1->next != NULL)
-                       n1=n1->next;
-               n1->next=np;
-               }
+                       n1 = n1->next;
+               n1->next = np;
        }
+}
 
 static LHASH_NODE **getrn(_LHASH *lh, const void *data, unsigned long *rhash)
-       {
-       LHASH_NODE **ret,*n1;
-       unsigned long hash,nn;
+{
+       LHASH_NODE **ret, *n1;
+       unsigned long hash, nn;
        LHASH_COMP_FN_TYPE cf;
 
-       hash=(*(lh->hash))(data);
+       hash = (*(lh->hash))(data);
        lh->num_hash_calls++;
-       *rhash=hash;
+       *rhash = hash;
 
-       nn=hash%lh->pmax;
+       nn = hash % lh->pmax;
        if (nn < lh->p)
-               nn=hash%lh->num_alloc_nodes;
+               nn = hash % lh->num_alloc_nodes;
 
-       cf=lh->comp;
-       ret= &(lh->b[(int)nn]);
-       for (n1= *ret; n1 != NULL; n1=n1->next)
-               {
+       cf = lh->comp;
+       ret = &(lh->b[(int)nn]);
+       for (n1 = *ret; n1 != NULL; n1 = n1->next) {
 #ifndef OPENSSL_NO_HASH_COMP
                lh->num_hash_comps++;
-               if (n1->hash != hash)
-                       {
-                       ret= &(n1->next);
+               if (n1->hash != hash) {
+                       ret = &(n1->next);
                        continue;
-                       }
+               }
 #endif
                lh->num_comp_calls++;
-               if(cf(n1->data,data) == 0)
+               if (cf(n1->data, data) == 0)
                        break;
-               ret= &(n1->next);
-               }
-       return(ret);
+               ret = &(n1->next);
        }
+       return (ret);
+}
 
 /* The following hash seems to work very well on normal text strings
  * no collisions on /usr/dict/words and it distributes on %2^n quite
  * well, not as good as MD5, but still good.
  */
-unsigned long lh_strhash(const char *c)
-       {
-       unsigned long ret=0;
+unsigned long
+lh_strhash(const char *c)
+{
+       unsigned long ret = 0;
        long n;
        unsigned long v;
        int r;
 
        if ((c == NULL) || (*c == '\0'))
-               return(ret);
+               return (ret);
 /*
        unsigned char b[16];
        MD5(c,strlen(c),b);
-       return(b[0]|(b[1]<<8)|(b[2]<<16)|(b[3]<<24)); 
+       return(b[0]|(b[1]<<8)|(b[2]<<16)|(b[3]<<24));
 */
 
-       n=0x100;
-       while (*c)
-               {
-               v=n|(*c);
-               n+=0x100;
-               r= (int)((v>>2)^v)&0x0f;
-               ret=(ret<<r)|(ret>>(32-r));
-               ret&=0xFFFFFFFFL;
-               ret^=v*v;
+       n = 0x100;
+       while (*c) {
+               v = n | (*c);
+               n += 0x100;
+               r = (int)((v >> 2) ^ v) & 0x0f;
+               ret = (ret << r)|(ret >> (32 - r));
+               ret &= 0xFFFFFFFFL;
+               ret ^= v * v;
                c++;
-               }
-       return((ret>>16)^ret);
        }
+       return ((ret >> 16) ^ ret);
+}
 
-unsigned long lh_num_items(const _LHASH *lh)
-       {
+unsigned long
+lh_num_items(const _LHASH *lh)
+{
        return lh ? lh->num_items : 0;
-       }
+}
index e7d8763..ea40ef1 100644 (file)
@@ -5,21 +5,21 @@
  * This package is an SSL implementation written
  * by Eric Young (eay@cryptsoft.com).
  * The implementation was written so as to conform with Netscapes SSL.
- * 
+ *
  * This library is free for commercial and non-commercial use as long as
  * the following conditions are aheared to.  The following conditions
  * apply to all code found in this distribution, be it the RC4, RSA,
  * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
  * included with this distribution is covered by the same copyright terms
  * except that the holder is Tim Hudson (tjh@cryptsoft.com).
- * 
+ *
  * Copyright remains Eric Young's, and as such any Copyright notices in
  * the code are not to be removed.
  * If this package is used in a product, Eric Young should be given attribution
  * as the author of the parts of the library used.
  * This can be in the form of a textual message at program startup or
  * in documentation (online or textual) provided with the package.
- * 
+ *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
  * are met:
  *     Eric Young (eay@cryptsoft.com)"
  *    The word 'cryptographic' can be left out if the rouines from the library
  *    being used are not cryptographic related :-).
- * 4. If you include any Windows specific code (or a derivative thereof) from 
+ * 4. If you include any Windows specific code (or a derivative thereof) from
  *    the apps directory (application code) you must include an acknowledgement:
  *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
- * 
+ *
  * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
@@ -49,7 +49,7 @@
  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
- * 
+ *
  * The licence and distribution terms for any publically available version or
  * derivative of this code cannot be changed.  i.e. this code cannot simply be
  * copied and put under another distribution licence
 extern "C" {
 #endif
 
-typedef struct lhash_node_st
-       {
+typedef struct lhash_node_st {
        void *data;
        struct lhash_node_st *next;
 #ifndef OPENSSL_NO_HASH_COMP
        unsigned long hash;
 #endif
-       } LHASH_NODE;
+} LHASH_NODE;
 
 typedef int (*LHASH_COMP_FN_TYPE)(const void *, const void *);
 typedef unsigned long (*LHASH_HASH_FN_TYPE)(const void *);
@@ -135,8 +134,7 @@ typedef void (*LHASH_DOALL_ARG_FN_TYPE)(void *, void *);
                name##_doall_arg(a, b); }
 #define LHASH_DOALL_ARG_FN(name) name##_LHASH_DOALL_ARG
 
-typedef struct lhash_st
-       {
+typedef struct lhash_st {
        LHASH_NODE **b;
        LHASH_COMP_FN_TYPE comp;
        LHASH_HASH_FN_TYPE hash;
@@ -163,8 +161,8 @@ typedef struct lhash_st
        unsigned long num_hash_comps;
 
        int error;
-       } _LHASH;       /* Do not use _LHASH directly, use LHASH_OF
-                        * and friends */
+} _LHASH;      /* Do not use _LHASH directly, use LHASH_OF
+                * and friends */
 
 #define LH_LOAD_MULT   256
 
@@ -238,4 +236,3 @@ DECLARE_LHASH_OF(OPENSSL_CSTRING);
 #endif
 
 #endif
-