1
0
Fork 0
mirror of https://github.com/transmission/transmission synced 2024-12-27 01:57:52 +00:00
Commit graph

220 commits

Author SHA1 Message Date
Charles Kerr
ebb141b232 better encapsulation of platform-specific constructs: tr_thread_t, tr_cond_t, tr_lock_t 2007-07-30 15:27:52 +00:00
Charles Kerr
e07d0220a9 this looks bug but it's not: just janitorial cleanup, moving #includes from headers into source file 2007-07-29 18:11:21 +00:00
Charles Kerr
530507760b fix r2531 bug reported by Lacrocivious 2007-07-28 16:31:08 +00:00
Charles Kerr
29367fda62 add a temporary debugging statement for Lacrocivious 2007-07-28 15:58:59 +00:00
Charles Kerr
79a0081092 a nice patch that makes the three most CPU-hogging functions (as reported by Shark) essentially free and reduces memory overhead by 8 bytes per piece per torrent. Lots of asserts for extra testing fun. 2007-07-28 15:43:34 +00:00
Charles Kerr
a180698e8a save a little bit of memory per-torrent. 2007-07-27 23:07:26 +00:00
Charles Kerr
8f4fb4efbe speed improvements to tr_torrentStat() by folding two expensive & redundant functions together. 2007-07-27 01:22:49 +00:00
Charles Kerr
3e40e06938 avoid null pointer dereferencing in tr_torrentInit*() as reported by wereHamster 2007-07-25 18:43:21 +00:00
Charles Kerr
e8fb29ea44 fix compiler warnings reported by wereHamster 2007-07-25 17:27:19 +00:00
Charles Kerr
66883e72a9 fix double-free crash on opening a corrupt torrent file. reported by wereHamster 2007-07-25 17:19:29 +00:00
Charles Kerr
95313e077a fix off-by-one in r2488 reported by BentMyWookie. Hooray for assert()! 2007-07-25 02:28:25 +00:00
Charles Kerr
730d6df742 * fix overflow error from earlier today. (this was the crash talked about in IRC)
* fix long-standing error that occurred when pieceSize isn't evenly divisible by blockSize
* speed up and macro-ize piece-to-block conversions
2007-07-25 01:59:46 +00:00
Charles Kerr
339005346c remove unused function tr_cpMostMissingBlockInPiece() 2007-07-24 17:08:45 +00:00
Charles Kerr
e1c18610be remove unused function _tr_blockPosInPiece() 2007-07-24 16:04:43 +00:00
Charles Kerr
dd55805012 much faster rechecking of incomplete torrents. added tr_stat_t.recheckProgress field. 2007-07-24 01:33:59 +00:00
Charles Kerr
c7d97e5f0a get "recheck files" working properly again. 2007-07-24 00:09:23 +00:00
Charles Kerr
eaca893b4c set default torrent ul/dl speed limits from global ul/dl speed. as a side effect, totally decouples fastresume from inout. 2007-07-23 03:00:20 +00:00
Charles Kerr
a9526adbdd put information messages in tr_inf(), not fprintf() 2007-07-21 18:31:08 +00:00
Charles Kerr
50f407933b when closing torrents, don't try to re-stop torrents that are already stopped. 2007-07-21 18:03:24 +00:00
Charles Kerr
1d932b07c7 fix looooong-standing bug that choked tracker connections 2007-07-21 17:35:47 +00:00
Charles Kerr
4ef1592e6b more work on the speed limits as hammered out w/BentMyWookie 2007-07-20 03:24:04 +00:00
Charles Kerr
459b8958cb simplify xml.c and utils.c's dependencies 2007-07-19 11:54:37 +00:00
Charles Kerr
615afaa445 add extra state change checks 2007-07-19 03:48:27 +00:00
Charles Kerr
dbe96a9e82 fold per-torrent ul/dl speed cap settings into libtransmission. synchronize gtk+ client with this change. breaks os x client. 2007-07-18 05:27:45 +00:00
Charles Kerr
d182f5b4b6 test fix tr_getDone() for BentMyWookie 2007-07-17 00:31:38 +00:00
Charles Kerr
9c7a913cdc r2377 cleanup 2007-07-16 23:52:05 +00:00
Charles Kerr
2f173fd4d4 fix overlap bug in file-selection where files adjacent to a "do not download" file could end up missing a few bytes. 2007-07-16 19:57:34 +00:00
Charles Kerr
1d95bcc689 re-randomize peer_id each time we start a torrent. (ticket #257) 2007-07-16 11:19:44 +00:00
Charles Kerr
82fbfb4c47 disambiguate some of the tr_stat_t variables' names 2007-07-16 00:50:43 +00:00
Charles Kerr
7229f6c56b remove more functions made obsolete by tr_torrentFile(). 2007-07-15 20:29:57 +00:00
Charles Kerr
59459feb26 replace tr_torrentGetFileStatus() with tr_torrentFiles() for BMW 2007-07-15 20:05:32 +00:00
Charles Kerr
321b01d430 make tr_torrentStat() const.
malloc, rather than calloc, the buffer in strndup.
2007-07-15 19:12:54 +00:00
Charles Kerr
4a0c4b6fbc make tr_torrentGetFileStatus() more accurate 2007-07-15 18:47:43 +00:00
Charles Kerr
ad6ae58e06 fix the bugs outlined by cluthi81 in ticket #255. 2007-07-15 17:36:56 +00:00
Charles Kerr
73ca83a455 split tr_stat_t's peersTotal into peersTotal and peersConnected 2007-07-15 17:19:07 +00:00
Mitchell Livingston
975e066919 whoops 2007-07-15 15:45:08 +00:00
Mitchell Livingston
1facf22f58 move towards fixing activity display bug 2007-07-15 15:43:31 +00:00
Charles Kerr
a572902dae make tr_stat_t and tr_peer_stat_t more accurately reflect ul/dl rates 2007-07-15 05:18:18 +00:00
Charles Kerr
8bf8cb4c47 if a torrent's status changes due to a manual recheck while a torrent is stopped, update the torrent's seeding/downloading state appropriately. 2007-07-15 04:19:39 +00:00
Charles Kerr
4311b160b5 add tr_torrentGetFileStatus() for BentMyWookie 2007-07-15 03:26:22 +00:00
Josh Elsasser
1ecbe8da65 Change a couple functions to take an in_addr pointer instead of an in_addr.
Forward declare struct in_addr and include the relevant headers in the .c files where it's used.
2007-07-14 16:29:21 +00:00
Charles Kerr
f0d97e1a02 fix bug that gave the wrong peer count when uploading. 2007-07-13 22:22:46 +00:00
Charles Kerr
e6e6d574db second draft of a fix for the tracker communication bug reported by TMT 2007-07-13 01:34:14 +00:00
Charles Kerr
b667ad3037 ... and do the same for tr_torrentGetFileDL() 2007-07-13 01:17:21 +00:00
Charles Kerr
a3eb718162 revise tr_torrentSetFilePriorities() for BMW 2007-07-13 00:27:47 +00:00
Charles Kerr
5e4a49be16 first draft of a fix for the tracker communication bug reported by TMT 2007-07-12 20:48:13 +00:00
Charles Kerr
f86cf5449d fix rate control bug reported by John_Clay 2007-07-10 17:07:18 +00:00
Charles Kerr
adb3d2399b fix dnd-setting bug created while splitting DND and priorities into two separate entities 2007-07-10 03:41:16 +00:00
Charles Kerr
0c39aa6565 minor cleanups of last checkin 2007-07-10 03:23:07 +00:00
Charles Kerr
ed226a32ac splitting dnd and priorities apart, and moving the file storage for those fields into fastresume 2007-07-10 03:12:46 +00:00
Charles Kerr
bcb3cf99ab Revert version back to 079 as per BentMyWookie's suggestion 2007-07-09 23:09:00 +00:00
Charles Kerr
b79beeff66 clean up #includes a bit. 2007-07-09 20:10:42 +00:00
Charles Kerr
18aa394019 when creating a torrent, initialize its cpStatus field before passing it to the torrent's worker thread 2007-07-02 01:29:05 +00:00
Charles Kerr
bfee506ff4 Move the initial fastresume check into the thread that creates the torrent, rather than in the torrent's worker thread 2007-07-01 19:10:14 +00:00
Charles Kerr
4784289921 fix bug that caused libtransmission to think private torrents were public. 2007-06-30 21:29:49 +00:00
Charles Kerr
b6819d6a12 fix r2247 oops 2007-06-30 15:16:08 +00:00
Charles Kerr
3e0cac55fd (1) check a torrent's `fast resume' state as soon as it's added. (2) in gtk, show % done even when torrent is stopped 2007-06-30 13:53:10 +00:00
Charles Kerr
6c6732ed39 make tr_torrentInfo() a const function 2007-06-30 13:36:58 +00:00
Charles Kerr
ec12220404 make decrementing the torrent count the last thing we do when destroying a torrent. 2007-06-30 13:19:57 +00:00
Charles Kerr
2b1cf88ea9 fix crash reported by persept 2007-06-30 12:46:45 +00:00
Charles Kerr
f0950d7390 lots of performance improvements. fun!
* dynamically resize the request queue on a per-peer basis based on its speed
* fix a huge bug that sabotaged the `swift' performance
* on startup, unchoke peers much sooner
* bump MAX_PEERS and PERCENT_PEER_WANTED
* do a better job of estimating speed on torrents less than 30 seconds old.
* getting an unrecognized extension ID, ignore it instead of stopping the torrent.
2007-06-29 05:45:17 +00:00
Charles Kerr
6890359001 Make tr_torrentParseHash() public 2007-06-28 23:35:02 +00:00
Charles Kerr
73ee59a21f * (libT) stopped torrents shouldn't use CPU cycles.
* (gtk) if a torrent is stopped when you exit, keep it stopped when restarting.
2007-06-28 17:43:53 +00:00
Charles Kerr
8aa002b25e * fix memory leak when adding torrents.
* zero out tr_torrentParse()'s tr_info_t before filling it
2007-06-28 01:12:16 +00:00
Charles Kerr
ae40410b4e Fix tr_getComplete() and tr_getDone() bug reported by BentMyWookie 2007-06-28 00:09:59 +00:00
Charles Kerr
995c1cdbb1 fix r2210 oops 2007-06-28 00:04:42 +00:00
Charles Kerr
63fce9cf06 simplify tr_torrentParse() based on BWM's feedback 2007-06-27 23:22:09 +00:00
Charles Kerr
8e401729cd Modified tr_torrentCanAdd() to give the new functionality BMW suggests 2007-06-27 14:54:31 +00:00
Charles Kerr
47a5ff4120 add tr_torrentCanAdd() as per BentMyWookie's request... clear tracker error string when restarting... fix r2202 "completed" announce bug. 2007-06-27 05:14:38 +00:00
Charles Kerr
7e09d157cd Thread safety improvements. Also, stopping/starting/rechecking/etc. torrents no longer blocks the calling thread. Since this a big commit, it will probably create some short-term pain via new bugs. 2007-06-26 18:45:03 +00:00
Charles Kerr
ab85deaf51 add color-coded lines to the gtk debug window -- info is black, debug is grey, errors are red... 2007-06-22 20:59:23 +00:00
Charles Kerr
e161544761 adding experimental implementation of Tamilmani's `Swift' tit-for-tat algorithm for testing. To tweak or disable, change the values around line 50 of libtransmission/peer.c 2007-06-21 14:47:26 +00:00
Mitchell Livingston
a4d5dfa328 avoid ridiculously rate divide-by-0 2007-06-19 00:08:06 +00:00
Charles Kerr
932438eba5 Fix very large file error reported by Gimp_ 2007-06-18 05:05:16 +00:00
Mitchell Livingston
0256f4616d Merge file selection and torrent creation into the main branch.
The new code for these features is under a new license.
2007-06-18 03:40:41 +00:00
Mitchell Livingston
4ada334f57 patches from Charles Kerr to update the Inspector in GTK and fix some memory leaks 2007-06-06 00:30:13 +00:00
Mitchell Livingston
c8ac8e312b make stalled check work for minutes, not seconds 2007-05-28 16:40:56 +00:00
Mitchell Livingston
0f9766145b patch from Charles Kerr: perform file checking one at a time (fixes #124) 2007-05-28 15:23:28 +00:00
Mitchell Livingston
b4d71e2e9a store date of last activity 2007-05-25 19:14:42 +00:00
Mitchell Livingston
07bc103001 this shouldn't have been committed 2007-05-24 16:01:20 +00:00
Mitchell Livingston
13ab13d0d0 fix bug where when a file location was changed the valid download amount would double 2007-05-24 15:57:04 +00:00
Josh Elsasser
81a6d96d6e Remove tr_handle_t argument from tr_torrentClose(). 2007-05-23 04:45:20 +00:00
Mitchell Livingston
3f2861f0c7 determine upload/download rates the old way, which is not the most accurate way at a few points, but should have a positive overall impact 2007-05-16 02:03:18 +00:00
Mitchell Livingston
3af24be44e separate code for determining if there is a download with same name and location 2007-05-11 18:56:59 +00:00
Mitchell Livingston
7e19df5444 only allow one active transfer with the same name in the same location 2007-05-05 14:43:52 +00:00
Mitchell Livingston
305ccf1cd5 add ability to remove torrent cache 2007-04-28 01:34:39 +00:00
Mitchell Livingston
16aad395e2 streamline eta calculation 2007-04-21 13:57:30 +00:00
Mitchell Livingston
83a565b5f1 simplify ratio calculation a little 2007-04-21 13:48:05 +00:00
Mitchell Livingston
d31d79b15b determine ratio by using download amount as the larger of amount downloaded by T and percent times file size 2007-04-21 06:38:37 +00:00
Mitchell Livingston
ea839e8ca9 expand the last commit a bit so that ratio is calculated with the actual downloaded amount if amount downloaded in T is 0. This should eliminate ever showing infinity for ratio. 2007-04-20 23:51:15 +00:00
Mitchell Livingston
dbc1e1619e if seeding without ever downloading with T, calculate ratio by using the file size as amount downloaded 2007-04-20 23:31:49 +00:00
Josh Elsasser
498cbddb2e Add remaining file download to tr_stat_t. 2007-04-04 00:55:53 +00:00
Josh Elsasser
58333068e8 Cache peer client name.
Don't create an 'unknown client' name with nonprintable characters.
2007-04-03 18:22:58 +00:00
Josh Elsasser
7e03349f76 Merge r1634 to trunk. 2007-04-02 20:38:23 +00:00
Josh Elsasser
b8d03e5958 Add API function to disable PEX for a torrent. 2007-03-31 19:19:09 +00:00
Josh Elsasser
66cb8d5835 Move debug message, we don't want to see it 30 times a second. 2007-03-29 01:09:03 +00:00
Josh Elsasser
367426b51b Show peers found and used when adding new peers.
Accept --without-foo in addition to --disable-foo in the configure script.
2007-03-29 00:19:09 +00:00
Josh Elsasser
3394f8d2a4 Revert unintended changes. 2007-03-26 19:21:25 +00:00
Josh Elsasser
d390c4c871 Don't save or load cached peers for private torrents. 2007-03-26 19:19:33 +00:00
Josh Elsasser
09c87aad84 Merge PEX branch, I hope this works. 2007-03-23 08:28:01 +00:00
Josh Elsasser
92637d591e Optionally return the info hash after attempting to load a duplicate torrent. 2007-03-22 18:07:22 +00:00
Josh Elsasser
494ca91fd6 Append a frontend-specific tag to saved torrents.
This prevents one frontend from deleting a saved torrent used by another.
2007-03-13 06:56:50 +00:00
Josh Elsasser
5a62e83689 Don't use sprintf, strcpy, or strcat. 2007-03-12 00:04:11 +00:00
Josh Elsasser
0e79140f26 Don't clobber the private flag during torrent initialization.
Display if the private flag is set in transmissioncli -i
2007-03-06 01:58:14 +00:00
Josh Elsasser
67826df085 Use a tr_tracker_info_t * directly in tr_info_t and tr_tracker_t. 2007-02-27 04:00:38 +00:00
Josh Elsasser
963a4fdc81 Clamp file progress to 0.0-1.0
Clear focus when opening files dialog.
2007-02-23 11:49:18 +00:00
Josh Elsasser
efdc43ebb7 Add function to return the progress of each file in a torrent. 2007-02-23 11:26:48 +00:00
Mitchell Livingston
5d2ae4eb61 simplify options for download limits in inspector with 3 check states: mixed for system defaults, checked for override with limit, and no check for no limit 2007-02-02 17:33:32 +00:00
Mitchell Livingston
370e9ab355 do the same calculation one time per loop 2007-01-31 16:23:07 +00:00
Eric Petit
ddcfa59c96 Always take the global lock when accessing the torrent list (fixes a race condition crash) 2007-01-29 08:24:09 +00:00
Josh Elsasser
263bf6ff0c Check for private flag in main dict too. 2007-01-27 22:37:10 +00:00
Josh Elsasser
adfd4e7ca7 Rework the port handling a bit to allow different bound and advertised ports. 2007-01-27 21:17:10 +00:00
Eric Petit
1634595bb0 Compile before you commit 2007-01-21 07:32:31 +00:00
Eric Petit
09c277257b Mark a peer as uploading if we are unchoked *and* interested 2007-01-21 07:27:57 +00:00
Eric Petit
14aa4e5ab0 Officially give up on making libT reentrant, and simplify our code instead 2007-01-21 07:16:18 +00:00
Eric Petit
e63e4ab38f Reorganizes a few things, don't accept two connections from the same IP 2007-01-21 06:42:05 +00:00
Eric Petit
da84461d9c Don't let tr_torrentStop return until files are closed, so that the UI can trash them safely if requested (fixes #186) 2007-01-19 15:24:20 +00:00
Eric Petit
4a567871bb clean up 2007-01-19 11:19:20 +00:00
Eric Petit
918c083618 Fix warnings 2007-01-19 08:40:06 +00:00
Eric Petit
09c096731c Another split 2007-01-19 08:36:49 +00:00