summaryrefslogtreecommitdiff
path: root/src/HttpResponseCommand.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/HttpResponseCommand.cc')
-rw-r--r--src/HttpResponseCommand.cc98
1 files changed, 48 insertions, 50 deletions
diff --git a/src/HttpResponseCommand.cc b/src/HttpResponseCommand.cc
index a0fa41a9..2971a0dc 100644
--- a/src/HttpResponseCommand.cc
+++ b/src/HttpResponseCommand.cc
@@ -79,13 +79,54 @@
namespace aria2 {
-static SharedHandle<StreamFilter> getTransferEncodingStreamFilter
+namespace {
+SharedHandle<StreamFilter> getTransferEncodingStreamFilter
(const SharedHandle<HttpResponse>& httpResponse,
- const SharedHandle<StreamFilter>& delegate = SharedHandle<StreamFilter>());
+ const SharedHandle<StreamFilter>& delegate = SharedHandle<StreamFilter>())
+{
+ SharedHandle<StreamFilter> filter;
+ if(httpResponse->isTransferEncodingSpecified()) {
+ filter = httpResponse->getTransferEncodingStreamFilter();
+ if(filter.isNull()) {
+ throw DL_ABORT_EX
+ (StringFormat(EX_TRANSFER_ENCODING_NOT_SUPPORTED,
+ httpResponse->getTransferEncoding().c_str()).str());
+ }
+ filter->init();
+ filter->installDelegate(delegate);
+ }
+ if(filter.isNull()) {
+ filter = delegate;
+ }
+ return filter;
+}
+} // namespace
-static SharedHandle<StreamFilter> getContentEncodingStreamFilter
+namespace {
+SharedHandle<StreamFilter> getContentEncodingStreamFilter
(const SharedHandle<HttpResponse>& httpResponse,
- const SharedHandle<StreamFilter>& delegate = SharedHandle<StreamFilter>());
+ const SharedHandle<StreamFilter>& delegate = SharedHandle<StreamFilter>())
+{
+ SharedHandle<StreamFilter> filter;
+ if(httpResponse->isContentEncodingSpecified()) {
+ filter = httpResponse->getContentEncodingStreamFilter();
+ if(filter.isNull()) {
+ LogFactory::getInstance()->info
+ ("Content-Encoding %s is specified, but the current implementation"
+ "doesn't support it. The decoding process is skipped and the"
+ "downloaded content will be still encoded.",
+ httpResponse->getContentEncoding().c_str());
+ } else {
+ filter->init();
+ filter->installDelegate(delegate);
+ }
+ }
+ if(filter.isNull()) {
+ filter = delegate;
+ }
+ return filter;
+}
+} // namespace
HttpResponseCommand::HttpResponseCommand
(cuid_t cuid,
@@ -305,51 +346,6 @@ bool HttpResponseCommand::handleDefaultEncoding
return true;
}
-static SharedHandle<StreamFilter> getTransferEncodingStreamFilter
-(const SharedHandle<HttpResponse>& httpResponse,
- const SharedHandle<StreamFilter>& delegate)
-{
- SharedHandle<StreamFilter> filter;
- if(httpResponse->isTransferEncodingSpecified()) {
- filter = httpResponse->getTransferEncodingStreamFilter();
- if(filter.isNull()) {
- throw DL_ABORT_EX
- (StringFormat(EX_TRANSFER_ENCODING_NOT_SUPPORTED,
- httpResponse->getTransferEncoding().c_str()).str());
- }
- filter->init();
- filter->installDelegate(delegate);
- }
- if(filter.isNull()) {
- filter = delegate;
- }
- return filter;
-}
-
-static SharedHandle<StreamFilter> getContentEncodingStreamFilter
-(const SharedHandle<HttpResponse>& httpResponse,
- const SharedHandle<StreamFilter>& delegate)
-{
- SharedHandle<StreamFilter> filter;
- if(httpResponse->isContentEncodingSpecified()) {
- filter = httpResponse->getContentEncodingStreamFilter();
- if(filter.isNull()) {
- LogFactory::getInstance()->info
- ("Content-Encoding %s is specified, but the current implementation"
- "doesn't support it. The decoding process is skipped and the"
- "downloaded content will be still encoded.",
- httpResponse->getContentEncoding().c_str());
- } else {
- filter->init();
- filter->installDelegate(delegate);
- }
- }
- if(filter.isNull()) {
- filter = delegate;
- }
- return filter;
-}
-
bool HttpResponseCommand::handleOtherEncoding
(const SharedHandle<HttpResponse>& httpResponse) {
// We assume that RequestGroup::getTotalLength() == 0 here
@@ -448,7 +444,8 @@ bool HttpResponseCommand::skipResponseBody
return true;
}
-static bool decideFileAllocation
+namespace {
+bool decideFileAllocation
(const SharedHandle<StreamFilter>& filter)
{
#ifdef HAVE_LIBZ
@@ -463,6 +460,7 @@ static bool decideFileAllocation
#endif // HAVE_LIBZ
return true;
}
+} // namespace
HttpDownloadCommand* HttpResponseCommand::createHttpDownloadCommand
(const SharedHandle<HttpResponse>& httpResponse,