summaryrefslogtreecommitdiff
path: root/httptnt/resourceStreamer.ecpp
diff options
context:
space:
mode:
Diffstat (limited to 'httptnt/resourceStreamer.ecpp')
-rw-r--r--httptnt/resourceStreamer.ecpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/httptnt/resourceStreamer.ecpp b/httptnt/resourceStreamer.ecpp
index 5d26a43..d83e0d4 100644
--- a/httptnt/resourceStreamer.ecpp
+++ b/httptnt/resourceStreamer.ecpp
@@ -17,6 +17,9 @@ int resourceID = 0;
using namespace upnp;
</%pre>
+<%request>
+ boost::shared_ptr<cResourceStreamer> streamer;
+</%request>
<#
int doRequest(tnt::HttpReply reply, tnt::HttpRequest request, std::string objectID, int resourceID) {
#>
@@ -28,7 +31,7 @@ int doRequest(tnt::HttpReply reply, tnt::HttpRequest request, std::string object
cMediaServer* server = cMediaServer::GetInstance();
cMediaManager& manager = server->GetManager();
- boost::shared_ptr<cResourceStreamer> streamer(manager.GetResourceStreamer(objectID, resourceID));
+ streamer = boost::shared_ptr<cResourceStreamer>(manager.GetResourceStreamer(objectID, resourceID));
if(!streamer.get()){
reply.out() << "Object ID not found or invalid";
@@ -55,8 +58,8 @@ int doRequest(tnt::HttpReply reply, tnt::HttpRequest request, std::string object
if(rangeRequest.find("bytes=",0) == 0){
unsigned int minus = rangeRequest.find_first_of('-',6);
if(minus != std::string::npos){
- from = atoi(rangeRequest.substr(6, minus - 6).c_str());
- to = atoi(rangeRequest.substr(minus + 1).c_str());
+ from = atol(rangeRequest.substr(6, minus - 6).c_str());
+ to = atol(rangeRequest.substr(minus + 1).c_str());
if(from){
// If range is off the road, reset it to correct values.
if(from <= 0 || from > contentLength) from = 0;