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

List:       helix-server-cvs
Subject:    [Server-cvs] engine/session clientsession.cpp,1.81,1.82
From:       rasher () helixcommunity ! org
Date:       2007-12-28 11:56:22
Message-ID: 200712281156.lBSBub2p003148 () mailer ! progressive-comp ! com
[Download RAW message or body]

Update of /cvsroot/server/engine/session
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv31106

Modified Files:
	clientsession.cpp 
Log Message:
Synopsis
  ==========

  Live Switching : The server returns "404 not found" for consecutive
switch requests.

 Branches           :  HEAD , SERVER_12_RN
 Suggested Reviewer :  Jamie

   Description
   ============
      If a live clip is played then the 2nd switch request onwards fails.
The reason behind this was that when ClientSession::Switch is called it is
passed the new URL from FCSGetHandler but that Url is not stripped off its
"/" at the beginning.When the 1st switch request comes, and Broadcast
SplitAdviseSink's OnURL is called it compares the mount point with that of
the url(i.e. broadcast and /broadcast).It does not match so it turns off
the AllowanceWrappers's Sink.
    When the 2nd switch( and any subsequent requests) come when the
AllowanceSerializer's OnUrl is called which calles the
AllowanceWrapper's OnURL ,it finds the sink is null so it sets the
status to reject playback.
    So we need to strip the url of its '/' at the beginning

  Fix
 ==========
  In ClientSession::Switch getting past the '/' in the URL.

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

   server\engine\session\clientsession.cpp

   Testing Performed
  =================
Functional-Testing:
    Checked that when a live clip plays any subsequent requests are also
played and not rejected.

 Leak-Tests:
    no leaks related to this change.

Build verified  :win32-i386-vc7
Platforms tested: win32-i386-vc7


 Thanks
 Raj  Asher




Index: clientsession.cpp
===================================================================
RCS file: /cvsroot/server/engine/session/clientsession.cpp,v
retrieving revision 1.81
retrieving revision 1.82
diff -u -d -r1.81 -r1.82
--- clientsession.cpp	28 Dec 2007 10:02:41 -0000	1.81
+++ clientsession.cpp	28 Dec 2007 11:56:19 -0000	1.82
@@ -5248,6 +5248,11 @@
     ServerRequest* pSwitchRequest = NULL;
     CSwitchElement* pSwitchElement = NULL;
 
+    while (pNewURL && *pNewURL && *pNewURL == '/')
+    {
+        pNewURL++;
+    }
+
     pSwitchRequest = CloneRequest(pNewURL);
 
     if(pSwitchRequest == NULL)


_______________________________________________
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