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

List:       helix-server-cvs
Subject:    [Server-cvs] protocol/http http_demux.cpp,1.64,1.64.2.1
From:       skharkar () helixcommunity ! org
Date:       2011-12-24 7:30:54
[Download RAW message or body]

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

Modified Files:
      Tag: SERVER_14_3
	http_demux.cpp 
Log Message:
Synopsis
========
Bug 270029: Unable to connect AFML to Helix Server with RTMPT  

Reviewer: Chytanya
 
Branches: HEAD and SERVER_14_3_RN
 
Description
===========
There were two issues
1> HTTP request from encoder was not determined to be rtmpt.
We determine it is a rtmpt request if content-type header contains RTMPT mime \
type(application/x-fcs). AFML encoder is not sending content-type header in it is \
post request.

Fix was to check if content type is not present to check if url is /open/1

2> Some of HTTP conent length exceed max allowd value of 0xFFFF
Fix was to HTTP Demux to call GetFeatureFlags from response object and 
if resonse object sets HTTP_FEATURE_SUPPORTS_LARGE_CONTENT_LENGTH then allow it.

HTTP_FEATURE_SUPPORTS_LARGE_CONTENT_LENGTH will only be allowed if such a large http \
packet is received after  rtmp handshake and connect command.

Files affected
===============
server_rn/protocol/flash/rtmpt/rtmptconn.cpp
server_rn/protocol/flash/rtmpt/rtmptsession.cpp
server_rn/protocol/flash/rtmpt/pub/rtmptconn.h
server_rn/protocol/flash/rtmpt/pub/rtmptsession.h
server_rn/protocol/flash/rtmpserv/pub/rtmpserv.h
server/protocol/http/http_demux.cpp
erver/protocol/http/pub/http_demux.h

Tested
======
Tested with rtmp encoder option with AFML encoder.

QA hints
=========
Test rtmpt with different different bitrate and codecs.

Index: http_demux.cpp
===================================================================
RCS file: /cvsroot/server/protocol/http/http_demux.cpp,v
retrieving revision 1.64
retrieving revision 1.64.2.1
diff -u -d -r1.64 -r1.64.2.1
--- http_demux.cpp	18 Nov 2011 08:59:13 -0000	1.64
+++ http_demux.cpp	24 Dec 2011 07:30:52 -0000	1.64.2.1
@@ -645,7 +645,8 @@
                     CHXString strLen;
                     pHdr->asString(strLen);
                     int iLen = atoi(strLen);
-                    if (iLen < 0 || iLen > 0xffff)
+                    if (iLen < 0 || (iLen > 0xffff && 
+                                     !(m_pResponse->GetFeatureFlags() & \
HTTP_FEATURE_SUPPORTS_LARGE_CONTENT_LENGTH)))  {
                         DPRINTF(D_ERROR, ("HTTP: Bad content length %d\n", iLen));
                         if (pBuf)
@@ -926,7 +927,7 @@
 #endif
 
 #ifdef HELIX_FEATURE_SERVER_RTMPT
-    if (RTMPHttpConnection::IsRTMPTRequest(tag, pContentTypeHdr))
+    if (RTMPHttpConnection::IsRTMPTRequest(tag, pContentTypeHdr, pUrl))
     {
         m_pResponse = new RTMPHttpConnection();
         m_pResponse->AddRef();


_______________________________________________
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