Hopelijk laatste socket fix

This commit is contained in:
Thulinma 2011-04-18 16:08:55 +02:00
parent 7b811219bd
commit bf0b976999
3 changed files with 7 additions and 8 deletions

View file

@ -160,7 +160,7 @@ namespace Connector_HTTP{
while (conn.connected() && !FLV::Parse_Error){ while (conn.connected() && !FLV::Parse_Error){
//only parse input if available or not yet init'ed //only parse input if available or not yet init'ed
if (HTTP_R.Read(conn)){ if (HTTP_R.Read(conn, ready4data)){
handler = HANDLER_PROGRESSIVE; handler = HANDLER_PROGRESSIVE;
if ((HTTP_R.url.find("Seg") != std::string::npos) && (HTTP_R.url.find("Frag") != std::string::npos)){handler = HANDLER_FLASH;} if ((HTTP_R.url.find("Seg") != std::string::npos) && (HTTP_R.url.find("Frag") != std::string::npos)){handler = HANDLER_FLASH;}
if (HTTP_R.url.find("f4m") != std::string::npos){handler = HANDLER_FLASH;} if (HTTP_R.url.find("f4m") != std::string::npos){handler = HANDLER_FLASH;}
@ -174,7 +174,7 @@ namespace Connector_HTTP{
printf("Sending crossdomain.xml file\n"); printf("Sending crossdomain.xml file\n");
#endif #endif
} }
if(handler == HANDLER_FLASH){ if (handler == HANDLER_FLASH){
if (HTTP_R.url.find("f4m") == std::string::npos){ if (HTTP_R.url.find("f4m") == std::string::npos){
Movie = HTTP_R.url.substr(1); Movie = HTTP_R.url.substr(1);
Movie = Movie.substr(0,Movie.find("/")); Movie = Movie.substr(0,Movie.find("/"));

View file

@ -128,12 +128,11 @@ void HTTP::Parser::SetVar(std::string i, std::string v){
} }
/// Attempt to read a whole HTTP request or response from DDV::Socket sock. /// Attempt to read a whole HTTP request or response from DDV::Socket sock.
/// \param sock The socket to use.
/// \param nonblock When true, will not block even if the socket is blocking.
/// \return True of a whole request or response was read, false otherwise. /// \return True of a whole request or response was read, false otherwise.
bool HTTP::Parser::Read(DDV::Socket & sock){ bool HTTP::Parser::Read(DDV::Socket & sock, bool nonblock){
//returned true als hele http packet gelezen is if (nonblock && (sock.ready() < 1)){return parse();}
int r = 0;
int b = 0;
char buffer[500];
sock.read(HTTPbuffer); sock.read(HTTPbuffer);
return parse(); return parse();
}//HTTPReader::ReadSocket }//HTTPReader::ReadSocket

View file

@ -14,7 +14,7 @@ namespace HTTP{
class Parser{ class Parser{
public: public:
Parser(); Parser();
bool Read(DDV::Socket & sock); bool Read(DDV::Socket & sock, bool nonblock = true);
bool Read(FILE * F); bool Read(FILE * F);
std::string GetHeader(std::string i); std::string GetHeader(std::string i);
std::string GetVar(std::string i); std::string GetVar(std::string i);