Added time measurement to HTTP proxy handler, attempt to make buffers less used when system is under load.

This commit is contained in:
Thulinma 2012-09-07 18:22:33 +02:00
parent 49ef28d68e
commit 0c6cba0237
3 changed files with 7 additions and 3 deletions

View file

@ -199,6 +199,7 @@ namespace Connector_HTTP{
H.SetHeader("X-Origin", conn->getHost());//add the UID to the headers before copying H.SetHeader("X-Origin", conn->getHost());//add the UID to the headers before copying
std::string request = H.BuildRequest();//copy the request for later forwarding to the connector std::string request = H.BuildRequest();//copy the request for later forwarding to the connector
std::string orig_url = H.getUrl(); std::string orig_url = H.getUrl();
int starttime = time(0);
H.Clean(); H.Clean();
//check if a connection exists, and if not create one //check if a connection exists, and if not create one
@ -267,6 +268,7 @@ namespace Connector_HTTP{
H.SetHeader("X-UID", uid); H.SetHeader("X-UID", uid);
H.SetHeader("Server", "mistserver/" PACKAGE_VERSION "/" + Util::Config::libver); H.SetHeader("Server", "mistserver/" PACKAGE_VERSION "/" + Util::Config::libver);
conn->Send(H.BuildResponse("200", "OK")); conn->Send(H.BuildResponse("200", "OK"));
conn->flush();
}else{ }else{
//unknown length //unknown length
H.SetHeader("X-UID", uid); H.SetHeader("X-UID", uid);
@ -286,8 +288,8 @@ namespace Connector_HTTP{
//forward any and all incoming data directly without parsing //forward any and all incoming data directly without parsing
conn->Send(myConn->Received()); conn->Send(myConn->Received());
myConn->Received().clear(); myConn->Received().clear();
conn->flush();
} }
conn->spool();
usleep(30000); usleep(30000);
} }
myConn->close(); myConn->close();
@ -295,7 +297,7 @@ namespace Connector_HTTP{
} }
//print some debug info //print some debug info
#if DEBUG >= 4 #if DEBUG >= 4
std::cout << "Finished request: " << orig_url << " => " << connector << " (" << uid << ")" << std::endl; std::cout << "Finished request: " << orig_url << " => " << connector << " (" << uid << ") in " << (time(0) - starttime) << "s" << std::endl;
#endif #endif
} }
} }

View file

@ -42,7 +42,8 @@ namespace Connector_HTTP{
MP4::ASRT asrt; MP4::ASRT asrt;
asrt.SetUpdate(false); asrt.SetUpdate(false);
asrt.AddQualityEntry(""); asrt.AddQualityEntry("");
asrt.AddSegmentRunEntry(1, 199);//1 Segment, 199 Fragments /// \todo Actually use correct number of fragments.
asrt.AddSegmentRunEntry(1, 20000);//1 Segment, 20000 Fragments
asrt.WriteContent(); asrt.WriteContent();
MP4::ABST abst; MP4::ABST abst;

View file

@ -198,6 +198,7 @@ int main(int argc, char** argv){
unsigned int size = htonl(source.getPacket().size()); unsigned int size = htonl(source.getPacket().size());
in_out.Send((char*)&size, 4); in_out.Send((char*)&size, 4);
in_out.Send(source.getPacket()); in_out.Send(source.getPacket());
in_out.flush();
} }
} else { } else {
usleep(std::min(10000LL, lastTime - (now - timeDiff)) * 1000); usleep(std::min(10000LL, lastTime - (now - timeDiff)) * 1000);