strings with diacriticals in them, with an explicit sum of the
ordinal values of the characters in the string, which seems to cope.
-\r
package Sip::Checksum;\r
\r
use Exporter;\r
\r
sub checksum {\r
my $pkt = shift;\r
+ my $cksum;\r
\r
- return (-unpack("%16C*", $pkt)) & 0xFFFF;\r
+ $cksum = 0;\r
+ foreach my $chr (map(ord, split(//, $pkt))) {\r
+ $cksum += $chr;\r
+ }\r
+ $cksum = (-$cksum) & 0xFFFF;\r
+\r
+ return $cksum;\r
}\r
\r
sub verify_cksum {\r
chomp;\r
test($_);\r
}\r
+\r
+1;\r