mirror of https://github.com/aria2/aria2
Added --rpc-allow-origin-all option.
This option adds Access-Control-Allow-Origin header field with value '*' to the RPC response.pull/2/head
parent
4c1c38a33f
commit
384ef111b9
|
@ -165,6 +165,9 @@ void HttpServer::feedResponse(const std::string& status,
|
|||
strappend(header, "Content-Length: ", util::uitos(text.size()), "\r\n",
|
||||
"Expires: ", httpDate, "\r\n",
|
||||
"Cache-Control: no-cache\r\n");
|
||||
if(!allowOrigin_.empty()) {
|
||||
strappend(header, "Access-Control-Allow-Origin: ", allowOrigin_, "\r\n");
|
||||
}
|
||||
if(supportsGZip()) {
|
||||
header += "Content-Encoding: gzip\r\n";
|
||||
}
|
||||
|
|
|
@ -68,6 +68,7 @@ private:
|
|||
std::string password_;
|
||||
bool acceptsPersistentConnection_;
|
||||
bool acceptsGZip_;
|
||||
std::string allowOrigin_;
|
||||
public:
|
||||
HttpServer(const SharedHandle<SocketCore>& socket, DownloadEngine* e);
|
||||
|
||||
|
@ -123,6 +124,11 @@ public:
|
|||
{
|
||||
return socketRecvBuffer_;
|
||||
}
|
||||
|
||||
void setAllowOrigin(const std::string& allowOrigin)
|
||||
{
|
||||
allowOrigin_ = allowOrigin;
|
||||
}
|
||||
};
|
||||
|
||||
} // namespace aria2
|
||||
|
|
|
@ -66,6 +66,9 @@ HttpServerCommand::HttpServerCommand
|
|||
e_->addSocketForReadCheck(socket_, this);
|
||||
httpServer_->setUsernamePassword(e_->getOption()->get(PREF_RPC_USER),
|
||||
e_->getOption()->get(PREF_RPC_PASSWD));
|
||||
if(e_->getOption()->getAsBool(PREF_RPC_ALLOW_ORIGIN_ALL)) {
|
||||
httpServer_->setAllowOrigin("*");
|
||||
}
|
||||
#ifdef HAVE_ZLIB
|
||||
httpServer_->enableGZip();
|
||||
#else // !HAVE_ZLIB
|
||||
|
|
|
@ -595,6 +595,15 @@ OptionHandlers OptionHandlerFactory::createOptionHandlers()
|
|||
op->addTag(TAG_ADVANCED);
|
||||
handlers.push_back(op);
|
||||
}
|
||||
{
|
||||
SharedHandle<OptionHandler> op(new BooleanOptionHandler
|
||||
(PREF_RPC_ALLOW_ORIGIN_ALL,
|
||||
TEXT_RPC_ALLOW_ORIGIN_ALL,
|
||||
A2_V_FALSE,
|
||||
OptionHandler::OPT_ARG));
|
||||
op->addTag(TAG_RPC);
|
||||
handlers.push_back(op);
|
||||
}
|
||||
{
|
||||
SharedHandle<OptionHandler> op(new BooleanOptionHandler
|
||||
(PREF_RPC_LISTEN_ALL,
|
||||
|
|
|
@ -169,6 +169,8 @@ const std::string PREF_RPC_MAX_REQUEST_SIZE("rpc-max-request-size");
|
|||
// value: true | false
|
||||
const std::string PREF_RPC_LISTEN_ALL("rpc-listen-all");
|
||||
// value: true | false
|
||||
const std::string PREF_RPC_ALLOW_ORIGIN_ALL("rpc-allow-origin-all");
|
||||
// value: true | false
|
||||
const std::string PREF_ENABLE_XML_RPC("enable-xml-rpc");
|
||||
// value: 1*digit
|
||||
const std::string PREF_XML_RPC_LISTEN_PORT("xml-rpc-listen-port");
|
||||
|
|
|
@ -172,6 +172,8 @@ extern const std::string PREF_RPC_MAX_REQUEST_SIZE;
|
|||
// value: true | false
|
||||
extern const std::string PREF_RPC_LISTEN_ALL;
|
||||
// value: true | false
|
||||
extern const std::string PREF_RPC_ALLOW_ORIGIN_ALL;
|
||||
// value: true | false
|
||||
extern const std::string PREF_ENABLE_XML_RPC;
|
||||
// value: 1*digit
|
||||
extern const std::string PREF_XML_RPC_LISTEN_PORT;
|
||||
|
|
|
@ -816,3 +816,6 @@
|
|||
#define TEXT_PAUSE \
|
||||
_(" --pause[=true|false] Pause download after added. This option is\n" \
|
||||
" effective only when --enable-rpc=true is given.")
|
||||
#define TEXT_RPC_ALLOW_ORIGIN_ALL \
|
||||
_(" --rpc-allow-origin-all[=true|false] Add Access-Control-Allow-Origin header\n" \
|
||||
" field with value '*' to the RPC response.")
|
||||
|
|
Loading…
Reference in New Issue