summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--httptnt/resourceStreamer.ecpp2
-rw-r--r--plugins/provider/recProvider/recProvider.cpp21
2 files changed, 9 insertions, 14 deletions
diff --git a/httptnt/resourceStreamer.ecpp b/httptnt/resourceStreamer.ecpp
index ecb3eae..9579fe6 100644
--- a/httptnt/resourceStreamer.ecpp
+++ b/httptnt/resourceStreamer.ecpp
@@ -67,8 +67,6 @@ int doRequest(tnt::HttpReply reply, tnt::HttpRequest request, std::string object
if(to <= 0 || to > contentLength) to = contentLength;
length = to - from;
hasRange = true;
-
- cerr << from << " - " << to << "/" << contentLength << endl;
std::stringstream contentRangeHeader;
contentRangeHeader << "bytes " << from << "-" << to << "/" << contentLength;
diff --git a/plugins/provider/recProvider/recProvider.cpp b/plugins/provider/recProvider/recProvider.cpp
index 4e331bf..22fc5eb 100644
--- a/plugins/provider/recProvider/recProvider.cpp
+++ b/plugins/provider/recProvider/recProvider.cpp
@@ -238,20 +238,17 @@ public:
return false;
}
- if(!OpenFile(1)) return false;
- size_t size = 0;
- while(true){
- fseek(fileFD, 0, SEEK_END);
- size = ftell(fileFD);
- if(offset < size){
- return fseek(fileFD, offset, SEEK_SET) == 0;
- } else {
- offset -= size;
- if(OpenNext()) return false;
- }
+ unsigned int i = 0;
+ for(; i < offsets.size(); ++i){
+ if(offset < offsets[i])
+ break;
+ else
+ offset -= offsets[i];
}
+ if(i >= offsets.size()) return false;
+ if(!OpenFile(i+1)) return false;
- return false;
+ return fseek(fileFD, offset, SEEK_SET) == 0;
}