Changeset 19 for trunk/src/sh_tiger0.c


Ignore:
Timestamp:
Feb 12, 2006, 10:49:56 PM (19 years ago)
Author:
rainer
Message:

Rewrite of test suite, checksum for growing logs, fix for minor bug with dead client detection.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/sh_tiger0.c

    r18 r19  
    104104static
    105105word64 * sh_tiger_hash_val (char * filename, TigerType what,
    106                             unsigned long Length, int timeout)
     106                            UINT64 Length, int timeout)
    107107#else
    108108static
    109109sh_word32 * sh_tiger_hash_val (char * filename, TigerType what,
    110                                unsigned long Length, int timeout)
     110                               UINT64 Length, int timeout)
    111111#endif
    112112{
     
    117117  char    * tmp;
    118118  sh_byte * bptr;
    119   sh_byte bbuf[64];
     119  sh_byte   bbuf[64];
     120  UINT64    bcount = 0;
    120121
    121122  static int lockflag = SL_FALSE;
     
    178179     
    179180#if defined(HAVE_MLOCK) && !defined(HAVE_BROKEN_MLOCK)
    180     if (lockflag == SL_FALSE && skey->mlock_failed == SL_FALSE)
     181    if ((lockflag == SL_FALSE) && (skey->mlock_failed == SL_FALSE))
    181182      {
    182         if ( (-1) == sh_unix_mlock((char *)buffer,(PRIV_MAX)*sizeof(sh_byte)))
     183        lockflag = SL_TRUE;
     184        if ( (-1) == sh_unix_mlock(FIL__, __LINE__,
     185                                   (char *)buffer,
     186                                   (PRIV_MAX)*sizeof(sh_byte)))
    183187          skey->mlock_failed = SL_TRUE;
    184         lockflag = SL_TRUE;
    185188      }
    186189#else
    187190    if (lockflag == SL_FALSE && skey->mlock_failed == SL_FALSE)
    188191      {
     192        lockflag = SL_TRUE;
    189193        skey->mlock_failed = SL_TRUE;
    190         lockflag = SL_TRUE;
    191194      }
    192195#endif
     
    229232
    230233            SL_RETURN( NULL, _("sh_tiger_hash_val"));
     234          }
     235
     236        if (Length > 0)
     237          {
     238            bcount += count;
     239            if (bcount > Length)
     240              count = count - (bcount - Length);
     241            count = (count < 0) ? 0 : count;
    231242          }
    232243
     
    382393  if (what == TIGER_DATA && filename != NULL)
    383394    {
    384       tiger(TIGER_CAST filename,  (sh_word32) Length, res);
     395      tiger(TIGER_CAST filename, (sh_word32) Length, res);
    385396      SL_RETURN(res, _("sh_tiger_hash_val"));
    386397    }
     
    692703   resulting message digest number will be written into the 16 bytes
    693704   beginning at RESBLOCK.  */
    694 static int md5_stream(char * filename, void *resblock, int timeout)
     705static int md5_stream(char * filename, void *resblock,
     706                      UINT64 Length, int timeout)
    695707{
    696708  /* Important: BLOCKSIZE must be a multiple of 64.  */
     
    702714  char * tmp;
    703715  uid_t   euid;
     716  UINT64  bcount = 0;
    704717
    705718  unsigned long pages_read;
     
    762775        }
    763776
     777      if (Length > 0)
     778        {
     779          bcount += n;
     780          if (bcount > Length)
     781            n = n - (bcount - Length);
     782          n = (n < 0) ? 0 : n;
     783        }
     784
    764785      sum += n;
    765786    }
     
    807828static
    808829char * sh_tiger_md5_hash  (char * filename, TigerType what,
    809                            unsigned long Length, int timeout)
    810 {
    811   int cnt = (int) Length;
     830                           UINT64 Length, int timeout)
     831{
     832  int cnt;
    812833  static char out[KEY_LEN+1];
    813834  unsigned char md5buffer[16];
     
    822843    }
    823844
    824   (void) md5_stream (filename, md5buffer, timeout);
     845  (void) md5_stream (filename, md5buffer, Length, timeout);
    825846
    826847  /*@-bufferoverflowhigh -usedef@*/
     
    12021223   resulting message digest number will be written into the 16 bytes
    12031224   beginning at RESBLOCK.  */
    1204 static int sha1_stream(char * filename, void *resblock, int timeout)
     1225static int sha1_stream(char * filename, void *resblock,
     1226                       UINT64 Length, int timeout)
    12051227{
    12061228  /* Important: BLOCKSIZE must be a multiple of 64.  */
     
    12121234  char * tmp;
    12131235  uid_t  euid;
     1236  UINT64 bcount = 0;
    12141237
    12151238  unsigned long pages_read;
     
    12751298        }
    12761299
     1300      if (Length > 0)
     1301        {
     1302          bcount += n;
     1303          if (bcount > Length)
     1304            n = n - (bcount - Length);
     1305          n = (n < 0) ? 0 : n;
     1306        }
     1307
    12771308      sum += n;
    12781309    }
     
    13221353
    13231354static char * sh_tiger_sha1_hash  (char * filename, TigerType what,
    1324                                    unsigned long Length, int timeout)
     1355                                   UINT64 Length, int timeout)
    13251356{
    13261357  int cnt = (int) Length;  /* fix compiler warning */
     
    13371368    }
    13381369
    1339   (void) sha1_stream (filename, sha1buffer, timeout);
     1370  (void) sha1_stream (filename, sha1buffer, Length, timeout);
    13401371
    13411372  /*@-bufferoverflowhigh -usedef@*/
     
    13881419
    13891420static char * sh_tiger_hash_internal (char * filename, TigerType what,
    1390                                       unsigned long Length, int timeout);
     1421                                      UINT64 Length, int timeout);
    13911422
    13921423char * sh_tiger_hash (char * filename, TigerType what,
    1393                       unsigned long Length)
     1424                      UINT64 Length)
    13941425{
    13951426  return sh_tiger_hash_internal (filename, what, Length, 0);
     
    13971428
    13981429char * sh_tiger_generic_hash (char * filename, TigerType what,
    1399                               unsigned long Length, int timeout)
     1430                              UINT64 Length, int timeout)
    14001431{
    14011432#ifdef USE_SHA1
     
    14141445 
    14151446static char * sh_tiger_hash_internal (char * filename, TigerType what,
    1416                                       unsigned long Length, int timeout)
     1447                                      UINT64 Length, int timeout)
    14171448{
    14181449#if defined(TIGER_64_BIT)
     
    14231454  static char out[KEY_LEN+1];
    14241455
    1425   SL_ENTER( _("sh_tiger_hash"));
     1456  SL_ENTER( _("sh_tiger_hash_internal"));
    14261457
    14271458  res = sh_tiger_hash_val (filename, what, Length, timeout);
     
    14511482      /*@+bufferoverflowhigh@*/
    14521483      out[KEY_LEN] = '\0';
    1453       SL_RETURN( out, _("sh_tiger_hash"));
     1484      SL_RETURN( out, _("sh_tiger_hash_internal"));
    14541485
    14551486    }
    14561487
    14571488   SL_RETURN( _("000000000000000000000000000000000000000000000000"),
    1458               _("sh_tiger_hash"));
     1489              _("sh_tiger_hash_internal"));
    14591490}
    14601491
    14611492char * sh_tiger_hash_gpg (char * filename, TigerType what,
    1462                           unsigned long Length)
     1493                          UINT64 Length)
    14631494{
    14641495  size_t  len;
     
    15301561UINT32 * sh_tiger_hash_uint32 (char * filename,
    15311562                               TigerType what,
    1532                                unsigned long Length)
     1563                               UINT64 Length)
    15331564{
    15341565#if defined(TIGER_64_BIT)
Note: See TracChangeset for help on using the changeset viewer.