[prev in list] [next in list] [prev in thread] [next in thread] 

List:       helix-server-cvs
Subject:    [Server-cvs] protocol/cloaked rn1cloak.cpp,1.25,1.26
From:       ckarusala () helixcommunity ! org
Date:       2010-03-23 19:17:02
Message-ID: 201003231916.o2NJGwIX017481 () mailer ! progressive-comp ! com
[Download RAW message or body]

Update of /cvsroot/server/protocol/cloaked
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv6438

Modified Files:
	rn1cloak.cpp 
Log Message:
Synopsis
========
This CR fixes PR 259657: Helixsim isn't correctly playing RTP live 
feeds via cloaking over MDP


Branch : SERVER_14_0_RN, HEAD
Suggested Reviewer : Jamie, Dean


Description:
==========
If the RTCP feedback on the post channel is ending with a 'h' 
(HTTP_POSTDONE), then the post handler is stripping it off and 
forwarding the rest of the message to CRTSPBaseProtocol. But since 
RTSP was expecting this additional byte, it is waiting for the next 
packet and using the first byte from that packet ('$' ) to complete 
the previous request. And when it starts processing the second 
request, it is getting confused because the message is not starting 
with '$' and hence creating a RTSPRequestMessage consumer which is 
returning error RTSP_RES_INVALID causing the connection close.


Since we are not dealing with 'h' (other than stripping it off) after 
detecting it at the end of the message in single post mode, the fix 
is to only look for 'h' when we are in multipost mode.


Files Affected
==============
server/protocol/cloaked/rn1cloak.cpp


Testing Performed
=================


Unit Tests:
- Verified RTP live playback does not randomly stop and continues to 
play (played up to 10 minutes)
- Verified with debug stmtms that we are getting 'h' in the feedback 
but are continuing to stream fine.


Integration Tests:
- None


Leak Tests:
- None.


Performance Tests:
- None


Build verified: sunos-5.10-sparc-server
Platform tested : sunos-5.10-sparc-server


Thanks,
Chytanya



Index: rn1cloak.cpp
===================================================================
RCS file: /cvsroot/server/protocol/cloaked/rn1cloak.cpp,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -d -r1.25 -r1.26
--- rn1cloak.cpp	6 Jun 2009 12:10:28 -0000	1.25
+++ rn1cloak.cpp	23 Mar 2010 19:17:00 -0000	1.26
@@ -716,7 +716,11 @@
                 return 0;
             }
 
-            if (pDecData[iDecLen - 1] == HTTP_POSTDONE)
+
+            // Check for 'h' (HTTP_POSTDONE) only if we are in multipost mode.
+            if (m_pConn &&
+                (m_pConn->GetCloakMode() & CLOAK_MODE_MULTIPOST) &&
+                pDecData[iDecLen - 1] == HTTP_POSTDONE)
             {               
                 if (pDecData[0] == '$' && iDecLen >= 4)
                 {


_______________________________________________
Server-cvs mailing list
Server-cvs@helixcommunity.org
http://lists.helixcommunity.org/mailman/listinfo/server-cvs
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic