Jordan Lee
56e47e96d0
(trunk libT) improve the is_same_file() test in deleteLocalData() to handle nonexistent directories too.
2011-08-20 18:41:45 +00:00
Jordan Lee
a14e72b1f7
(trunk libT) #4377 "Incomplete Folder removed when sub-folder of Default Location" -- fix r12665-r12667 regression reported by KyleK in comment:31
2011-08-16 22:42:43 +00:00
Jordan Lee
ecb2054493
(trunk libT) #4377 "Incomplete Folder removed when sub-folder of Default Location" -- another revision to r12665
2011-08-12 01:56:35 +00:00
Jordan Lee
6d36b3d763
(trunk libT) #4377 "Incomplete Folder removed when sub-folder of Default Location" -- minor revision to r12665 to fix a minor memory leak with the 'subpath' string.
2011-08-11 21:02:15 +00:00
Jordan Lee
d9541de52d
(trunk libT) #4377 "Incomplete Folder removed when sub-folder of Default Location" -- possible fix.
2011-08-11 14:16:29 +00:00
Jordan Lee
313bd9e211
Add a mechanism for enabling/disabling the stalled minutes feature. This is a pre-existing feature in the Mac client.
2011-08-07 19:24:33 +00:00
Jordan Lee
fbc2eb1a65
silence a minor compiler warning when building with -DNDEBUG
2011-08-05 17:03:34 +00:00
Jordan Lee
7915b49b03
revert the last commit -- the Mac client uses the isIdle flag to know when hibernation is allowed
2011-08-04 04:31:14 +00:00
Jordan Lee
d8a11a33f1
tr_torrentIsStalled(): return false if that torrent's queue is disabled.
2011-08-04 02:25:38 +00:00
Jordan Lee
ae89e4683d
add user_data (void *) to the queue callback
2011-08-03 23:40:51 +00:00
Jordan Lee
ce77935009
Add a callback to be invoked when the queue starts a torrent.
2011-08-03 03:14:57 +00:00
Jordan Lee
3430ce714c
#671 "torrent queuing" -- fix r12611 oops
2011-08-02 14:03:43 +00:00
Jordan Lee
307754e807
#671 "torrent queuing" -- modify the queue implementation s.t. every torrent has a queuePosition, even if it's not currently in the queue.
2011-08-02 03:59:54 +00:00
Jordan Lee
2e9d419bd4
#671 "torrent queuing" -- add a tr_stat.isStalled flag.
2011-08-01 23:27:11 +00:00
Jordan Lee
61174b007e
(trunk) #671 "torrent queuing" -- Preliminary implementation. Covers libtransmission; GTK+ and Qt clients, and rudimentary web client support.
2011-08-01 22:24:24 +00:00
Jordan Lee
8ae478a62f
(trunk libT) #4395 "Crash when removing data for incomplete magnetized torrent file" -- fixed.
2011-07-30 13:11:06 +00:00
Jordan Lee
9b208d2777
(trunk libT) possible fix for three related tickets. still needs more testing.
...
#3732 "Delete system files when removing torrent data"
#4224 "Folders don't get deleted"
#3871 "torrent-set-location does not delete old folder if only one file in torrent"
2011-07-10 17:34:03 +00:00
Jordan Lee
fdec244f04
(trunk libT) #4336 "availablility nonsense" -- fix bug in tr_cpMissingBytesInPiece() introduced last week by r12515 for #4332 . Add assertions to the nightly build to watch for regressions of this fix.
...
The bug was that I fixed #4332 's off-by-one improperly in tr_cpMissingBlocksInPiece(). The piece's last block has to be calculated separately because its byte size may be different than the other blocks, The mistake in r12515 was that the last block could wind up being counted twice.
2011-07-02 13:20:17 +00:00
Mitchell Livingston
62f594267a
#4326 flags for completeness and wasRunning flipped in completeness callback
2011-06-19 03:31:41 +00:00
Jordan Lee
52512857ae
(trunk libT) better r12434
2011-05-16 07:11:21 +00:00
Jordan Lee
7cd9cc0176
(trunk libT) #4237 "tarnsmission-remote -l shows torrent list in reverse order" -- revert r12424 to fix this
2011-05-16 02:09:31 +00:00
Jordan Lee
94cc3f87f7
(trunk libT) CPU improvement in torrent.c's torrentInit()
...
Add the new torrent to the session's torrent list by prepending it instead of appending it. That way we don't have to walk the list in order to add it. tr_session.torrentList is an unordered list, so there's no real difference between prepending and appending.
2011-05-10 04:46:44 +00:00
Jordan Lee
513a3fcc1d
(trunk libT) tr_torrentGetFileMTime(): if the file being looked at is aleady open in fdlimit's file cache, use that cached handle instead of deriving our own.
2011-04-28 18:40:46 +00:00
Jordan Lee
0245703634
(trunk libT) tr_torrentGetFileMTime() used to require two stat() calls.. now it only requires one.
2011-04-02 07:36:34 +00:00
Jordan Lee
e5a6641bda
(trunk libT) tr_torrentFindFile2(): avoid an unnecessary malloc() + free() if the file we're looking for is complete and doesn't have a ".part" suffix
2011-04-02 03:31:41 +00:00
Jordan Lee
2328456a4a
(trunk libT) simplify tr_torrent's hasAnyLocalData() to be more readable, and also to avoid yet another unnecessary malloc() and free()
2011-04-01 04:33:35 +00:00
Jordan Lee
1b02eb8641
(trunk libT) use aggregation for the tr_bandwidth objects owned by tr_session and tr_torrent
2011-03-31 14:53:22 +00:00
Jordan Lee
bb561b5494
(trunk libT) fix ABR detected by clang static analyzer in tr_torrentStat.
...
When copying a value to s->errorString, it used memcpy(a,b,sizeof(a)) where sizeof(a) was larger than sizeof(b). Fixed by replacing the memcpy() call with tr_strlcpy().
2011-03-31 04:01:55 +00:00
Jordan Lee
83c0e4f011
(trunk libT) break the mac build and introduce new crashes.
...
This is partially to address #4145 "Downloads stuck at 100%" by refactoring the bitset, bitfield, and tr_completion; however, the ripple effect is larger than usual so things may get worse in the short term before getting better.
livings124: to fix the mac build, remove bitset.[ch] from xcode
2011-03-28 16:31:05 +00:00
Jordan Lee
bd88521332
(trunk) yet more "#include" tweaks
2011-03-25 15:03:42 +00:00
Jordan Lee
b4d36aeb54
(trunk) #4138 "use stdbool.h instead of tr_bool" -- done.
2011-03-22 15:19:54 +00:00
Jordan Lee
13514e16a7
(trunk libT) #4127 "Torrent complete script doesn't pass on the environment" -- fixed with patch from geirha.
...
The fix was to putenv() the new environment variables, then call execvp() instead of execve().
2011-03-16 18:11:48 +00:00
Jordan Lee
374ed10f3b
(trunk) it's bad form to #include so many system headers in libtransmission/utils.h...
2011-03-16 18:04:23 +00:00
Jordan Lee
075a0a8b86
(trunk libT) use libevent's portability wrapper for strcasecmp()
2011-03-13 08:21:55 +00:00
Jordan Lee
d1f3a885a5
(trunk libT) ensure that a tr_torrent's peer id is initialized when the tr_torrent is constructed
2011-03-11 15:00:10 +00:00
Jordan Lee
896c9b54e1
(trunk libT) Add an enumeration for the peer id length. Use that enum for the peer_id fields in tr_session and tr_torrent.
...
This also avoids an extra malloc/free per-torrent and per-session, but mostly this tweak is for the extra readability of the PEER_ID_LEN=20 enum.
2011-03-10 12:35:23 +00:00
Jordan Lee
9bf2434e14
(trunk) copyediting: remove trailing spaces from source code lines in daemon/ gtk/ libtransmission/ and utils/
2011-03-04 23:26:10 +00:00
Jordan Lee
b10aea6fcc
(trunk) #4072 "remove the 'know peer count' field in Inspector" -- remove it from libtransmission too
2011-03-04 04:50:50 +00:00
Jordan Lee
0c36e0c9de
(trunk libT) remove the unused tr_ratecontrol code. switch webseed over to using tr_bandwidth.
2011-03-03 18:33:24 +00:00
Jordan Lee
aa89303254
(trunk libT) #4073 "suggest inclusion of <signal.h> in torrent.c" -- done.
2011-02-28 13:10:56 +00:00
Jordan Lee
9d95bd151d
(trunk libT) #4035 "In seed state, transmission disconnect from leechers" -- fixed.
2011-02-24 14:35:45 +00:00
Jordan Lee
2b9db3c242
(trunk libT) #4048 "use bitsets instead of bitfield in tr_completion" -- done.
...
Excuse the sprawl. Much of this didn't fit into self-contained commits.
2011-02-23 03:54:04 +00:00
Jordan Lee
e77a627d3c
(trunk libT) mark the two "progress" args to tr_torrentSetLocation() as volatile.
2011-02-19 20:10:05 +00:00
Jordan Lee
72f9ab91fa
(trunk) make tr_torrentName() a public function.
...
This has been a private function in libtransmission for awhile now but it makes more sense as a public function.
2011-02-15 15:18:51 +00:00
Jordan Lee
2b905bdbcc
(trunk libT) silence minor "unused function argument" compiler warning
2011-02-07 23:09:36 +00:00
Jordan Lee
af1e920ab7
(trunk libT) minor futzing: remove unnecessary "assert( tr_isTorrent( tor ) );" calls
...
Remove these calls from private functions whose callers have already asserted the same thing.
2011-02-03 22:53:02 +00:00
Jordan Lee
e8614030a2
(trunk libT) #3973 "JIT verification verifies fresh downloaded torrents" -- remove a debugging printf() statement that shouldn't have been checked in.
2011-02-02 23:33:25 +00:00
Jordan Lee
06948a8514
(trunk libT) #2955 "verify pieces only when necessary, or when the user requests it." -- improvements to .resume file
...
As pointed out by longinus00 and ijuxda, storing per-piece timestamps in the .resume file can involve a lot of overhead. This commit reduces the overhead by adding a couple of optimizations: (1) in cases where *all* or *none* of the files' pieces were checked after the file's mtime, we can safely fold all the pieces' mtimes into a single per-file mtime. (2) since unix time takes up a lot of space when rendered as a benc integer, find a common per-file "baseline" number, then store the pieces' timestamps as offsets from that number. Also add documentation explaining this new format, and also better explaining the pre-2.20 progress format.
2011-02-02 21:17:16 +00:00
Jordan Lee
5fc1ff8855
(trunk libT) #3973 "JIT verification verifies freshly-downloaded torrents" -- test fix.
...
Files downloaded in Transmission 2.20 betas [1..3] forced each piece to be checked twice -- once on download, and once when uploading the piece for the first time. Older versions of Transmission didn't perform the latter check unless the file had changed after it was downloaded. This commit restores that behavior.
2011-02-02 20:30:04 +00:00
Jordan Lee
e7f81543ec
(trunk libT) #3961 "Support for running scripts when a torrent finishes downloading on Windows" -- fixed. patch by rb07
...
The changes to torrentCallScript() weren't portable to Windows, so rb07 has provided a patch.
2011-01-30 01:41:48 +00:00