Commit Graph

539 Commits

Author SHA1 Message Date
rakshasa 05d7028f61 * Added support for using posix_fallocate on newly resized files.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1090 e378c898-3ddf-0310-93e7-cc216c733640
2009-05-13 17:25:19 +00:00
rakshasa 3c670a7add * Add support for any number of custom download values identified by string keys.
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
2009-05-13 09:39:00 +00:00
rakshasa 15ae43a5ea * Make 'seeding' view trigger filtering on 'event.download.finished'.
* Fixed a potential buffer overflow in displaying of non-UTF8
filenames.

* Changed torrent::DownloadList::close_directly() so doesn't save the
session if the underlying file/directory has been moved or
removed. This change, in addition to calling 'd.set_directory=' before
'execute=mv,...', as previously shown in the examples, will make
rtorrent behave correctly when 'check_hash=no' is set.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1084 e378c898-3ddf-0310-93e7-cc216c733640
2008-11-18 15:11:49 +00:00
rakshasa 7600a51039 * Fix potential buffer overflows in case snprintf buffer is too
small. Patch by Josef Drexler.

* Added 'view.persistance' command that makes downloads inserted into
that view persist across sessions. Only call on user-created views.

* Added 'ratio.*' commands that call the 'group.seeding.ratio.*'
equivalents.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1080 e378c898-3ddf-0310-93e7-cc216c733640
2008-11-16 07:54:45 +00:00
rakshasa 5648cf7dd0 * Added 'event.download.inserted_{new,session}' that are triggered
when a new or a session torrent is added. Ticket #1516.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1075 e378c898-3ddf-0310-93e7-cc216c733640
2008-10-28 17:59:40 +00:00
rakshasa 29ba4ff4bc * Enforce an http transfer timeout when libcurl fails to honor
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
2008-10-22 13:23:48 +00:00
rakshasa 85f5b7dc46 * Fixed two instances of string includes where <strings.h> was used
instead of <string.h>.

* Fixes {stop,close}_on_ratio calling further commands even when the
"ignore commands" flag is set.

* Work-around for OpenBSD's broken sys/event.h, which fails to compile
if it's the first (or only) included header. (Ticket #1470)

* Fixes compilation with old libcurl versions. (Ticket #1471)

* Fix compile error on systems that lack mincore(2).

* Fixes a crash in epoll due to libcurl/c-ares bug:
PollEPoll::modify(...) epoll_ctl call failed.

All patches by Josef Drexler.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1072 e378c898-3ddf-0310-93e7-cc216c733640
2008-10-07 13:14:59 +00:00
rakshasa db4ba9fe68 * Cleaned up obsolete scheduler framework.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1071 e378c898-3ddf-0310-93e7-cc216c733640
2008-10-04 10:06:47 +00:00
rakshasa 07b9616ef6 * Use user-modifiable commands instead of slots for the 'on_*' events.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1070 e378c898-3ddf-0310-93e7-cc216c733640
2008-10-01 14:19:51 +00:00
rakshasa 6385b995f3 * Cleaned up commands.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1068 e378c898-3ddf-0310-93e7-cc216c733640
2008-09-24 15:26:15 +00:00
rakshasa 879a019757 * Various fixes to the new polling code to handle bad libcurl/cares
behavior. Patch by Josef Drexler.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1067 e378c898-3ddf-0310-93e7-cc216c733640
2008-08-31 20:49:55 +00:00
rakshasa 854d119ff2 * Added missing files.
* Inserted more error-checking in kqueue and fixed some potential bugs.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1066 e378c898-3ddf-0310-93e7-cc216c733640
2008-08-31 19:01:19 +00:00
rakshasa be8b59b00b * Use curl's new polling interface so we don't have to switch to
select() while http transfers are active.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1065 e378c898-3ddf-0310-93e7-cc216c733640
2008-08-27 08:41:08 +00:00
rakshasa c627d6dc0c All patches in this commit were from Josef Drexler.
* 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
2008-08-26 20:42:57 +00:00
rakshasa bfa7523677 * Fix a crash in DHT due to returning a reference to a temporary
variable. Patch by Josef Drexler for ticket #1221.

* Fix an off-by-one error that causes a crash if a DHT node advertises
an ID of "FFFFFFFF...". Patch by Josef Drexler.

* Fix a crash in initial seeding to due a typo not passing the right
flag. Patch by Josef Drexler.

* Fix d.connection_seed being set to "leech" when download wasn't set
to initial_seed. Patch by Josef Drexler for ticket #1376.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1061 e378c898-3ddf-0310-93e7-cc216c733640
2008-07-05 12:01:00 +00:00
rakshasa e3fa31b6df * Initial seeding support added. Patch by Josef Drexler.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1058 e378c898-3ddf-0310-93e7-cc216c733640
2008-05-05 19:16:26 +00:00
rakshasa 41088740bd * Added dummy scheduler commands.
* Add/remove downloads from the 'active' view on resume/pause.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1051 e378c898-3ddf-0310-93e7-cc216c733640
2008-04-11 18:03:27 +00:00
rakshasa aab493caad * Used different ncurses calls in the file list so that UTF8 filenames
should show up properly.

* More cleanup of Views.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1050 e378c898-3ddf-0310-93e7-cc216c733640
2008-04-02 17:11:44 +00:00
rakshasa 03c544d07d * Added some more download commands that replace some of the
start/stop/close wrapper functions in DownloadList.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1049 e378c898-3ddf-0310-93e7-cc216c733640
2008-03-28 16:47:17 +00:00
rakshasa a6045c9ea5 * Made the signal in View trigger using a task, thus avoiding bad
recursions and wrongly orderer commands. This should fix some problems
with hash checking returning errno 0.

* More changes to View usage.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1048 e378c898-3ddf-0310-93e7-cc216c733640
2008-03-27 15:41:11 +00:00
rakshasa e8e5ef337b * Made pause/resume trigger on insertion into the started queue.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1047 e378c898-3ddf-0310-93e7-cc216c733640
2008-03-24 19:30:56 +00:00
rakshasa 8fbaca61b1 * Refactoring to change the DownloadList events to commands.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1046 e378c898-3ddf-0310-93e7-cc216c733640
2008-03-23 12:16:18 +00:00
rakshasa 199bd1985c * Added view_event_{added,removed} commands that sets a command to be
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
2008-03-20 11:50:57 +00:00
rakshasa 7062935724 * Replaced View sort code with commands.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1044 e378c898-3ddf-0310-93e7-cc216c733640
2008-03-18 09:11:59 +00:00
rakshasa d22e1ae30e * Bug fixes to the previous rev's View code.
* Fixed dht alignment issues. Patch by Josef Drexler.

* Removed duplicate code in PeerConnection{Leech,Seed}. Patch by Josef
Drexler.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1043 e378c898-3ddf-0310-93e7-cc216c733640
2008-03-16 15:31:11 +00:00
rakshasa f9ff1cf5ac * Changed view_filter to use boolean commands instead of custom
functors.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1042 e378c898-3ddf-0310-93e7-cc216c733640
2008-03-16 13:55:40 +00:00
rakshasa 8cc7c8430d * Fixed minor bugs in the display of tracker groups. Patch by Josef
Drexler.

* Cleanup of the CommandMap class.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1041 e378c898-3ddf-0310-93e7-cc216c733640
2008-03-13 14:28:17 +00:00
rakshasa afe1312eb6 * Added some missing includes.
* Changed more key bindings in ElementDownloadList to commands.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1038 e378c898-3ddf-0310-93e7-cc216c733640
2008-02-03 14:30:58 +00:00
rakshasa c19af8f389 * Cleanup of the Object api.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1028 e378c898-3ddf-0310-93e7-cc216c733640
2008-01-20 07:48:52 +00:00
rakshasa 87e02737ce * Removed the Object ctor taking an Object::type_type.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1026 e378c898-3ddf-0310-93e7-cc216c733640
2008-01-06 15:41:30 +00:00
rakshasa 7abc459d74 * Keep a cache listing all, including failed, torrent loads and the
mtimes of those files. This is used to ensure that e.g. the watch dir
does not try to load bad/duplicate torrents, in addition to optimizing
the pruning of those already loaded.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1024 e378c898-3ddf-0310-93e7-cc216c733640
2007-12-31 10:12:17 +00:00
rakshasa ce64ea89b1 * Properly use d.set_directory_base when
* Added get_{up,down}_{rate,total}.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1023 e378c898-3ddf-0310-93e7-cc216c733640
2007-12-30 04:43:05 +00:00
rakshasa 7b053b969e * Refactoring utils::Directory.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1022 e378c898-3ddf-0310-93e7-cc216c733640
2007-12-23 19:12:23 +00:00
rakshasa ccb3713a57 * Added "d.set_directory_base" command that handles single and multi
file torrent equally.

* Fixed man page entry on 'umask', it should be 0022 not 0664.

* Cleaned up File and FileList classes.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1021 e378c898-3ddf-0310-93e7-cc216c733640
2007-12-23 08:05:00 +00:00
rakshasa 71ac2cc8e1 * Partial implementation of better detection and handling of deleted
files in a torrent.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1017 e378c898-3ddf-0310-93e7-cc216c733640
2007-12-10 17:17:40 +00:00
rakshasa 6db7ada26c * Allow opening a torrent without creating any files. Still requires
modification of the client to work.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1016 e378c898-3ddf-0310-93e7-cc216c733640
2007-12-02 15:39:58 +00:00
rakshasa 4704c91a8f * Fixed a crash in apply_on_ratio when an iterator got invalidated by
erasing the download currently pointed to.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1015 e378c898-3ddf-0310-93e7-cc216c733640
2007-11-30 14:33:20 +00:00
rakshasa f05dd5b152 * Added support for DHT. Patch by Josef Drexler, public domain as per
prior agreement.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1013 e378c898-3ddf-0310-93e7-cc216c733640
2007-11-28 15:00:13 +00:00
rakshasa 4e3a867257 * Added 'p.multicall' command, though it lacks sorting atm.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1012 e378c898-3ddf-0310-93e7-cc216c733640
2007-11-27 01:56:20 +00:00
rakshasa 66037a7ae2 * Fixed use of old max/min_peers commands.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1011 e378c898-3ddf-0310-93e7-cc216c733640
2007-11-17 06:03:41 +00:00
rakshasa d86505924b * Moved ConnectionList into the API and made rtorrent use it.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1010 e378c898-3ddf-0310-93e7-cc216c733640
2007-11-15 14:26:12 +00:00
rakshasa 3f644aed8f * Properly handle NULL ptr in target_any commands.
* Enable PEX by default.

* Renamed Download::start2/stop2.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1006 e378c898-3ddf-0310-93e7-cc216c733640
2007-11-10 16:34:37 +00:00
rakshasa 04e6575e5d * Replaced the old TrackerList API with the cleaned up
TrackerContainer code.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1005 e378c898-3ddf-0310-93e7-cc216c733640
2007-11-08 16:33:51 +00:00
rakshasa 4a2ae4d339 * New Tracker API.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1002 e378c898-3ddf-0310-93e7-cc216c733640
2007-11-02 10:47:12 +00:00
rakshasa c326c7f43a * Added insert_preserve helper functions to torrent::Object.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1000 e378c898-3ddf-0310-93e7-cc216c733640
2007-11-01 08:32:08 +00:00
rakshasa ff2c25bdeb * Bumped version to 0.7.9/0.11.9.
* Fixed more sigc++ header includes.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@995 e378c898-3ddf-0310-93e7-cc216c733640
2007-10-25 11:00:24 +00:00
rakshasa 61098513c6 * Cycle the order in which downloads are handled during ticks to
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
2007-10-21 04:27:49 +00:00
rakshasa 804eb769a0 * Added "close_on_ratio".
* 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
2007-09-06 22:39:43 +00:00
rakshasa 3b82216a1b * Renamed 't.get_enabled' to 't.is_enabled'.
* The torrent is no longer closed on finished for on_finished
commands, instead d.set_directory causes the download to call
close_directly.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@974 e378c898-3ddf-0310-93e7-cc216c733640
2007-09-05 17:52:16 +00:00
rakshasa 332b4a303f * Added Peer Exchange support, enable with the "peer_exchange"
option. Patch by Josef Drexler, public domain as per earlier
agreement.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@968 e378c898-3ddf-0310-93e7-cc216c733640
2007-08-30 20:35:23 +00:00