From 36e794e32a8f8dcd1164cafc11e6a799fbad212d Mon Sep 17 00:00:00 2001 From: Marcel de Rooy Date: Wed, 13 Jul 2016 11:59:28 +0200 Subject: [PATCH] Bug 15006: [QA Follow-up] Only handle login requests in raw_transport Content-Type: text/plain; charset=utf-8 Although mainly hypothetical, it would still be possible to get response from the server for an acs resend request. (This exception is allowed in MsgType::handle.) I also noticed that the response may well be a message from an older session still. This patch just removes that exception by only passing login requests to sub handle in the raw_transport loop. Test plan: [1] Verify normal login procedure for raw. [2] Check a few acs resend requests in raw. They should terminate without a response. Signed-off-by: Marcel de Rooy --- C4/SIP/SIPServer.pm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/C4/SIP/SIPServer.pm b/C4/SIP/SIPServer.pm index 814e0ff..5e1e3a6 100755 --- a/C4/SIP/SIPServer.pm +++ b/C4/SIP/SIPServer.pm @@ -146,7 +146,9 @@ sub raw_transport { return; } $input =~ s/[\r\n]+$//sm; # Strip off trailing line terminator(s) - last if C4::SIP::Sip::MsgType::handle($input, $self, LOGIN); + my $reg = qr/^${\(LOGIN)}/; + last if $input !~ $reg || + C4::SIP::Sip::MsgType::handle($input, $self, LOGIN); } alarm 0; -- 1.7.10.4