#include /************************************************************************/ /* checksum -- verify checksum */ /************************************************************************/ int checksum (buff, bufflen) char *buff ; int bufflen ; { int ctr ; int retval ; char tmpstr [5] ; long strtol () ; unsigned int chk_sum = (unsigned) 0 ; int twos_comp ; ctr = 0 ; while (ctr < (bufflen - 5)) { chk_sum = chk_sum + (buff [ctr] & 0x7f) ; ctr ++ ; } strncpy (tmpstr, &buff [bufflen - 5], 4) ; tmpstr [4] = '\0' ; twos_comp = (int) strtol (tmpstr, (char **) NULL, 16) ; retval = (((chk_sum + twos_comp) & 0xFFFF) == 0) ? 0 : 1 ; return (retval) ; }