diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2011-03-09 23:07:27 +0900 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2011-03-09 23:07:27 +0900 |
| commit | 7338a2503547ae1310d018d0fc2903fb85b309ea (patch) | |
| tree | c7111eb641f6bf1b661c03270a8f4407d2fada21 /src/XmlRpcMethodImpl.cc | |
| parent | d541b350d21cd7747479f21b7c4b6d363248a450 (diff) | |
Added initial JSON-RPC support.
JSON-RPC is enabled using --enable-xml-rpc. We are implementing
JSON-RPC based on JSON-RPC 2.0 draft spec.
Diffstat (limited to 'src/XmlRpcMethodImpl.cc')
| -rw-r--r-- | src/XmlRpcMethodImpl.cc | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/XmlRpcMethodImpl.cc b/src/XmlRpcMethodImpl.cc index 4e2a9007..1b9edb74 100644 --- a/src/XmlRpcMethodImpl.cc +++ b/src/XmlRpcMethodImpl.cc @@ -63,6 +63,7 @@ #include "SegmentMan.h" #include "TimedHaltCommand.h" #include "PeerStat.h" +#include "Base64.h" #ifdef ENABLE_BITTORRENT # include "bittorrent_helper.h" # include "BtRegistry.h" @@ -266,7 +267,11 @@ SharedHandle<ValueBase> AddTorrentXmlRpcMethod::process if(!torrentParam) { throw DL_ABORT_EX("Torrent data is not provided."); } - + SharedHandle<String> tempTorrentParam; + if(getJsonRpc()) { + tempTorrentParam = String::g(Base64::decode(torrentParam->s())); + torrentParam = tempTorrentParam.get(); + } std::vector<std::string> uris; extractUris(std::back_inserter(uris), req.getListParam(1)); @@ -309,7 +314,11 @@ SharedHandle<ValueBase> AddMetalinkXmlRpcMethod::process if(!metalinkParam) { throw DL_ABORT_EX("Metalink data is not provided."); } - + SharedHandle<String> tempMetalinkParam; + if(getJsonRpc()) { + tempMetalinkParam = String::g(Base64::decode(metalinkParam->s())); + metalinkParam = tempMetalinkParam.get(); + } SharedHandle<Option> requestOption(new Option(*e->getOption())); gatherRequestOption(requestOption, req.getDictParam(1)); |
