encode to UTF8 consistently
authorDan Scott <dscott@laurentian.ca>
Fri, 17 Jun 2011 17:50:26 +0000 (13:50 -0400)
committerDan Scott <dan@coffeecode.net>
Fri, 17 Jun 2011 20:32:58 +0000 (16:32 -0400)
In read_SIP_packet(), we decode the incoming packet as UTF8 and then
encode it again before writing to the log, but not before returning the
message. We were instead encoding the incoming message in a subsequent
call, which is not the recommended Perl practice of decoding input and
encoding output.

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

diff --git a/Sip.pm b/Sip.pm
index 1e57916..42c6e02 100644 (file)
--- a/Sip.pm
+++ b/Sip.pm
@@ -209,7 +209,7 @@ sub read_SIP_packet {
     #  
     # This is now handled by the vigorous cleansing above.
     syslog("LOG_INFO", encode_utf8("INPUT MSG: '$record'")) if $record;
-    return $record;
+    return encode_utf8($record);
 }
 
 #
@@ -227,7 +227,6 @@ sub write_msg {
     my ($self, $msg, $file) = @_;
     my $cksum;
 
-    $msg = encode_utf8($msg);
     if ($error_detection) {
         if (defined($self->{seqno})) {
             $msg .= 'AY' . $self->{seqno};