diff --git a/ChangeLog b/ChangeLog index ffe0cf6b..0cc03d24 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2009-05-13 Tatsuhiro Tsujikawa + + Added addMetalink XML-RPC command. + * src/XmlRpcMethodFactory.cc + * src/XmlRpcMethodImpl.cc + * src/XmlRpcMethodImpl.h + * src/download_helper.cc + * src/download_helper.h + 2009-05-13 Tatsuhiro Tsujikawa Fixed the bug that POU peers are never choked in seeding. diff --git a/src/XmlRpcMethodFactory.cc b/src/XmlRpcMethodFactory.cc index 9995734b..f54c14c3 100644 --- a/src/XmlRpcMethodFactory.cc +++ b/src/XmlRpcMethodFactory.cc @@ -48,6 +48,8 @@ XmlRpcMethodFactory::create(const std::string& methodName) return SharedHandle(new AddUriXmlRpcMethod()); } else if(methodName == "aria2.addTorrent") { return SharedHandle(new AddTorrentXmlRpcMethod()); + } else if(methodName == "aria2.addMetalink") { + return SharedHandle(new AddMetalinkXmlRpcMethod()); } else if(methodName == "aria2.remove") { return SharedHandle(new RemoveXmlRpcMethod()); } else if(methodName == "aria2.tellStatus") { diff --git a/src/XmlRpcMethodImpl.cc b/src/XmlRpcMethodImpl.cc index 3c478efe..5d815ac2 100644 --- a/src/XmlRpcMethodImpl.cc +++ b/src/XmlRpcMethodImpl.cc @@ -140,6 +140,37 @@ BDE AddTorrentXmlRpcMethod::process } } +BDE AddMetalinkXmlRpcMethod::process +(const XmlRpcRequest& req, DownloadEngine* e) +{ + const BDE& params = req._params; + assert(params.isList()); + if(params.empty() || !params[0].isString()) { + throw DlAbortEx("Metalink data is not provided."); + } + + SharedHandle