Commit Graph

880 Commits

Author SHA1 Message Date
rakshasa 2be918261e * Bump to version 0.11.2/0.7.2.
* Allow the user to collapse the directories with the '/' key.

* Cleanup of core::Manager::receive_hashing_changed().


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@841 e378c898-3ddf-0310-93e7-cc216c733640
2007-01-05 13:27:56 +00:00
rakshasa 3b38c4ab9c * Limit the number of simultanious http connections.
* Added max_open_http to the man page.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@840 e378c898-3ddf-0310-93e7-cc216c733640
2007-01-02 17:06:08 +00:00
rakshasa de744ad11d * Converted VariableMap and ViewManager to using const char* as the
key, since they are never changed nor added from outside. This cut the
stripped binary size by 50KB.

* Use a shared have piece queue for each download. Each connection has
a time-stamp for the last have message they sent, which is checked
against the queue. This also avoids the race condition where some
peers would get incomplete views of our bitfield due to lost have
messages during handshake.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@839 e378c898-3ddf-0310-93e7-cc216c733640
2007-01-01 14:57:10 +00:00
rakshasa fe7adfc999 * Cleanup of TextElement.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@838 e378c898-3ddf-0310-93e7-cc216c733640
2007-01-01 06:52:56 +00:00
rakshasa 0854e65775 * Changing priority of a directory changes the priority for all files
within that directory.

* Removed a buggy hack in FileListIterator::operator++().

* Cleaned up display of file sizes.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@835 e378c898-3ddf-0310-93e7-cc216c733640
2006-12-27 15:11:41 +00:00
rakshasa 06dad41ff8 * Cleanup of the file list.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@834 e378c898-3ddf-0310-93e7-cc216c733640
2006-12-26 10:05:44 +00:00
rakshasa eabbf33a76 * Added an info screen to the file list and added more information to
the list.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@833 e378c898-3ddf-0310-93e7-cc216c733640
2006-12-25 18:26:40 +00:00
rakshasa 25702ea4b7 * Finished FileListIterator and basic navigation of the file list.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@832 e378c898-3ddf-0310-93e7-cc216c733640
2006-12-25 13:19:45 +00:00
rakshasa c453565e8f * Added FileListIterator to the API, which allows the client to
iterate through FileList as if it consisted of directories.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@831 e378c898-3ddf-0310-93e7-cc216c733640
2006-12-25 10:54:31 +00:00
rakshasa c65b6aa9ff * Added file_path_iterator that allows the client to iterate through
FileList in a structured manner. Messed up the file list view to test
it.

* Added operator[] and at(...) to torrent::FileList and torrent::Path.

* Fixed Handshake::fill_read_buffer(...) that was throwing due to a
bad error check. Patch by Josef Drexler.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@830 e378c898-3ddf-0310-93e7-cc216c733640
2006-12-22 10:54:39 +00:00
rakshasa aab31e5ea5 * Added path match depth to torrent::File which can be used to quickly
determine the common root directory of two adjecent files.

* Cleaned up RC4 class.

* Fixed --with-openssl so it accepts user-supplied paths.

* Call abort instead of exit when receiving a SIGSEGV or SIGBUS.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@829 e378c898-3ddf-0310-93e7-cc216c733640
2006-12-21 16:27:48 +00:00
rakshasa fbf1a8b8a6 * Fixed a bug caused by gcc-3.3.5 miscompiling the exception thrown in
rtorrent/src/core/download_list.cc:100.

* Disable encryption support when compiling libtorrent with
--without-openssl. Patch by Josef Drexler, public domain as per
earlier agreement.

* Converted torrent::HashQueue from std::list into a std::deque for
better cache locality.

* Fixed a bug that would cause storage errors to trigger an
internal_error being wrongly thrown.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@828 e378c898-3ddf-0310-93e7-cc216c733640
2006-12-18 15:32:31 +00:00
rakshasa cc44fb175d * Cleaned up hash checking, and allow resuming stopped checks.
* Fixed setting of TOS so it doesn't always set it to throughput.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@827 e378c898-3ddf-0310-93e7-cc216c733640
2006-12-18 08:24:01 +00:00
rakshasa d8e5a59b92 * Fixed a bug in download_factory.cc that was setting the chunks done
to 0.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@824 e378c898-3ddf-0310-93e7-cc216c733640
2006-12-13 08:06:16 +00:00
rakshasa 16bb9a87c8 * Cleaned up error.h and HandshakeMessage.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@823 e378c898-3ddf-0310-93e7-cc216c733640
2006-12-12 14:31:39 +00:00
rakshasa fcb8154188 * Cleaned up the exception classes so they require less space. This
reduced the size of the stripped libtorrent by 1/7.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@822 e378c898-3ddf-0310-93e7-cc216c733640
2006-12-11 10:33:09 +00:00
rakshasa 460aac5df0 * Check for duplicate filenames when opening a torrent.
* Removed unnessesary functions from torrent.h.

* Cleanup of Handshake.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@820 e378c898-3ddf-0310-93e7-cc216c733640
2006-12-09 16:51:34 +00:00
rakshasa 59b6ed61ce * Added helper functions for splitting files in FileList.
* Added "split_file_size" and "split_suffix" options.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@815 e378c898-3ddf-0310-93e7-cc216c733640
2006-12-05 09:50:59 +00:00
rakshasa e4db1cacc2 * Removed Content and moved stuff to DownloadWrapper and FileList.
* Using a char buffer instead of std::string in
Handshake::prepare_key_plus_pad().


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@813 e378c898-3ddf-0310-93e7-cc216c733640
2006-12-02 09:16:36 +00:00
rakshasa c992fa60df * Moved some stuff from Content into FileList.
* Resume data was not being used as it was comparing the number of
entries with size_bytes, not size_files.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@812 e378c898-3ddf-0310-93e7-cc216c733640
2006-11-30 15:14:26 +00:00
rakshasa 8b759a5c6e * Moved torrent/file*.{cc,h} to torrent/data/.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@811 e378c898-3ddf-0310-93e7-cc216c733640
2006-11-23 13:54:49 +00:00
rakshasa 281f924556 * Set Content::m_chunkSize before adding files.
* Removed the old FileList and replaced it with the cleaned up
EntryList code. The API now gives a FileList* instead of FileList.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@810 e378c898-3ddf-0310-93e7-cc216c733640
2006-11-22 12:57:38 +00:00
rakshasa e3f59ee9e4 * Replaced the old File with the EntryListNode code, and cleaned it
up. The user now uses File* instead of File.

* Changed apply_low_diskspace to use
torrent::Download::free_diskspace() instead of the old file path hack.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@809 e378c898-3ddf-0310-93e7-cc216c733640
2006-11-21 14:05:36 +00:00
rakshasa 4819162ffa * Remove the PeerInfo header dependency inside torrent/data.
* Cleaned up BlockTransfer.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@807 e378c898-3ddf-0310-93e7-cc216c733640
2006-11-19 08:27:20 +00:00
rakshasa f9916b574f * Added a torrent::ClientInfo object to torrent::PeerInfo.
* Removed the old display::ClientInfo code.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@806 e378c898-3ddf-0310-93e7-cc216c733640
2006-11-17 14:50:45 +00:00
rakshasa a5e7acc61b * Added all the clients to the new ClientList and fixed it so that it
prints the version number.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@805 e378c898-3ddf-0310-93e7-cc216c733640
2006-11-16 18:33:45 +00:00
rakshasa cafd4c6090 * Added new API for client type and version info, which will replace
the code currently in the client.

* Fixed rtorrent.rc to show the right name for the encryption option.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@804 e378c898-3ddf-0310-93e7-cc216c733640
2006-11-15 14:05:34 +00:00
rakshasa 1982429b8c * Moving some API headers torrent/data and torrent/peer.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@803 e378c898-3ddf-0310-93e7-cc216c733640
2006-11-08 14:57:30 +00:00
rakshasa 6935c97e8f * Removed some global operator == for HashString, made them explicit.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@802 e378c898-3ddf-0310-93e7-cc216c733640
2006-11-08 11:33:12 +00:00
rakshasa b5cc7cff44 * Check if a file in the torrent is a directory when calling
EntryList::open.

* Removed preload_min_pipelined option and added preload_type, which
disables preload on 0, uses madvise willneed on 1 and does direct
touching of the pages on 2.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@801 e378c898-3ddf-0310-93e7-cc216c733640
2006-11-05 13:38:50 +00:00
rakshasa 0c393e1cdb * Properly nul-terminate the info hash and client id in the tracker
request.

* Implemented options for read-ahead of
chunks. 'preload_min_pipelined', 'preload_min_size' and
'preload_required_rate' are used to decide when to read-ahead a chunk.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@800 e378c898-3ddf-0310-93e7-cc216c733640
2006-11-04 16:05:28 +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 5dfc986658 * Allow hex values in the 'tos' option.
* Moved more encryption related code to HandshakeEncryption.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@797 e378c898-3ddf-0310-93e7-cc216c733640
2006-10-25 08:24:20 +00:00
rakshasa 2781ce9698 * Added preliminary support for tunneling peer connections through a
http proxy. Doesn't currently support error checking or such. Use the
'connection_proxy' option to enable.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@796 e378c898-3ddf-0310-93e7-cc216c733640
2006-10-22 10:32:49 +00:00
rakshasa a72054d018 * Removed reset from ProtocolBuffer::consume.
* Added Download::skip_rate that tells us how many downloaded bytes
were skipped.

* Append '&' instead of '?' to the tracker url when the url already
has '?'.

* Added 'tracker_numwant' to the man page and moved tracker related
options to a seperate section.

* Removed Handshake::generate_hash and replaced it with sha1_salt
function in utils/sha1.h.

* Changed various encryption keys to use c_str.

* Set the handshake buffer size to the minimum required and moved them
to the end of Handshake.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@795 e378c898-3ddf-0310-93e7-cc216c733640
2006-10-21 15:13:10 +00:00
rakshasa 44a782e962 * Cleanp of the encryption patch, minor changes.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@793 e378c898-3ddf-0310-93e7-cc216c733640
2006-10-18 07:25:06 +00:00
rakshasa dda5d0783d * Bump version to 0.11.0/0.7.0.
* Shortened the encryption option name to just "encryption".

* Added handshake_encryption.* and moved various stuff from Handshake.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@791 e378c898-3ddf-0310-93e7-cc216c733640
2006-10-15 08:40:29 +00:00
rakshasa 1736c8eaf7 * Encrypted (obfuscated) handshake and connection support. Patch by
Josef Drexler, public domain as per earlier agreement.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@790 e378c898-3ddf-0310-93e7-cc216c733640
2006-10-14 16:46:43 +00:00
rakshasa eb7c0b5874 * Made FileManager::close_least_active() work when cachedTime is
before any of the open file's last touched timer.

* Display upload total, not download for both, in the download info
screen.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@787 e378c898-3ddf-0310-93e7-cc216c733640
2006-10-13 12:59:51 +00:00
rakshasa 29ef815d0e * Added "tracker_numwant" option for setting the numwant field sent to
the tracker.

* Added display for the up/down rate total in download info.

* Use completed bytes from Content for download progress reported to
the tracker, rather than download rate total.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@786 e378c898-3ddf-0310-93e7-cc216c733640
2006-10-11 11:46:33 +00:00
rakshasa 3084847508 * Bindings::pressed didn't use a temporary to store the result of "itr
!= end()" test.

* Properly clean up trailing '/' in EntryList::set_root_dir(...) and
fixed EntryList::make_directory so it actually makes them.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@776 e378c898-3ddf-0310-93e7-cc216c733640
2006-09-11 13:50:28 +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 ab3a0fead2 * Bumped version number to 0.10.2/0.5.2.
* Support for qwertz keyboard layout.

* Added support for preloading chunks which will be
uploaded. Currently just loads the whole chunk, so it needs to be
improved or disabled before release.

* Added PeerInfo::transfer_counter which keeps track of the number of
BlockTransfers referring to this object.

* Added PeerList::cull_peers that is called every hour to remove
unnessesary PeerInfo from the list..

* In PollKQueue and PollEPoll check that the event we received is
still wanted.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@768 e378c898-3ddf-0310-93e7-cc216c733640
2006-08-29 21:41:49 +00:00
rakshasa bb0f13144b * Fixed the man page to include the latest modifications.
* Bound ^F and ^B for navigating and swapped ^P and ^N in some windows
to get correct behavior.

* Sanitized and added PeerInfo and PeerList to the API.

* HashTorrent now waits for the last outstanding chunks finish before
allowing a chunk mapping error to bork the hashing.

* Lowered the default hash_interval to 5 msec and hash_max_tries to 5.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@765 e378c898-3ddf-0310-93e7-cc216c733640
2006-08-24 23:55:33 +00:00
rakshasa a3f7be3278 * Rebound ^P for commands to ^X.
* Map page entry about max_memory_usage and note about units.

* Quick hash checking changes borked the logic for handling FS errors,
etc.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@764 e378c898-3ddf-0310-93e7-cc216c733640
2006-08-22 11:10:11 +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 dbfb9f1165 * Fixed leaking of ViewFilters.
* Messed up the patch, now properly sets min/max_peers on incomplete
downloads.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@760 e378c898-3ddf-0310-93e7-cc216c733640
2006-08-16 17:50:24 +00:00
rakshasa 708e89ebad * Fixed memory leaks in Control, ElementMenu and TextElementBranch.
* Check if RLIMIT_AS is present, else use RLIMIT_DATA.

* Don't add one to the timeout in display::Window::mark_dirty() so
that it updates the display immediately upon reorganizing the layout.

* Updated doc/rtorrent.1.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@759 e378c898-3ddf-0310-93e7-cc216c733640
2006-08-15 23:15:47 +00:00
rakshasa ee7016f547 * Show "Hashing:" for torrents that are queued for hashing.
* Allow different min/max peers setting for seeding. Patch by Josef
Drexler.

* Man page entry for "safe_sync" and "max/min_peers_seed".

* The p,o,i,u keys are now bound so they change ElementMenu directly.

* Bound ^P and ^N for moving up/down.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@758 e378c898-3ddf-0310-93e7-cc216c733640
2006-08-15 19:35:43 +00:00
rakshasa 4d988fccb9 * Added TextElementBranch that uses a slot as the conditional.
* Added timeout to WindowText and updated download and peer info.

* Moved default http agent string to rtorrent/configure.ac.

* Periodic syncing of chunks now tries to only sync tightly packed
  ranges of chunks unless timeout_sync has been reached.

* ChunkManager now checks if max memory is set to RLIM_INFINITY, if so
  use 2^32.

* Added safe_sync option that forces MS_SYNC to be used before
  unmapping chunks.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@757 e378c898-3ddf-0310-93e7-cc216c733640
2006-08-13 23:02:13 +00:00