Restore Unicode checksum algorithm
authorDan Scott <dscott@laurentian.ca>
Wed, 15 Jun 2011 19:22:09 +0000 (15:22 -0400)
committerDan Scott <dan@coffeecode.net>
Fri, 17 Jun 2011 20:32:58 +0000 (16:32 -0400)
This checksum algorithm was verified to work with
3M V-series self-check machines running with encoding
Unicode, which is important to sites with large
collections of non-English materials.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Sip/Checksum.pm

index 77b47a7..35abb3a 100644 (file)
@@ -65,8 +65,7 @@ sub debug_split_print {
 
 sub checksum {
     my $pkt   = shift;
-    # my $u   = unpack('%16U*', $pkt);
-    my $u     = unpack('%U*', $pkt);
+    my $u     = unpack('%16C*', $pkt);
     my $check = ($u * -1) & 0xFFFF;
     if ($debug) {
         my $total = debug_split_print($pkt);
@@ -79,7 +78,6 @@ sub checksum {
     }
 
     return $check;
-    # return (-unpack('%16U*', $pkt) & 0xFFFF);
 }
 
 sub verify_cksum {