diff --git a/Connector_HTTP/main.cpp b/Connector_HTTP/main.cpp index 54b25f47..965590fb 100644 --- a/Connector_HTTP/main.cpp +++ b/Connector_HTTP/main.cpp @@ -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... diff --git a/Connector_RTMP/main.cpp b/Connector_RTMP/main.cpp index 38f39e76..d9e8215a 100644 --- a/Connector_RTMP/main.cpp +++ b/Connector_RTMP/main.cpp @@ -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