Commit Graph

50 Commits

Author SHA1 Message Date
Jari Sundell b2c1fe2afb Fixed stray comma in script causing invalid LT_SMP_CACHE_BYTES value to be set. 2011-11-30 19:34:29 +09:00
Jari Sundell a40b2132fb Added autoconf scripts for pthread. 2011-11-28 18:27:24 +09:00
rakshasa 0784d6540f * Switched to using '__builtin_popcount' for counting bits in bitfield.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1292 e378c898-3ddf-0310-93e7-cc216c733640
2011-10-02 15:57:22 +00:00
rakshasa 5debd6f1be * Added better logging facilities.
* Changed tracker retry timers.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1192 e378c898-3ddf-0310-93e7-cc216c733640
2011-03-10 05:46:08 +00:00
rakshasa bc96dbfa2d * Modified the fallocate configure check so it will fail if 'fallocate' can't be found.
* Changed more commands to the new format.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1153 e378c898-3ddf-0310-93e7-cc216c733640
2010-03-24 20:23:48 +00:00
rakshasa ded689d3ff * Fixed the linux fallocate detection script.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1143 e378c898-3ddf-0310-93e7-cc216c733640
2010-03-12 10:29:11 +00:00
rakshasa 31abf85846 * Added support for Linux's fallocate and Darwin's fcntl(...,F_PREALLOCATE,...) to preallocate files by default. The 'system.file_allocate' setting will now only be used to indicate you want posix_fallocate called, which may block while it zeros out the file manually.
* Added 'event.download.hash_failed' and 'event.download.hash_final_failed'.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1130 e378c898-3ddf-0310-93e7-cc216c733640
2010-02-14 01:20:20 +00:00
rakshasa 5a1d0be323 * Use the safe default cacheline settings for all platforms for now.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1116 e378c898-3ddf-0310-93e7-cc216c733640
2009-12-19 21:36:44 +00:00
rakshasa 5470e50ffb * Added autoconf support for cacheline_aligned and SMP_CACHE_BYTES.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1115 e378c898-3ddf-0310-93e7-cc216c733640
2009-12-18 21:56:14 +00:00
rakshasa 667c4c3562 * Created ThreadBase holding poll manager, etc, and added a this_thread global object.
* 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
2009-11-12 09:28:35 +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 9e8b4add9d * Fixed a race condition in the handshake read/write code. Patch by
Josef Drexler.

* Fixed the --with-xmlrpc-c autoconf check so that you can pass an
alternative path to an xmlrpc-c-config script.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1027 e378c898-3ddf-0310-93e7-cc216c733640
2008-01-12 18:39:19 +00:00
rakshasa 78f8b19aa4 * Limited the number of addresses in the outgoing pex list to 200.
* Show private flag in download info.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@988 e378c898-3ddf-0310-93e7-cc216c733640
2007-10-12 14:46:41 +00:00
rakshasa aad01906d3 * Bugfixes to the PEX changes.
* Minor changes to statvfs detection.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@987 e378c898-3ddf-0310-93e7-cc216c733640
2007-10-09 16:03:30 +00:00
rakshasa 11976871ac * Dynamically sized SCGI read buffer.
* 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
2007-08-15 21:38:44 +00:00
rakshasa 788b496241 * Fix the use of strlcpy.
* 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
2007-08-12 13:41:50 +00:00
rakshasa 8a1220fd5b * Cleanup of old Variable stuff.
* Fixed a bug that would cause ^O to make an extra call to
"set_directory" for the log, instead of "get_directory".


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@909 e378c898-3ddf-0310-93e7-cc216c733640
2007-05-31 16:40:34 +00:00
rakshasa c5beb24d6c * Fixed XMLRPC-C header.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@894 e378c898-3ddf-0310-93e7-cc216c733640
2007-04-22 16:11:31 +00:00
rakshasa 4a449bae67 * Added configure options that allow building universal binaries.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@889 e378c898-3ddf-0310-93e7-cc216c733640
2007-04-10 22:36:43 +00:00
rakshasa 6691298fb4 * Added XMLRPC-C support and hooked it up to FastCGI. Calling a test
function is now possible.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@887 e378c898-3ddf-0310-93e7-cc216c733640
2007-04-09 17:28:54 +00:00
rakshasa d6fd8f08dc * Added FastCGI support for RPC. This will be hooked up with XMLRPC-C.
* Experimenting with move semantics for Object.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@886 e378c898-3ddf-0310-93e7-cc216c733640
2007-04-06 22:12:52 +00:00
rakshasa d030c5401e * Cleanup of the auto* scripts, curl and openssl checks are now done
with pkg-config.

* Minor changes to included headers and autoconf scripts required by
Solaris.

* Added const char* to VariableMap::has.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@846 e378c898-3ddf-0310-93e7-cc216c733640
2007-01-16 17:30:13 +00:00
rakshasa 9d465de7e1 * Use HashString for hash and id which contains the 20 byte array
directly, instead of using std::string.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@799 e378c898-3ddf-0310-93e7-cc216c733640
2006-10-31 11:20:31 +00:00
rakshasa c9d8a2406d * Added symbol export attributes to the API and made the rest hidden
by default.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@798 e378c898-3ddf-0310-93e7-cc216c733640
2006-10-27 13:07:36 +00:00
rakshasa 407824c9c8 * Switch the order rak::advance_bidirectional iterates.
* When testing for mincore, cast the address pointer to (char*).

* Failure during syncing causes the download to stop, unless
flag_ignore_error is set.

* Trigger storage error signal for HashTorrent in
DownloadWrapper::receive_initial_hash.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@774 e378c898-3ddf-0310-93e7-cc216c733640
2006-09-10 03:28:09 +00:00
rakshasa af6eb493a9 * Changed RequestList so that it clears m_canceled when a non-canceled
piece is downloaded, and it no longer checks the whole dequeue for
invalid transfers.

* Fixed a bad exception in
PeerConnectionBase::down_chunk_from_buffer(), it is supposed to check
the buffer was used up only when the transfer is unfinished, not when
finished.

* Added --with-address-space to allow the user to change the address
space size. Defaults to 1024 MB on 32 bit, 4096 MB on 64 bit archs.

* Added a parameter to display::Manager::schedule_update that sets the
minimum update interval. Normal updates use 50 msec, adjust_layout
uses 0 msec.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@769 e378c898-3ddf-0310-93e7-cc216c733640
2006-08-31 00:01:12 +00:00
rakshasa 8fe8fbbb31 * Added kqueue support, enable with "--with-kqueue". Currently
keyboard input is disabled due to bugs in MacOSX 10.4.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@763 e378c898-3ddf-0310-93e7-cc216c733640
2006-08-20 22:01:33 +00:00
rakshasa b3fc488e5f * Initial work on a global chunk manager for controlling memory usage,
and checking if enough disk space is available for MS_ASYNC to be safe.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@743 e378c898-3ddf-0310-93e7-cc216c733640
2006-07-19 00:42:23 +00:00
rakshasa beeea9fd3e * Handshake was setting wrong bitfield size.
* Cleanup of Block classes.

* Added brackets to error message from the OpenSSL test.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@713 e378c898-3ddf-0310-93e7-cc216c733640
2006-06-06 21:16:55 +00:00
rakshasa 932296ce52 * Added "close_low_diskspace" option that closes active downloads on
filesystems with less space left than what was passed as the
argument. Patch by Josef Drexler, public domain.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@703 e378c898-3ddf-0310-93e7-cc216c733640
2006-05-25 19:44:13 +00:00
rakshasa 598455a5df * The curl bind address was being set by set_local_address(...), urgh.
* Made IPv6 stuff configurable.

* Improved the view stuff.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@672 e378c898-3ddf-0310-93e7-cc216c733640
2006-04-23 23:17:05 +00:00
rakshasa 2f6b5affd1 * Disconnect incoming connections early if the download is full. Patch
by Josef Drexler, public domain.

* Check if bitfield or have messages has been received before when
getting a bitfield message. This fixes an exception on
PC::using_counter() not begin false.

* Added a switch to disable the use of ncursesw, instead using ncurses.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@669 e378c898-3ddf-0310-93e7-cc216c733640
2006-04-13 21:11:42 +00:00
rakshasa d9d27139d1 * Fixed an overflow in rak::partial_queue, and added some exceptions.
* Changed to configure script so --disable-mincore must be called
explicitly to disable it.

* API and core::Download cleanup.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@660 e378c898-3ddf-0310-93e7-cc216c733640
2006-03-31 23:02:39 +00:00
rakshasa 1e5146121e * Added "-O" flag that takes a single option, allowing ','.
* Added the errno message when a file in a torrent could not be opened.

* Added torrent::Object class which will be replacing torrent::Bencode.

* Ported to Cygwin, patch supplied by Jussi Kivilinna
<jussi.kivilinna@mbnet.fi>.

* Update display before entering the main loop, so it won't seem to be
blocking when loading torrents.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@637 e378c898-3ddf-0310-93e7-cc216c733640
2006-02-16 14:57:41 +00:00
rakshasa 126bb511b8 * Applied patch from Diego 'Flameeyes' Petteno <flameeyes@gentoo.org>
that adds the "unused" attribute to some function parameters and minor
cleanups of configure.ac.

* Added inttypes.h to command_scheduler.h.

* Bumped to version 0.8.5/0.4.5.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@634 e378c898-3ddf-0310-93e7-cc216c733640
2006-02-05 01:43:38 +00:00
rakshasa e8cd37ea3a * Set SO_REUSEADDR for the listening socket.
* Moved several settings to use the new variables and made the parser
better.

* Use "-O2" rather than "-O3".


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@623 e378c898-3ddf-0310-93e7-cc216c733640
2006-01-17 17:23:32 +00:00
rakshasa 4431fd1652 * Fixed a regression that threw an exception for torrents with
empty directories.

* When receiving zero length pieces, remove them from the request list.

* Send the interested state before any requests as some clients,
BitTornado 0.7.14 and uTorrent 0.3.0, disconnect if a request has been
received while uninterested.

* WITH_POSIX_FALLOCATE configure macro should check against "yes", not
"no".

* The new priority queue would cause arg torrents to load before
session torrents in some cases. Fixed to perform the session torrent
tasks before loading arg torrents.

* Allow '*' wildcard in filenames when loading torrents.

* Added load, load_run, stop_tied and remove_tied settings which can
be used to scan a directory for new/removed torrents. These torrents
are tied to the lifetime of the torrent file.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@616 e378c898-3ddf-0310-93e7-cc216c733640
2006-01-03 21:43:01 +00:00
rakshasa eb8fecbc34 * Fixed various compiler warnings.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@585 e378c898-3ddf-0310-93e7-cc216c733640
2005-10-24 10:40:55 +00:00
rakshasa 3bd99aee50 * Fixed some bugs and cleaned up the code.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@550 e378c898-3ddf-0310-93e7-cc216c733640
2005-09-01 17:12:31 +00:00
rakshasa 2a1f3e12cc * Renamed read/write stuff to down/up.
* Adding incomplete PeerConnectionSeed.

* For every new peer connection it would traverse the local bitfield
to check if it was zero'ed, instead of using a cached value. Forgot to
change over when changing it from the BitFieldExt to the normal class.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@547 e378c898-3ddf-0310-93e7-cc216c733640
2005-08-29 18:39:34 +00:00
rakshasa b0ac469262 * Removed PeerConnection::m_taskStall, use the keepalive task instead.
* Fixed typo in USE_ALIGNED check.

* Added checks to Tracker* to make sure m_taskTimeout isn't already
inserted.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@534 e378c898-3ddf-0310-93e7-cc216c733640
2005-08-17 19:20:38 +00:00
rakshasa 8b1afe2485 * Added byte alignment check, if required use a different means of
reading ints from ProtocolBuffer.

* Don't round the task for ThrottleScheduler to the nearest second
since it has a sub-second timeout. Change the other timeouts to first
add cached and timespan, then round to the nearest seconds.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@529 e378c898-3ddf-0310-93e7-cc216c733640
2005-08-16 18:13:43 +00:00
rakshasa 89a090111d * Added support for variable sized fd_set's, this should remove the FD_SETSIZE limit.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@512 e378c898-3ddf-0310-93e7-cc216c733640
2005-08-01 16:20:34 +00:00
rakshasa 00e0da7aa5 * Fixed torrent::PollSelect::perform(...) so it checks if the Event*
is NULL, which happens if another event removes it.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@511 e378c898-3ddf-0310-93e7-cc216c733640
2005-07-28 01:47:35 +00:00
rakshasa 91f4f022a9 * Finished implementing epoll support in the library. The client side
is abit hacky and normal select based polling is temporarily disabled.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@509 e378c898-3ddf-0310-93e7-cc216c733640
2005-07-26 16:38:15 +00:00
rakshasa 424a20b3f5 * Changed the API to support different Poll objects and made
PollSelect available. Started work on PollEPoll.

* Fixed a bug that caused blank characters to be inserted into the
tracker request url.

* Added display of the options field in the peer info view.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@508 e378c898-3ddf-0310-93e7-cc216c733640
2005-07-25 15:28:03 +00:00
rakshasa a2248f584f Cleaned up configure.ac and fixed it to properly handles CXXFLAGS.
Ignore SIGPIPE.

Fixed(?) bug in hash queue code when a queued torrent got
deleted. Also reorganized core::Manager to catch all
torrent::local_error's.

Fixed display bug in display::FileList which hid the last element.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@441 e378c898-3ddf-0310-93e7-cc216c733640
2005-05-26 03:25:55 +00:00
rakshasa 45404b7473 Added configure check for execinfo.h.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@259 e378c898-3ddf-0310-93e7-cc216c733640
2005-02-06 20:41:19 +00:00
rakshasa b17dc37a3b rtorrent: Moving towards working torrents.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@246 e378c898-3ddf-0310-93e7-cc216c733640
2005-01-29 22:42:52 +00:00
rakshasa 68788e904c Commiting basic files for rtorrent.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@233 e378c898-3ddf-0310-93e7-cc216c733640
2005-01-25 18:47:10 +00:00