Commit Graph

277 Commits

Author SHA1 Message Date
rakshasa 310589c4bf * Unlink the tied file when a torrent is erased.
* Remove torrents that are already tied from the expanded paths.

* Move the loop counter to Control.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@618 e378c898-3ddf-0310-93e7-cc216c733640
2006-01-09 18:54:57 +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 3989ae8975 * Disabled setting of uninterested when no more chunks can be
requested, this needs to be fixed.

* Minor adjustments to the usage of rak::priority_queue_insert.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@611 e378c898-3ddf-0310-93e7-cc216c733640
2005-12-19 20:58:13 +00:00
rakshasa ca5b5e05ec * Removed ticks for downloads, use the global tick instead.
* Fixed rak::priority_queue.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@608 e378c898-3ddf-0310-93e7-cc216c733640
2005-12-15 22:56:03 +00:00
rakshasa 7cc377b550 * Cleaned up rak::priority_queue.
* Added download time left display, need to tweak it.

* Removed libtorrent/src/download/download_setup.cc.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@607 e378c898-3ddf-0310-93e7-cc216c733640
2005-12-09 05:22:36 +00:00
rakshasa 12ef47da3c * Replaced TaskScheduler with rak::priority_queue.
* Fixed an exception caused by initial hash check not properly
cleaning up HashQueue when canceling.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@606 e378c898-3ddf-0310-93e7-cc216c733640
2005-12-08 21:19:53 +00:00
rakshasa ba7d61b532 * Fixed a buffer overflow when writting to the output buffer. This
would in some rare occasions cause memory to be corrupted. leading to
a crash.

* Added option for setting the http proxy and proccess's umask.

* Save the total uploaded for downloads between sessions.

* Moved from sigc++ to my own lightweight slot class for the task
scheduler. This saves some 5-600kb when compiled with debugging
symbols, 1-200kb without.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@605 e378c898-3ddf-0310-93e7-cc216c733640
2005-12-05 07:59:29 +00:00
rakshasa 32a3619cd8 * Moved Timer to rak/timer.h.
* Added position affinity to ChunkSelector, still needs more work to
make it move forward without needing to finish all pieces.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@604 e378c898-3ddf-0310-93e7-cc216c733640
2005-12-04 21:08:17 +00:00
rakshasa 98a8fc8638 * Improved error handling for settings. LibTorrent now consistently
throws torrent::input_error and rtorrent catches those and prints good
error messages.

* torrent::set_{bind,local}_address now accepts dns addresses.

* Fixed bug that caused multiple instances of the setting
up/download_rate to change the relative rate, rather than constant.

* Minor change to the way PCB decides to not request more pieces.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@601 e378c898-3ddf-0310-93e7-cc216c733640
2005-11-24 17:21:32 +00:00
rakshasa 93c6369b69 * Added the ability to set the timeout in torrent::Http. Torrent
downloads now have longer timeout than tracker requests.

* Bound the '*' key in tracker list to disable a tracker.

* Added PollKQueue placeholder, implementation will come later.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@598 e378c898-3ddf-0310-93e7-cc216c733640
2005-11-21 19:19:43 +00:00
rakshasa a97408328a * Cleanup of the API, got rid of "get_" prefix for alot of the calls.
* Tweaked the http get timeout, now it has a 60 second connect timeout
and a 360 second download timeout.

* Moved libtorrent/src/parse/download_constructor to src/download.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@595 e378c898-3ddf-0310-93e7-cc216c733640
2005-11-12 15:31:12 +00:00
rakshasa 89e69adb7a * Added interface for changing download priority.
* More throttle fiddling.

* Pop the currently uploaded piece from the send list.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@591 e378c898-3ddf-0310-93e7-cc216c733640
2005-11-01 19:42:07 +00:00
rakshasa ce411252ac * More work on the new throttle code.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@589 e378c898-3ddf-0310-93e7-cc216c733640
2005-10-29 22:54:08 +00:00
rakshasa 5137aade10 * New throttle implementation, works to a certain degree but still
needs some work.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@588 e378c898-3ddf-0310-93e7-cc216c733640
2005-10-29 00:55:21 +00:00
rakshasa dc2b1aa5d8 * Making a DownloadConstructor to replace src/parse/* stuff.
* Enabled throttle dependent global upload limit and added some stats
display to the client.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@584 e378c898-3ddf-0310-93e7-cc216c733640
2005-10-22 19:36:38 +00:00
rakshasa 881f515d03 * Scheduled tasks, like hash checking, didn't get called when
downloading with curl on epoll unless sockets triggered events.

* Checking whetever we're interested in a peer's pieces wasn't
finished, doh.

* Don't use shorter timeout for "stopped" tracker request, the client
now makes sure it shuts down within 5 seconds.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@577 e378c898-3ddf-0310-93e7-cc216c733640
2005-10-07 20:01:38 +00:00
rakshasa 65573ec1ee * Converted some internal sigc++ calls to lightweight function
wrappers.

* Some client code cleanup.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@576 e378c898-3ddf-0310-93e7-cc216c733640
2005-10-04 11:06:06 +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 7f2b66d601 * Add includes of headers for select.
* Make initialization and cleanup of display::Canvast safer.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@533 e378c898-3ddf-0310-93e7-cc216c733640
2005-08-17 16:58:07 +00:00
rakshasa 52214aa992 * Properly close tracker requests when closing a download.
* When sending stopped state to a tracker, use 5 second timeout.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@525 e378c898-3ddf-0310-93e7-cc216c733640
2005-08-13 20:15:42 +00:00
rakshasa 65d940484a * Adding TrackerManager class that implements a simpler interface for
tracker control. It will support different modes like f.ex trying to
request more peers from the trackers.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@519 e378c898-3ddf-0310-93e7-cc216c733640
2005-08-08 15:59:12 +00:00
rakshasa 287dfbf334 * Fixed an un-initialized pointer bug in ui::ElementStringList.
* Properly hide epoll stuff inside an USE_EPOLL if/else macro.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@518 e378c898-3ddf-0310-93e7-cc216c733640
2005-08-07 17:57:58 +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 3df7567ddf * Rewrote 'select' based polling in the client and finished the
'epoll' code. The client selects whichever is available on the current
platform.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@510 e378c898-3ddf-0310-93e7-cc216c733640
2005-07-27 18:39:57 +00:00
rakshasa 10ff3141d9 * Added posix_fallocate to File::reserve, though it is disabled by
default.

* Added some checks to the keyboard input code in the client, perhaps
it'll fix the bug some OpenBSD people are encountering.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@501 e378c898-3ddf-0310-93e7-cc216c733640
2005-07-19 14:00:20 +00:00
rakshasa 81c36a7d96 * Using SocketAddress instead of std::string/uint16_t for peer
addresses.

* Tracker key is now an uint32_t instead of std::string.

* Added client address to UDP tracker requests.

* Added a check for FD_SETSIZE and _SC_OPEN_MAX in the client. A
warning is issued if max open files and sockets exceed either of these.

* Cleaned up the API, propably quite close to what will be in the
slush'ed API.

* Swapped emit and close order in TrackerHttp.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@499 e378c898-3ddf-0310-93e7-cc216c733640
2005-07-18 17:22:17 +00:00
rakshasa 8ca61a79ac * Saves file priorities along with fast-resume data.
* Cleaned up the shutdown code, moved some unnessesary stuff out of
the main loop.

* Made a TrackerBase and an empty TrackerUdp class. The proper
Tracker* class is selected based on the url.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@492 e378c898-3ddf-0310-93e7-cc216c733640
2005-07-09 18:28:57 +00:00
rakshasa 26a7907f0a * Cleaned up torrent::Rate and moved it to the API. Changed various
parts of the API to return torrent::Rate instead of specific functions
for each stat.

* Use 600 second time span for peer rates.

* Added core::DownloadFactory which allows for an async http get and
changing of settings. This will allow the implementation of a
configuration screen when pressing "return", while the client is
downloading or finished downloading a torrent file.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@491 e378c898-3ddf-0310-93e7-cc216c733640
2005-07-09 15:28:56 +00:00
rakshasa 0588e66eaf Added license exception for linking toward OpenSSL.
Disabled Mozilla's NSS SHA1 code and added OpenSSL SHA1, use NSS if
you need Debian-strict GPL compliance. Added note in README.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@484 e378c898-3ddf-0310-93e7-cc216c733640
2005-07-01 22:41:16 +00:00
rakshasa 98ad8e8791 Cleaned up ui::Root, fixed updating and hiding status bar.
Using displayScheduler for updating windows, much more efficient.

Added saving of some parts of the state of torrents.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@482 e378c898-3ddf-0310-93e7-cc216c733640
2005-06-30 16:42:22 +00:00
rakshasa d04adf81ae The client is now responsible for sending completed to tracker, fixes
the problem where doing hash checking of completed torrents would
cause wrong messages to be sent.

Added option to the client for opening a random port in the supplied
port range.

Cleaned up ui::Download and ui::DownloadList handling of throttle keys
and status bar.

Added 60s timeout for handshakes.

Added ignore key function to input::Bindings.

Made the time span of torrent::Rate configurable.

Seperate torrent::Rate object for quick and slow time span in
torrent::ThrottleControl. Also limited the amount the throttle could
over-allocate per tick, not completely fixed.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@480 e378c898-3ddf-0310-93e7-cc216c733640
2005-06-28 20:57:01 +00:00
rakshasa 2c5ce1989a Added setting for session directory.
Added support for quotation in settings.

Added key for changing the priority of all files in a torrent.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@477 e378c898-3ddf-0310-93e7-cc216c733640
2005-06-26 19:51:20 +00:00
rakshasa 28b369dc83 Added man pages.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@475 e378c898-3ddf-0310-93e7-cc216c733640
2005-06-25 21:50:32 +00:00
rakshasa 088398d6d6 Converted to new TaskScheduler.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@474 e378c898-3ddf-0310-93e7-cc216c733640
2005-06-23 19:23:36 +00:00
rakshasa 7e77635353 * Added slot map's for insert/erase, open/close, start/stop and
finished downloads in DownloadList, moved stuff from core::Manager to
the slot maps.

* Added check hash key ^r, though triggering check hash on finished
signals currently borks.

* Made tracker dump into an option.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@470 e378c898-3ddf-0310-93e7-cc216c733640
2005-06-20 19:14:41 +00:00
rakshasa 9a3d75490f Adding tracker group cycle.
Adding creation date display.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@468 e378c898-3ddf-0310-93e7-cc216c733640
2005-06-19 20:44:56 +00:00
rakshasa 693ce38317 Cleaned up the API.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@456 e378c898-3ddf-0310-93e7-cc216c733640
2005-06-07 22:20: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 d96173453d Fixed minor bugs in the resume save and start torrent code.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@434 e378c898-3ddf-0310-93e7-cc216c733640
2005-05-07 00:15:54 +00:00
rakshasa d898b9db01 Adding controls for download throttle.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@426 e378c898-3ddf-0310-93e7-cc216c733640
2005-05-02 01:20:51 +00:00
rakshasa 70a73ea441 Minor bugfixes to find-file interface etc.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@403 e378c898-3ddf-0310-93e7-cc216c733640
2005-04-17 17:54:19 +00:00
rakshasa 874e46fc64 Proper '/' on the end of directories in the find-file window.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@381 e378c898-3ddf-0310-93e7-cc216c733640
2005-04-03 16:36:19 +00:00
rakshasa 2f49249378 Minor fixes to autoconf.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@365 e378c898-3ddf-0310-93e7-cc216c733640
2005-03-19 02:07:43 +00:00
rakshasa 072a38c8fc Find file now shows a directory listing.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@362 e378c898-3ddf-0310-93e7-cc216c733640
2005-03-18 21:20:46 +00:00
rakshasa a16a88ebeb Added changed signal to list_focus and connected it to
WindowDownloadList.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@361 e378c898-3ddf-0310-93e7-cc216c733640
2005-03-18 16:09:49 +00:00
rakshasa 2eb534e423 Made log complete an element.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@360 e378c898-3ddf-0310-93e7-cc216c733640
2005-03-17 23:16:43 +00:00
rakshasa 73fb55ae42 Prefixed ui element classes with Element.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@359 e378c898-3ddf-0310-93e7-cc216c733640
2005-03-17 18:53:15 +00:00
rakshasa cefa2b584d Tab completion functional.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@357 e378c898-3ddf-0310-93e7-cc216c733640
2005-03-17 01:07:54 +00:00
rakshasa 8090d4db26 Cleaned up download ui code.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@356 e378c898-3ddf-0310-93e7-cc216c733640
2005-03-15 20:04:11 +00:00
rakshasa b5f218ffd9 Refactored peer info screen out into its own ui class.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@355 e378c898-3ddf-0310-93e7-cc216c733640
2005-03-15 15:58:45 +00:00