Added support for underscores in streamname to HTTP/RTMP connectors.

This commit is contained in:
Thulinma 2011-10-31 19:55:43 +01:00
parent 0f905b612e
commit b318e41e96
2 changed files with 6 additions and 7 deletions

View file

@ -215,7 +215,7 @@ namespace Connector_HTTP{
}
streamname = "/tmp/shared_socket_";
for (std::string::iterator i=Movie.end()-1; i>=Movie.begin(); --i){
if (!isalpha(*i) && !isdigit(*i)){
if (!isalpha(*i) && !isdigit(*i) && *i != '_'){
Movie.erase(i);
}else{
*i=tolower(*i);
@ -228,11 +228,10 @@ namespace Connector_HTTP{
//in het geval progressive nemen we aan dat de URL de streamname is, met .flv erachter
streamname = HTTP_R.url.substr(0, HTTP_R.url.size()-4);//strip de .flv
for (std::string::iterator i=streamname.end()-1; i>=streamname.begin(); --i){
if (!isalpha(*i) && !isdigit(*i)){streamname.erase(i);}else{*i=tolower(*i);}//strip nonalphanumeric
if (!isalpha(*i) && !isdigit(*i) && *i != '_'){streamname.erase(i);}else{*i=tolower(*i);}//strip nonalphanumeric
}
streamname = "/tmp/shared_socket_" + streamname;//dit is dan onze shared_socket
//normaal zouden we ook een position uitlezen uit de URL, maar bij LIVE streams is dat zinloos
printf("Streamname: %s\n", streamname.c_str());
ready4data = true;
}//PROGRESSIVE handler
HTTP_R.CleanForNext(); //maak schoon na verwerken voor eventuele volgende requests...

View file

@ -355,7 +355,7 @@ void Connector_RTMP::parseChunk(){
streamname = amfdata.getContentP(3)->StrValue();
for (std::string::iterator i=streamname.begin(); i != streamname.end(); ++i){
if (*i == '?'){streamname.erase(i, streamname.end()); break;}
if (!isalpha(*i) && !isdigit(*i)){
if (!isalpha(*i) && !isdigit(*i) && *i != '_'){
streamname.erase(i);
--i;
}else{
@ -423,7 +423,7 @@ void Connector_RTMP::parseChunk(){
//send streambegin
streamname = amfdata.getContentP(3)->StrValue();
for (std::string::iterator i=streamname.end()-1; i>=streamname.begin(); --i){
if (!isalpha(*i) && !isdigit(*i)){streamname.erase(i);}else{*i=tolower(*i);}
if (!isalpha(*i) && !isdigit(*i) && *i != '_'){streamname.erase(i);}else{*i=tolower(*i);}
}
streamname = "/tmp/shared_socket_" + streamname;
Socket.write(RTMPStream::SendUSR(0, 1));//send UCM StreamBegin (0), stream 1
@ -575,7 +575,7 @@ void Connector_RTMP::parseChunk(){
streamname = amfdata.getContentP(3)->StrValue();
for (std::string::iterator i=streamname.begin(); i != streamname.end(); ++i){
if (*i == '?'){streamname.erase(i, streamname.end()); break;}
if (!isalpha(*i) && !isdigit(*i)){
if (!isalpha(*i) && !isdigit(*i) && *i != '_'){
streamname.erase(i);
--i;
}else{
@ -643,7 +643,7 @@ void Connector_RTMP::parseChunk(){
//send streambegin
streamname = amfdata.getContentP(3)->StrValue();
for (std::string::iterator i=streamname.end()-1; i>=streamname.begin(); --i){
if (!isalpha(*i) && !isdigit(*i)){streamname.erase(i);}else{*i=tolower(*i);}
if (!isalpha(*i) && !isdigit(*i) && *i != '_'){streamname.erase(i);}else{*i=tolower(*i);}
}
streamname = "/tmp/shared_socket_" + streamname;
Socket.write(RTMPStream::SendUSR(0, 1));//send UCM StreamBegin (0), stream 1