* Cleaned up main initialization, SCGI and polling code.
* Fixed a bug that would cause reading of a piece to hang if the incoming data contains only data up to the file boundary, but not the next file's data. The bug did not trigger if the file boundary and piece boundaries were the same.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1101 e378c898-3ddf-0310-93e7-cc216c733640
* Disabled strict ordering check for the bencode decoder added 2 revisions ago, as it might be messing up PEX, etc.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1093 e378c898-3ddf-0310-93e7-cc216c733640
* Added 'd.get_bitfield' command for retrieving the bitfield in hex format. Patch by Thomas Rosner. (PD)
* Fixed include headers for gcc-4.4.0. Patch by 'kloeri'.
* Switched a 'long long' with 'int64_t' in xmlrpc.cc to avoid incompatible types for some systems.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1092 e378c898-3ddf-0310-93e7-cc216c733640
* Fixes a crash when parsing a malformed get_peers (or find_node) response throws an exception and fails to remove the corresponding transaction. Ticket #1622.
* Fix automatic unchoking of new peers exceeding the max upload slots of the download.
* Stops rtorrent from always creating and resizing ALL files, even those set to "off". Files will still be created, but with a size of zero, until a part of them is getting downloaded. This helps with filesystems that don't support sparse files (such as FAT, HFS+, and others).
* Fix inefficient piece distribution due to linear chunk request strategy by randomizing position every few (on average 32) chunks, see ticket #190.
* Fixes lack of return values for user-defined commands (using system.method.insert). When there are multiple commands, returns the result of the last one.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1089 e378c898-3ddf-0310-93e7-cc216c733640
d.set_custom=key,value
d.get_custom=key (returns "" if not set)
d.get_custom_throw=key (returns error if not set)
* With this patch, rtorrent will detect and complain about .torrent files with broken bencode representation (e.g. where the order of dictionary keys is not lexicographic).
* Choose a different poll type using the RTORRENT_POLL env. variable (if it's implemented), probably only useful as RTORRENT_POLL=select.
* Add the commands execute_capture and execute_capture_nothrow that work like their other counterparts but return the OUTPUT (stdout) of the given command.
Note that the output is not modified in any way, in particular a trailing newline is NOT removed. To work around this, have the command write its output without it e.g. using echo -n. Also note that with execute_capture_nothrow there is no way to check if the command failed.
Example usage: d.set_custom4=$execute_capture=handler.sh
* When logging peer communication errors, show IP and peer ID to help debugging.
All patches above by Josef Drexler.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1088 e378c898-3ddf-0310-93e7-cc216c733640
commands.
* Enabled different ratio settings for different groups of
downloads.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1079 e378c898-3ddf-0310-93e7-cc216c733640
it. Also set a 5-minute timeout for (previously unlimited) torrent
transfers and fixes the argument type for curl_easy_setopt values.
* Allows bandwidth throttles to work without floating point support.
* Adds a d.add_peer=host[:port] command to manually add a peer (not
for torrents marked "private"), port is 6881 by default.
* Allows banning the selected peer with "B". No unbanning is possible
yet.
All the above patches were written by Josef Drexler.
* Differentiate between commands that have no target, and those that
take generic targets, when using XMLRPC.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1073 e378c898-3ddf-0310-93e7-cc216c733640
* Fixes a segfault when configure finds execinfo.h.
* Fix compile errors and warnings with g++ 4.3.x.
* Fixes an interoperability issue in the get_peers handling, now it
behaves according to the clarified BEP-0005. Also fixes a minor issue
of not being able to generate error packets.
* Fix a crash in scgi_local or scgi_port when calling freeaddrinfo
with a NULL pointer.
* Only check the filename cache for loading tied torrents (e.g. from
watch dirs) but not manually loaded ones via <enter>/<bs>, to allow
loading those again (ticket #1227).
* Fix display of multi-byte characters with attributes (i.e. utf-8
filenames in the file list), and make the list aware of characters
occupying two screen positions.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1064 e378c898-3ddf-0310-93e7-cc216c733640
* Fixed a couple of memory leaks in xmlrpc.cc. Reported by Novik.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1057 e378c898-3ddf-0310-93e7-cc216c733640
* Removed std:: from snprintf in window_file_list.cc.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1052 e378c898-3ddf-0310-93e7-cc216c733640
triggered when a download is added/removed from the specified view.
* Minor compiler errors fixed.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1045 e378c898-3ddf-0310-93e7-cc216c733640
larger buffer size for handling direct loading of torrents through
xmlrpc.
* Allow file and tracker targets with the compact xmlrpc syntax,
e.g. "<infohash>:f<id>".
* Fixed an alignment bug in the DHT code.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1040 e378c898-3ddf-0310-93e7-cc216c733640
* Cleaned up XMLRPC handling and added support for empty targets so it
will handle print and cat properly.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1039 e378c898-3ddf-0310-93e7-cc216c733640
* Changed more key bindings in ElementDownloadList to commands.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1038 e378c898-3ddf-0310-93e7-cc216c733640
ensure resource usage gets spread out over time.
* Changed element_file_list.cc to use te_command.
* File commands on file list iterators will be called on the File
pointed to.
* Fixed some sigc++ 2.1 compile errors.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@992 e378c898-3ddf-0310-93e7-cc216c733640
* Allow commands to be appended to "{stop,close}_on_ratio".
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@976 e378c898-3ddf-0310-93e7-cc216c733640
newline. Patch by Jussi Judin under Public Domain.
* Added warnings on usage of scgi_port.
* Include a file's completed chunks count in the resume data.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@973 e378c898-3ddf-0310-93e7-cc216c733640
* Moved most of src/ui/download.cc to use commands for TextElements.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@967 e378c898-3ddf-0310-93e7-cc216c733640
* Cleaned up duplicate code in 'xmlrpc.cc'.
* Cleaned up 'parse_commands.h'.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@966 e378c898-3ddf-0310-93e7-cc216c733640
* Added 'load_raw*' commands for loading torrents directly from the
data passed through the first argument.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@964 e378c898-3ddf-0310-93e7-cc216c733640
to 'd.multicall'.
* Cleanup of 'rpc/parse_commands.h'.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@961 e378c898-3ddf-0310-93e7-cc216c733640
* SocketFd::open_local() should use SOCK_STREAM, not SOCK_DGRAM.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@959 e378c898-3ddf-0310-93e7-cc216c733640
* Added framework for commands on peers, but due to deficiencies in
the libtorrent API it won't be enabled yet.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@955 e378c898-3ddf-0310-93e7-cc216c733640
* Added 'call_command' that takes a view as the first parameter and
then a list of commands. It will return a list of lists containing the
results from those commands.
* Fixed the xmlrpc-c-config usage.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@954 e378c898-3ddf-0310-93e7-cc216c733640
* Allow lists as arguments in commands by using '{' and '}'. The list
will be recursed and all '$' will be called, while '~' will only be
expanded when in the first element in the list. E.g "execute =
touch,{~/tmp/,$get_client_version=}"
* Added rak::path_expand that works on char buffers.
* Fixed RequestList::calculate_pipe_size so it doesn't request too
many pieces from fast peers.
* Added 'execute_log' for logging the result of calls to 'execute'.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@952 e378c898-3ddf-0310-93e7-cc216c733640
* Properly catch the exceptions being thrown by the 'in_*' events.
* Expand ~ in ExecFile.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@950 e378c898-3ddf-0310-93e7-cc216c733640
* Added 'get_{client,library}_version' commands.
* Removed support for appending more than one command to 'schedule'.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@949 e378c898-3ddf-0310-93e7-cc216c733640
* The print command was not properly adding the final nul char to the
buffer.
* Added 'get_d_name' command.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@944 e378c898-3ddf-0310-93e7-cc216c733640
* CommandMap::call_command(...) now uses a single function for all
calls using an integer id to figure out the object type.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@942 e378c898-3ddf-0310-93e7-cc216c733640
before it is started.
* The "load_*" commands now allow a list of commands to be appended.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@941 e378c898-3ddf-0310-93e7-cc216c733640
* Fixed a compile error when using xmlrpc-c >= 1.07.
* Added various download commands for getting torrent sizes, peers,
etc.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@940 e378c898-3ddf-0310-93e7-cc216c733640