LP#1070466: Pack, then unpack total in debug_split_print.
authorJason Stephenson <jstephenson@mvlc.org>
Tue, 23 Oct 2012 17:23:14 +0000 (13:23 -0400)
committerGalen Charlton <gmc@esilibrary.com>
Tue, 8 Jul 2014 15:47:13 +0000 (08:47 -0700)
The checksum needs to be a 16bit value, so we pack, then unpack the
checksum total in debug_split_print to guarantee that.  Some longer
messages have generated 32-bit checksums.

Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Sip/Checksum.pm

index 389a0f8..71dd59b 100644 (file)
@@ -59,7 +59,8 @@ sub debug_split_print {
         printf STDERR "= %4d\n\n", $subtotal;
     }
     printf STDERR "%56d\n", $total;
-    return $total;
+    # Pack, then upack to make sure we have 16-bit value.
+    return unpack("S", pack("S", $total));
 }