[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