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

List:       helix-server-cvs
Subject:    [Server-cvs] protocol/rtsp crtspbase.cpp, 1.20.2.25.2.12,
From:       jzeng () helixcommunity ! org
Date:       2009-02-23 20:16:59
Message-ID: 200902232021.n1NKLAXk022500 () mailer ! progressive-comp ! com
[Download RAW message or body]

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

Modified Files:
      Tag: SERVER_12_1
	crtspbase.cpp 
Log Message:
Synopsis
========
fix proxy splitting for rtp packets
Branches:  head, server_12_1
Suggested Reviewer: Chytanya, Jamie 

Description
===========

To identify a splitting rtsp connection from a columbia or legacy proxy, we need to add a header in
the OPTIONS request to identify the columbia proxy, since the legacy bcng clients didn't send any
headers to identify its version.

My previous fix was wrong: I identify the accounting connection instead of the splitting connection.

Files Affected
==============

server-restricted/protocol/rtsp-bcng/bcngclient.cpp
server/protocol/rtsp/crtspbase.cpp
server/protocol/rtsp/pub/crtspbase.h


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

Unit Tests:
None.

Integration Tests:
Verify splitting from both columbia and legacy proxies.

Leak Tests:
None.

Performance Tests:
- None

Platforms Tested: linux-rhel5-i686
Build verified: linux-rhel5-i686





Index: crtspbase.cpp
===================================================================
RCS file: /cvsroot/server/protocol/rtsp/crtspbase.cpp,v
retrieving revision 1.20.2.25.2.12
retrieving revision 1.20.2.25.2.13
diff -u -d -r1.20.2.25.2.12 -r1.20.2.25.2.13
--- crtspbase.cpp	20 Feb 2009 00:59:39 -0000	1.20.2.25.2.12
+++ crtspbase.cpp	23 Feb 2009 20:16:56 -0000	1.20.2.25.2.13
@@ -318,7 +318,8 @@
     m_b3gppORhlxAdaptationHandledOnSetup(TRUE),
     m_bOldRTPTS(FALSE),
     m_bRealPlayer(TRUE),
-    m_pViaHeader(NULL)
+    m_pViaHeader(NULL),
+    m_ulBCNGClientVersion(0)
 {
     m_pSessions = new CHXMapStringToOb;
     m_pSessionStatsObjIDs = new CHXMapStringToOb;
@@ -1012,6 +1013,16 @@
         m_clientType = PLAYER_CLIENT;
     }
 
+    if (HXR_OK == pMsg->GetHeader("BCNGVersionNumber", pHdr))
+    {
+        IHXBuffer* pSplitterVersion = 0;
+        pHdr->GetValueAsBuffer(pSplitterVersion);
+
+        m_ulBCNGClientVersion = atoi((char*)pSplitterVersion->GetBuffer());
+        HX_RELEASE(pSplitterVersion);
+        HX_RELEASE(pHdr);
+    }
+
     if (HXR_OK == pMsg->GetHeader("Pragma", pHdr))
     {
         IHXBuffer* pBufVal = NULL;
@@ -8330,7 +8341,7 @@
         if (usType == FINISH_SETUP)
         {
             rc = pInstantiator->SetupTransportBCNGUdpTcpMcast(pSession, pStreamInfo,
-                    spTransParams.Ptr(), usStream, IsPre12dot1Proxy(m_pViaHeader));
+                    spTransParams.Ptr(), usStream, m_ulBCNGClientVersion < 2);
 
             if (SUCCEEDED(rc))
             {


_______________________________________________
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