Call RequestGroupMan::requestQueueCheck() when
max-concurrent-downloads option is changed or new downloads are
added/inserted into reserved list.
* src/RequestGroupMan.cc
* src/XmlRpcMethodImpl.cc
Create CreateRequestCommand to the number of -s/-C when URIs are
added by XML-RPC.
* src/RequestGroup.cc
* src/RequestGroup.h
* src/XmlRpcMethodImpl.cc
Avoid to calculate end() iterator in each loop. std::deque is
particularly slow. Make sure that recalculate end iterator if
element is erased during loop.
Added bittorrent key to the response of tellStatus XML-RPC method.
The associated value of the key is a struct and contains data
retrieved from .torrent file, such as name, announce-list,
comment, etc.
* doc/aria2c.1.txt
* src/XmlRpcMethodImpl.cc
* src/XmlRpcMethodImpl.h
* test/XmlRpcMethodTest.cc
Added dir and files key to the response struct of aria2.tellStatus
XML-RPC method. The value associated with files key is the list
of files. Its element is the same struct used in aria2.getFiles
XML-RPC method. Added uris key to the response struct of
aria2.getFiles XML-RPC method. The value associated with uris key
is the list of URIs. Its element is the same struct used in
aria2.getUris XML-RPC method.
* doc/aria2c.1.txt
* src/XmlRpcMethodImpl.cc
* test/XmlRpcMethodTest.cc
Added aria2.getSessionInfo XML-RPC method. This method returns a
struct containing Session ID, which is generated each time when
aria2 is invoked.
* doc/aria2c.1.txt
* doc/xmlrpc/aria2rpc
* src/DownloadEngine.cc
* src/DownloadEngine.h
* src/XmlRpcMethodFactory.cc
* src/XmlRpcMethodImpl.cc
* src/XmlRpcMethodImpl.h
* test/XmlRpcMethodTest.cc
Now offset argument in aria2.tellWaiting and aria2.tellStopped
accepts a negative integer. 'offset' == -1 points last download
in the waiting queue and 'offset' == -2 points the download before
the last download, and so on. The downloads in the response are in
reversed order.
* doc/aria2c.1.txt
* src/XmlRpcMethodImpl.cc
* src/XmlRpcMethodImpl.h
* test/XmlRpcMethodTest.cc
Defined method name in XmlRpcMethod subclasses.
* src/XmlRpcMethodFactory.cc
* src/XmlRpcMethodImpl.cc
* src/XmlRpcMethodImpl.h
* test/XmlRpcMethodTest.cc
Added tellStopped XML-RPC method. This method returns stopped
download in the specified range. It takes same parameters with
tellWaiting XML-RPC method. offset = 0 means the oldest download.
* src/XmlRpcMethodFactory.cc
* src/XmlRpcMethodImpl.cc
* src/XmlRpcMethodImpl.h
Added changePosition XML-RPC method. It takes 3 parameters: gid,
pos and how. This method changes the position of download denoted
by gid. If how is POS_SET, it moves the download to a position
relative to the beginning of the queue. If how is POS_CUR, it
moves the download to a position relative to the current
position. If how is POS_END, it moves the download to a position
relative to the end of the queue. If the destination position is
less than 0 or beyond the end of the queue, it moves the download
to the beginning or the end of the queue respectively. Returns
the destination position.
* src/RequestGroupMan.cc
* src/RequestGroupMan.h
* src/XmlRpcMethodFactory.cc
* src/XmlRpcMethodImpl.cc
* src/XmlRpcMethodImpl.h
* test/RequestGroupManTest.cc
* test/XmlRpcMethodTest.cc
Added getOption and getGlobalOption XML-RPC method. getOption
takes GID as a parameter and returns its options as struct.
getGlobalOption takes no parameter and returns global
options. Because global option is used as a template for the
option of newly added downloads, it includes options returned by
getOption.
* src/Option.h
* src/XmlRpcMethodFactory.cc
* src/XmlRpcMethodImpl.cc
* src/XmlRpcMethodImpl.h
Added following 2 keys, followedBy and belongsTo, to the response
of tellStatus.
followedBy: List of GIDs which are generated by the consequence of
this download. For example, when aria2 downloaded Metalink file,
it generates downloads described in it(see *--follow-metalink*
option). This value is useful to track these auto generated
downloads. If there is no such downloads, this key will not be
included in the response.
belongsTo: GID of a parent download. Some downloads are a part of
another download. For example, if a file in Metalink has
BitTorrent resource, the download of .torrent is a part of that
file. If this download has no parent, this key will not be
included in the response.
* src/BtPostDownloadHandler.cc
* src/DownloadResult.h
* src/Metalink2RequestGroup.cc
* src/MetalinkPostDownloadHandler.cc
* src/RequestGroup.cc
* src/RequestGroup.h
* src/UTMetadataPostDownloadHandler.cc
* src/XmlRpcMethodImpl.cc
* src/XmlRpcMethodImpl.h
Fixed the bug which causes segmentation fault with tellWaiting
XML-RPC method when BitTorrent download is waiting. The key of
BtRegistry is changed from info hash to GID, because it is
registered per RequestGroup, not info hash.
* src/BtRegistry.cc
* src/BtRegistry.h
* src/BtSetup.cc
* src/ConsoleStatCalc.cc
* src/InitiatorMSEHandshakeCommand.cc
* src/PeerInitiateConnectionCommand.cc
* src/PeerInteractionCommand.cc
* src/PeerInteractionCommand.h
* src/PeerReceiveHandshakeCommand.cc
* src/RequestGroup.cc
* src/XmlRpcMethodImpl.cc
* test/BtRegistryTest.cc
* test/XmlRpcMethodTest.cc
Fixed the bug that the option values changed by XML-RPC
method(changeOption and changeGlobalOption) are overwritten to the
previous value by the next these request which doesn't contain
that option value. Supporse max-download-limit is initially 0. You
changed this value to 100K by changeOption. Then you issue
changeOption request to change max-upload-limit to 50K. This
second request doesn't contain xml-download-limit, so it is back
to initial value, 0. Another improvement is that exception is
thrown when changeOption and changeGlobalOption request contains
option name which doesn't allowed in each request.
* src/DownloadEngine.h
* src/XmlRpcMethod.cc
* src/XmlRpcMethod.h
* src/XmlRpcMethodImpl.cc
* src/download_helper.cc
* src/download_helper.h
* test/XmlRpcMethodTest.cc
Added 'errorCode' to the reponse of tellStatus xml-rpc method.
This key is only available for stopped/completed downloads and its
value is the error code defined in EXIT STATUS in man page.
* src/XmlRpcMethodImpl.cc
Implemented getVersion xml-rpc method. This method returns struct
which has 2 key-value pairs: "version" key is associated to the
version of aria2, such as "1.5.0". "enabledFeatures" key is
associated to the list of enabled features, such as "Async DNS",
"BitTorrent".
* src/FeatureConfig.h
* src/XmlRpcMethodFactory.cc
* src/XmlRpcMethodImpl.cc
* src/XmlRpcMethodImpl.h
* test/XmlRpcMethodTest.cc
Receive the return value as const reference from
DownloadContext::getFileEntries().
* src/DefaultPieceStorage.cc
* src/RequestGroupMan.cc
* src/XmlRpcMethodImpl.cc
Added countSeeder() function which counts seeder in the given
iterator range. Use it in ConsoleStatCalc and XmlRpcMethodImpl.
* src/ConsoleStatCalc.cc
* src/Peer.h
* src/XmlRpcMethodImpl.cc
* test/PeerTest.cc
Added uploadLength and numSeeders to the response of tellStatus
xml-rpc method. Assert that PeerStorage instance is not null
instead of checking if statement. It should be non-null in this
context.
* src/XmlRpcMethodImpl.cc
Removed tellAll XML-RPC command because its reponse tends to be
big if stopped/waiting downloads pile up.
* src/XmlRpcMethodFactory.cc
* src/XmlRpcMethodImpl.cc
* src/XmlRpcMethodImpl.h