home *** CD-ROM | disk | FTP | other *** search
/ The C Users' Group Library 1994 August / wc-cdrom-cusersgrouplibrary-1994-08.iso / listings / v_07_08 / v7n8073a.txt < prev    next >
Text File  |  1989-10-02  |  977b  |  42 lines

  1.  
  2.  
  3. *****Listing 4*****
  4.  
  5.  
  6.      unsigned short compute_checksum(start,length)
  7.          unsigned char * start;
  8.          unsigned short length;
  9.          {
  10.           unsigned short sum = 0;
  11.           unsigned char * end = start + length;
  12.  
  13.           while(start < end)
  14.              {
  15.               sum += *start++;
  16.              }
  17.           return sum;
  18.          }
  19.  
  20.      short check_checksum(where,start,length,oldsum)
  21.          char * where;
  22.          unsigned char * start;
  23.          unsigned short length;
  24.          unsigned short oldsum;
  25.          {
  26.           unsigned short sum;
  27.           sum = compute_checksum(start,length);
  28.           if(sum == oldsum)
  29.              return 0;
  30.  
  31.           fprintf(stderr,
  32.                   "Checksum error at %s:"
  33.                   " %p/%ud(0x%4x),"
  34.                   " old %ux, new %ux\n",
  35.                   where, start, length,
  36.                   oldsum, sum);
  37.           return stop();
  38.          }
  39.  
  40. **********
  41.  
  42.