gman has asked for the wisdom of the Perl Monks concerning the following question:

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 < > 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, gman

Replies are listed 'Best First'.
Re: Posible Bug in Net::SIP::Packet
by MidLifeXis (Monsignor) on Oct 22, 2013 at 20:57 UTC

    Net::SIP::Packet provides a link to the bug queue for that module. It looks like there was a fairly 'recent' release of this module, so perhaps the author will be responsive.

    --MidLifeXis

      Bug submitted, thanks for your reply