Charles Kerr
568e97d220
recheck the completeness stats after `recheck torrent'
2007-10-07 04:32:37 +00:00
Charles Kerr
17743d8d04
tweak the `start torrent' code based on feedback from BentMyWookie
2007-10-04 23:47:49 +00:00
Charles Kerr
53aef0a48c
Simplify the tracker/pause/close/recheck/start code.
2007-10-04 19:58:30 +00:00
Charles Kerr
77d7cf76a1
fix looong-standing potential dangling pointer bug reported by BMW
2007-10-02 03:33:17 +00:00
Charles Kerr
6ed2d25af7
threads. gotta love 'em.
2007-10-02 02:59:07 +00:00
Charles Kerr
e4fec9eefd
add tr_stat.peersKnown to indicate how many peers exist in the peer `pool'
2007-10-01 15:51:54 +00:00
Charles Kerr
5c11c58113
simplify libT locks now that it's (more-or-less) single-threaded. fix deadlocks. make tr_locks nestable.
2007-10-01 15:17:15 +00:00
Charles Kerr
b3d6391413
test to see if the new locking code can fix the old `stop' bug
2007-09-29 14:25:52 +00:00
Charles Kerr
f0c9f9a99a
add a callback to notify clients when a torrent's state changes
2007-09-28 14:51:34 +00:00
Charles Kerr
d3077bbce1
round 2 of minor revisions to tr_stat
2007-09-27 03:30:22 +00:00
Charles Kerr
439c1f38c1
some experimental code. (1) try to improve throughput to peers. (2) add first draft of new tr_stat fields requested by BentMyWookie (3) raise the per-torrent peer limit to 100 to match LibTorrent's defaults
2007-09-27 03:03:38 +00:00
Charles Kerr
ee6a0b8945
modify the tr_stat struct as hashed out by charles_ and BentMyWookie. sync gtk, ipc, and wx clients.
2007-09-26 01:55:04 +00:00
Charles Kerr
904359a049
* fix oops from last checkin
...
* remove some unused fields from internal structures
2007-09-25 22:37:23 +00:00
Charles Kerr
7a15abaf7a
better handling of tracker error messages.
2007-09-25 18:39:58 +00:00
Charles Kerr
b402687c93
* add sanity checks to incoming piece data requests. This may solve the inout.c:99 assertion failure.
...
* rename the gtk client from `transmission-gtk' to `transmission' for parity with the mac client.
2007-09-23 23:38:39 +00:00
Charles Kerr
4834dc4b13
fix crash-on-shutdown
2007-09-23 19:24:06 +00:00
Charles Kerr
b3fde0b43b
tweak responsivenes on switching between `uploading' and `downloading' when a user changes a file's do-not-download state
2007-09-23 14:17:39 +00:00
Charles Kerr
89da2294b1
* when a torrent's done downloading, have it switch to seeding mode.
...
* tweak the gtk+ client's torrent inspector's display of transfer rates
2007-09-23 13:53:44 +00:00
Charles Kerr
56b0e5d1ac
* remove some console messages.
...
* scrape sooner when peers are added.
* added stub code for the connection manager code
2007-09-22 00:22:10 +00:00
Charles Kerr
9248143ce8
fix recursive crash when stopping a torrent, reported by plantain. silence a few more console messages.
2007-09-21 14:20:55 +00:00
Charles Kerr
4d15bbdc2a
slightly less broken handling of cases where we can't bind to our listening port.
2007-09-21 05:31:29 +00:00
Charles Kerr
fb70a9cca0
remove the backwards compatability typedefs at BentMyWookie's suggestion. update libT, gtk, daemon, and cli accordingly...
2007-09-20 20:14:13 +00:00
Mitchell Livingston
76da1185ca
merge encryption branch to trunk (xcode project is still out of date)
2007-09-20 16:32:01 +00:00
Charles Kerr
bae07d471e
added support for `corrupt' announce tag s.t. corrupted bytes don't count towards your download ratio
2007-08-21 15:17:02 +00:00
Charles Kerr
64faed5c47
better saving of run/stopped state.
2007-08-20 23:36:18 +00:00
Charles Kerr
4e82903313
better fix for the leak in r2870
2007-08-19 04:03:06 +00:00
Charles Kerr
b0919dca34
...and, yet another memory leak, this time when trying to add a torrent that can't be added
2007-08-19 03:42:58 +00:00
Charles Kerr
43bfc5cd7f
update version.sh to exclude third-party. add $Id:$ to the new files s.t. version.sh will find them.
2007-08-18 17:05:51 +00:00
Charles Kerr
5f5a743790
the new tracker code seems to be working, so now it's time for me to learn yet again how much better users are at noticing bugs than I am. :)
2007-08-16 20:00:06 +00:00
Charles Kerr
7254a96ce8
let fastresume remember which torrents are stopped and which are running.
2007-08-13 16:43:33 +00:00
Charles Kerr
f2daeb242d
(trunk) add tweak to boost the priority of the first and last piece of a file so that early previewing is possible. Suggested by mtolman in http://transmission.m0k.org/forum/viewtopic.php?t=2110
2007-08-08 15:07:06 +00:00
Charles Kerr
82311abfbe
(trunk) fix assertion bug in torrent.c::fileByteCompleted()
2007-08-07 14:17:37 +00:00
Charles Kerr
0f85cc3297
continue whittling away at internal.h to reduce the global #include dependencies
2007-07-31 14:26:44 +00:00
Charles Kerr
d209052051
add portability wrapper for in_port_t...
2007-07-30 18:04:10 +00:00
Charles Kerr
1be185aacd
(libT) get "update tracker" working again.
...
(gtk) add "update tracker" button.
2007-07-30 17:11:00 +00:00
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