Subject: | Posible Bug in Net::SIP::Packet _hdrkey_parse_comma_seperated |
Date: | Wed, 23 Oct 2013 09:18:35 -0400 |
To: | bug-Net-SIP [...] rt.cpan.org |
From: | Cory Cartwright <ccjaph [...] gmail.com> |
Hello,
I have Sip header that has multiple commas in it. Something like this
From: "1234567890,,,3"<1234567890,,,3@nonet.net>;
I am using Net::SIP::Packet to parse the packet and best I can tell from
the RFC 3261, multiple commas are legal as long as they are quoted or in <
Show quoted text
> brackets.
Here is the relavent code form Packet.pm in _hdrkey_parse_comma_seperated
while (1) {
if ( $v =~m{\G(.*?)([\\",])}gc ) {
if ( $2 eq "\\" ) {
$v[-1].=$1.$2.substr( $v,pos($v),1
);
pos($v)++;
} elsif ( $2 eq '"' ) {
$v[-1].=$1.$2;
$quoted = !$quoted;
} elsif ( $2 eq ',' ) {
# next item if not quoted
( $v[-1].=$1 ) =~s{\s+$}{}; # strip
trailing space
push @v,'' if !$quoted;
$v =~m{\G\s+}gc; # skip space after
','
}
} else {
# add rest to last from @v
$v[-1].= substr($v,pos($v)||0 );
last;
}
I want to either submit a bug, or I will create a local copy to modify for
this potentially ill-legal formatting.
Thanks,
Cory