Commit Graph

350 Commits

Author SHA1 Message Date
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 407d570de3 * Cleaned up the destruction of Handshake objects, and fixed a use of
a free'ed rak::socket_address.

* Updated rtorrent.1.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@817 e378c898-3ddf-0310-93e7-cc216c733640
2006-12-07 08:04:52 +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 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 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 8f311cda47 * Bumping version to 0.10.3/0.6.3.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@783 e378c898-3ddf-0310-93e7-cc216c733640
2006-10-05 12:17:10 +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 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 b90a220e15 * Check if individual files are symlinks.
* Use the list of indirect links in EntryList when checking for
available free diskspace.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@773 e378c898-3ddf-0310-93e7-cc216c733640
2006-09-07 14:35:43 +00:00
rakshasa 66dd9a3304 * Use random, not rand, in rak::generate_random as the latter wasn't
being seeded.

* Added a flag to PeerInfo for those that are in handshake, which is
used by PeerList::connect_keep_handshake flag to decide if that
address is to be re-added to the available list when there is already
a connection in progress. This ensures that multiple ports on the same
address don't end up discarded prematurely.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@770 e378c898-3ddf-0310-93e7-cc216c733640
2006-09-01 16:33:21 +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