Commit Graph

10146 Commits

Author SHA1 Message Date
Jordan Lee 3f9886c3dd (trunk libT) silence compiler warning in libtransmission/fdlimit.c: "ignoring return value of ‘ftruncate’, declared with attribute warn_unused_result" 2011-02-09 05:34:23 +00:00
Jordan Lee adf5a2e273 (trunk libT) fix gcc compiler warning in libtransmission/makemeta.c: "ignoring return value of ‘read’, declared with attribute warn_unused_result" 2011-02-09 05:16:37 +00:00
Jordan Lee 62b732708a (trunk gtk) msgwin.c: silence compiler warning "warning: ‘pinned_to_new’ may be used uninitialized in this function" 2011-02-09 05:10:29 +00:00
Mitchell Livingston 1d1a3e8068 #3696 Publish Web Interface via Wide-Area Bonjour (in addition to Link-Local) 2011-02-09 03:06:05 +00:00
Mitchell Livingston 4f3c9923ba format the number of times opened 2011-02-09 02:49:32 +00:00
Mitchell Livingston 4c4a248c02 #4002 Update to JQuery 1.5 2011-02-09 02:45:54 +00:00
Jordan Lee 984ac1b92e (trunk libT) fix compiler warning: "peer-io.h:282: warning: inlining failed in call to ‘evbuffer_add_uint8’: optimizing for size and code size would grow" 2011-02-09 02:35:16 +00:00
Jordan Lee 0bd1ec8de8 (trunk libT) #3991 "connection encryption stopped working" -- silence minor compiler warning. patch by ijuxda. 2011-02-09 02:26:35 +00:00
Jordan Lee 2098669a10 bump to version 2.21+ 2011-02-08 21:07:15 +00:00
Jordan Lee 4e00051bae (trunk) bump to 2.21 2011-02-08 21:05:30 +00:00
Jordan Lee 441b8fa18b (trunk libT) #3993 "Version (-V) option no longer outputs svn revision no." -- fixed.
update-version-h.sh tries to use {{{svnversion}}} when possible. But when it's not, it looks through the "$Id:" lines in the source file comments and uses the largest version number it finds. The new files tr-dht.[ch] didn't have the line of its $Id: comment formatted in the way update-version-h.sh expected. tr-dht.[ch]'s $Id: line has been homogenized to be like everyone else's...
2011-02-08 04:17:33 +00:00
Mitchell Livingston 4034ed0d16 add the application type to Info.plist 2011-02-08 02:02:09 +00:00
Mitchell Livingston bff67a9294 #3987 Display issue in the main window in the German localisation 2011-02-08 01:26:35 +00:00
Mitchell Livingston beb2973b85 set the visibility priority for high and low priority menu items 2011-02-08 01:08:30 +00:00
Mitchell Livingston 22afd589d0 have miniupnp use the project's flags 2011-02-08 00:41:01 +00:00
Mitchell Livingston ec3d029883 #3994 don't compile assert statements in Release mode 2011-02-08 00:36:57 +00:00
Jordan Lee 394fed632f (libT) #3991 "Connection encryption stopped working" -- fixed.
This is a pretty straightfoward bug: the call to evbuffer_peek() should not have been wrapped in assert().
2011-02-08 00:31:50 +00:00
Jordan Lee 6a9d3b8c3b (trunk gtk) refresh the translations again for 2.21 2011-02-08 00:19:22 +00:00
Jordan Lee 2b905bdbcc (trunk libT) silence minor "unused function argument" compiler warning 2011-02-07 23:09:36 +00:00
Jordan Lee 61d999dfdd (trunk qt) refresh the strings for transmission-qt 2.20; updated es translation from rb07 :) 2011-02-07 22:54:18 +00:00
Mitchell Livingston a2fbc67cd4 bump version to 2.20+ 2011-02-06 20:25:53 +00:00
Jordan Lee 1773b17013 bump to 2.20 2011-02-06 20:15:38 +00:00
Mitchell Livingston 7b31b3023f set 2.20 release date in NEWS 2011-02-06 20:12:18 +00:00
Jordan Lee ce08e00e2e (trunk libT) #3975 "tr_bencToFile() contains unnecessary calls to stat() and unlink()" -- fixed for win32.
remove() doesn't have the same behavior on Windows. On that platform, we should use MoveFileEx( oldpath, newpath, MOVEFILE_REPLACE_EXISTING )." Thanks to rb07 for testing & confirming the fix.
2011-02-06 18:56:44 +00:00
Jordan Lee 24b9dc7dc2 (trunk gtk) #3866 "Popup menu for file list manipulation" -- removing from the 2.20 milestone
Looking over the 2.20 tickets, this one keeps sticking out. A popup menu may be useful if the "delete files" ticket is accepted in 2.30, but for this release (2.20) it doesn't really add anything new. One lesson from the 2.1x cycle was that features are a harder to remove than to add. So I'm going to hold off on adding this feature until it has a clear raison d'être.
2011-02-06 18:50:35 +00:00
Mitchell Livingston b2a7f130ee update French localization for 2.2 2011-02-06 18:07:32 +00:00
Mitchell Livingston c165ff1463 #3675 handle trashing data over RPD in the Mac client 2011-02-06 17:32:16 +00:00
Jordan Lee 1fabb9b9ea (trunk) #3675 "Not all .part files are removed" -- handle trashing files via RPC.
When libtransmission gets a "remove torrent" request from RPC, it tries to delegate the work. This is because the GTK+ and Mac clients don't want torrents disappearing in a different thread and causing possible thread issues. So the GTK+ and Mac clients get notification about this via libtransmission's RPC callback and remove the torrents themselves. Unfortunately, that notification doesn't include information about whether or not to delete local data.

This commit adds that information to the RPC callback so that the Mac and GTK+ clients will know whether or not to trash the local files when a third-party RPC client requests that at torrent and its files be deleted.
2011-02-06 17:30:46 +00:00
Jordan Lee 11c0517cc8 (trunk libT) #3931 "'Announce is Queued' but doesn't get announced" -- remove the 'unresponsive tracker' penalty from torrents whose announce time has been reached.
The 'bad tracker' penalty was introduced in 2009 after a top tier trackers went down. Announces to it would hang, tying up an announce slot in libcurl for minutes at a time. If a user had enough torrents from that tracker, it could bottleneck all announce slots. The workaround was to deprioritize failing trackers so that they wouldn't obstruct other trackers.

Its implementation could be better, however. There are two parts:

  1. Deciding how frequently to retry unresponsive trackers

  2. Once an unresponsive tracker announce was ready to go, it would be bumped down the queue if other announces were ready too.

Part 2 probably contributes to #3931. If there are enough torrents loaded, there will always be good tracker announces that get pushed ahead of a bad one in the queue. Modifying 2's heuristics would be one option, but it seems simpler to remove it altogether now that getRetryInterval() grades more hashly for consecutive failures. Altering the retry interval also gives better visual feedback to users than Part 2 did.

This commit removes "Part 2" as described above.
2011-02-05 18:46:10 +00:00
Jordan Lee ddfb113f70 (trunk libT) announcer.c cleanup, part 1
Separating this commit into a few different stages. This one is superficial/readability changes, such as grouping related functions together.
2011-02-05 16:45:06 +00:00
Jordan Lee c90ddfa1c3 (trunk libT) #3980 "segfault when adding many torrents remotely" -- possible fix.
gtk/main.c's onRPCChanged() is called from inside the libtransmission thread, yet it still made GTK+ calls to modify the GTK+ client's tr-core object when a torrent was added. This caused a race condition inside of the GTK+ internals. onRPCChanged() already knows to delegate work back to the GTK+ thread when a torrent is removed via RPC. This commit uses the same kind of mechanism to delegate work back to the GTK+ thread when a torrent is added via RPC.
2011-02-05 05:03:00 +00:00
Jordan Lee b3227b9567 bump to nightly peer-id 2011-02-05 04:22:38 +00:00
Mitchell Livingston 9c2a25a702 update Dutch localization 2011-02-04 13:22:45 +00:00
Jordan Lee a358858a99 (trunk libT) #3978 "Message window column sorting fails and triggers gtk warnings" -- fixed.
I'm not sure why sorting was in there in the first place; it doesn't make sense in a message log.. Disabling sorting fixes this bug.
2011-02-04 06:12:55 +00:00
Jordan Lee 865bfb0e91 bump to 2.20 beta 4 2011-02-04 04:00:16 +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 e24c18fcd9 (trunk qt) in the "new torrent" dialog, have the "save to" and "source folder" file dialogs be QFileDialog::DirectoryOnly rather than QFileDialog::Directory 2011-02-03 22:13:31 +00:00
Jordan Lee 11d60307cf (trunk libT) #3967 "regression: transmission-daemon's non-inotify watchdir is broken in 2.20 betas" -- fixed.
When inotify isn't available, watch.c uses readdir() to look for new .torrent files. It keeps a list of old .torrent files internally so that it doesn't try to keep re-adding the same file. This list is stored in an evbuffer. As part of the libevent2 upgrade (#3836), r11594 changed how the buffer is searched by replacing the (deprecated) event_find() call with libevent2's evbuffer_search(). However the latter's semantics are different in that searching stops when '\0' is reached, so '\0' is no longer a good filename delimiter. Fixed by changing watch.c's internal delimiter from '\0' to '\t' ... so all those torrents with tabs in their filenames had better watch out.
2011-02-03 17:37:53 +00:00
Mitchell Livingston ca55bca4fa update Simplified Chinese localization for 2.2 2011-02-03 12:36:30 +00:00
Jordan Lee deac8fedbe (trunk libT) now that bencode.c doesn't call stat() anymore, we can remove a couple of #includes 2011-02-03 06:19:54 +00:00
Jordan Lee 2450d6514b (trunk libT) #3519 "Webseeds don't work" -- handle nonresponsive webseeds
Don't keep trying to use nonresponsive webseeds or it will generate unnecessary network traffic and kill us during endgame.
2011-02-03 04:17:48 +00:00
Jordan Lee 3282e1ea81 (trunk libT) #3975: "tr_bencToFile() contains unnecessary calls to stat() and unlink()" -- fixed.
When saving a tr_benc object to disk at $dst, bencode.c saves it to a tmp file in the same directory as $dst, unlinks $dst if it exists, and then renames $tmp as $dst. This commit removes the middle step, which is unnecessary because rename() has guarantees about atomically overwriting $dst.
2011-02-03 00:48:05 +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 22660ed751 (trunk libT) #3973 "JIT verification verifies fresh downloaded torrents" -- improvement to r11813.
r11813 fixed the timestamp issue by fsync()ing files before close()ing them in tr_close_file(). This causes a little overhead as even read-only files cause a sync as their atimes are modified. Instead, we should call fsync() further back in the call chain in tr_fdFileClose() so that we can know to only sync torrent files that were opened with write access.
2011-02-02 23:29:17 +00:00
Jordan Lee 4bf6f0ac40 (trunk libT) #3973 "JIT verification verifies fresh downloaded torrents" -- win32 portability fix for r11813.
fsync() doesn't exist on Windows. bencode had a private function, tr_fsync(), that is a portability wrapper around fsync() on *nix and _commit() on win32. Make this function package-visible, rather than private, so fdlimit.c can use it too.
2011-02-02 23:19:54 +00:00
Mitchell Livingston 9d3a97f3ed update European Portuguese for 2.2 2011-02-02 22:55:13 +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 859570345d (trunk libT) tweak the documentation on a couple of structs 2011-02-02 17:15:41 +00:00
Jordan Lee 4736d863bf (trunk libT) minor code cleanup to inout.c's readOrWriteBytes().
Use ijuxda's suggestion of making the fstat(fd) call dependent on (fd>=0) rather than (!err).
2011-02-02 06:06:09 +00:00