Commit Graph

668 Commits

Author SHA1 Message Date
Charles Kerr e581d5228e add tr_ctor{Set,Get}DeleteSource() 2008-02-13 02:24:12 +00:00
Charles Kerr 5a7127a26b make TR_PATH_DELIMITER and TR_PATH_DELIMITER_STR private to libtransmission 2008-02-09 17:48:53 +00:00
Charles Kerr 7cf9f8cc35 #417: add the libtransmission bits for telling users when they can "Ask Tracker for More Peers" 2008-02-09 17:07:30 +00:00
Charles Kerr b1cd6ecccc remove unused "max unchoked peers" feature. fix obsolete TR_FLAG_SAVE comment. 2008-01-23 17:06:36 +00:00
Charles Kerr 0dd150844a make tr_handleStatus() return a const 2008-01-21 18:24:37 +00:00
Charles Kerr de515ee339 if the torrent's download path doesn't exist, don't create it -- it's might be a removeable disk that got unplugged. 2008-01-18 19:13:32 +00:00
Charles Kerr d48f7a0026 housekeeping. tweak comments, group API calls a bit. 2008-01-15 22:00:58 +00:00
Mitchell Livingston bedfab2ccc clarify peer upload and download 2008-01-10 00:52:02 +00:00
Charles Kerr 591f7f8b10 * improve the unchoking algorithm.
* when deciding which peers to connect to, take peer's previous speeds into account
* longer delay interval before reconnecting to peers that didn't give us data
* added uTorrent-inspired "flags" column in tr_peer_stat and gtk's torrent details' "peer" tab
2008-01-09 17:33:43 +00:00
Charles Kerr 15ffb4232e tr_stat.ratio now returns TR_RATIO_INF when appropriate 2008-01-04 19:13:30 +00:00
Charles Kerr ce6c33b7bf set copyright info to 2008 2008-01-01 17:20:20 +00:00
Charles Kerr e319a6ffe4 dead code removal 2007-12-26 20:45:08 +00:00
Charles Kerr 6db02c401b add message queueing flag to tr_initFull() too 2007-12-24 16:12:23 +00:00
Charles Kerr bc84156d4f add a messageLevel argument to tr_initFull() 2007-12-24 16:02:36 +00:00
Charles Kerr 35adeec1d0 (gtk) fix startup port issue by hitting it with a damn big hammer 2007-12-24 07:02:40 +00:00
Charles Kerr 401cfbdb6b replace the per-torrent PEX setting with a global one, as per discussion with SoftwareElves and BentMyWookie 2007-12-24 05:03:40 +00:00
Charles Kerr b13d8d1dd6 save a copy of the torrent's metadata in tr_torrentInit(), not tr_torrentParse(). remove dead code from metainfo.c. 2007-12-22 18:00:47 +00:00
Charles Kerr c946168b1e (1) fix peer limits in fastresume (2) possible fastresume corruption (3) add `save' field to torrent ctor 2007-12-22 17:30:31 +00:00
Charles Kerr 2764f9a140 fix indentation errors in r4278.
fix consistency errors between ctor and the new functions in r4278.
2007-12-22 04:11:17 +00:00
Mitchell Livingston 3449e2d15c separate getting/setting # connections and # unchoked 2007-12-22 04:00:19 +00:00
Charles Kerr 7542573044 brush away the last remnants of tr_torrentInit() 2007-12-22 03:51:12 +00:00
Charles Kerr 93f69d2b5c (gtk) add options to set global & per-torrent peer connection limits 2007-12-22 00:06:38 +00:00
Charles Kerr 287975caf5 the torrent ctor is here. 2007-12-21 22:18:40 +00:00
Charles Kerr f1baca587b add torrent-ctor so that xcode can be updated. it's not plugged in yet though. 2007-12-21 16:51:42 +00:00
Charles Kerr 5c4f841c7e added tr_torrentSetPeerLimits(), tr_torrentGetPeerLimits(), tr_setGlobalPeerLimit(), tr_getGlobalPeerLimit() 2007-12-20 21:44:16 +00:00
Mitchell Livingston 1b6a8a9504 display the infinity symbol in stats for ratio when there is upload but no download 2007-12-13 04:31:38 +00:00
Charles Kerr 73ee11f233 Use libnatpmp for port mapping. rewrite the upnp/natpmp manager.
NOTE: this will break the xpjets build until SoftwareElves or a volunteer patches the xcode project file to make a libnatpmp library just like was done for libminiupnp.
2007-12-08 19:34:15 +00:00
Charles Kerr 1e4b3a0577 make the peer stats a little easier to understand 2007-11-27 21:39:41 +00:00
Charles Kerr c3c4b699b9 stats 2007-11-26 20:20:46 +00:00
Charles Kerr 3aae5534bd work on the stats a little bit. 2007-11-26 18:55:36 +00:00
Charles Kerr 87d4bcd278 Change the default port from 9090 to 51413 to get in compliance with IANA's port number assignment scheme. (1024 through 49151 are reserved) 2007-11-22 04:15:22 +00:00
Charles Kerr 0a61e04757 now that libevent has a stable 1.4 release out with the features & fixes we wanted, aim third-party/libevent/ at libevent's 1.4 maintainance branch instead of their trunk. 2007-11-20 03:11:50 +00:00
Charles Kerr b61dcfdbff add "this session" stats stubs for BentMyWookie 2007-11-19 20:07:21 +00:00
Charles Kerr f6371c99a3 add "time running" to tr_global_stats 2007-11-19 19:30:24 +00:00
Charles Kerr 4cfa1ca6b5 added tr_global_stats prototypes for BentMyWookie 2007-11-19 17:29:17 +00:00
Charles Kerr a277382578 more download speed tweaks for situations where T is both uploading and downloading. 2007-11-18 04:24:17 +00:00
Charles Kerr 9a81cd7637 reintroduce the "SWIFT" algorithm 2007-11-18 01:00:49 +00:00
Charles Kerr 37969406b2 Add "Status" column to tr_peer_stat. 2007-11-17 23:43:33 +00:00
Charles Kerr 66c9119a84 tiennou's fix for #461 2007-11-12 15:15:51 +00:00
Charles Kerr 125bd34bbb added `plaintext preferred' encryption option. 2007-11-08 21:20:08 +00:00
Charles Kerr e625b10d6d "corruption" fix part 3: cleanup. remove unneeded possible points of failure. 2007-10-31 18:10:55 +00:00
Charles Kerr e6fbcaeae6 Quick & dirty fix to crasher ticket #415. 2007-10-26 03:02:23 +00:00
Charles Kerr e38311e64e fix two separate version.h errors 2007-10-24 18:36:53 +00:00
Charles Kerr f71319b90f get "make distcheck" working again 2007-10-24 17:20:50 +00:00
Charles Kerr c50cadbcaa remove dead code (TR_STATUS_ACTIVE, TR_STATUS_INACTIVE) 2007-10-20 22:07:21 +00:00
Charles Kerr 264f7ab8b3 Dead code removal (TR_STATUS_STOPPING) 2007-10-20 21:17:37 +00:00
Charles Kerr b7258fbf33 try to better sync up the tr_stat fields, as requested by BentMyWookie 2007-10-20 21:07:11 +00:00
Charles Kerr 4acfe5e1b5 have gtk+ use the batch form of setFilePriorities(). remove saveFastResumeSoon(). 2007-10-19 23:44:01 +00:00
Charles Kerr 25fa56d294 * don't fire the "status changed" event if the status changes while a torrent's being started for the first time.
* cleaner setting of the DND flags in the gtk+ client.
* cpStatus cleanup.
2007-10-19 23:23:21 +00:00
Charles Kerr e698756c98 remove unused flags 2007-10-15 20:58:39 +00:00
Charles Kerr c65d6a20c3 remove dead code tr_file_stat::completionStatus 2007-10-15 18:45:25 +00:00
Charles Kerr 159f1de576 remove dead code tr_stat::cpStatus 2007-10-15 18:28:49 +00:00
Mitchell Livingston cc2db392f5 make libtransmission's pex accessor public, and eliminate a redundant variable in Torrent.[mh] 2007-10-14 22:01:55 +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 cba61802cf remove newly-unused field tr_peer_stat::isConnected 2007-10-01 15:41:42 +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 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 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 f158112ece clarify the speedlimit comments 2007-08-03 15:55:32 +00:00
Charles Kerr ba3dc008fc get the socket/net code working on win32 too 2007-07-31 16:55:47 +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 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 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 dd55805012 much faster rechecking of incomplete torrents. added tr_stat_t.recheckProgress field. 2007-07-24 01:33:59 +00:00
Charles Kerr 809ec63e95 new utility function for app startup: tr_loadTorrents() 2007-07-21 18:46:54 +00:00
Charles Kerr bbac082af5 finish splitting the rate control from one state into two states as requested by BMW 2007-07-20 08:33:59 +00:00
Charles Kerr 4ef1592e6b more work on the speed limits as hammered out w/BentMyWookie 2007-07-20 03:24:04 +00:00
Josh Elsasser 99e471f05d Replace nice readable bitshifts with ugly hex constants
to avoid the compiler warning about our weird error codes.
2007-07-18 18:09:03 +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 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 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
Charles Kerr 4311b160b5 add tr_torrentGetFileStatus() for BentMyWookie 2007-07-15 03:26:22 +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 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 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 58f89cdc77 replace the unhelpful error message "error: insufficient resources" with more descriptive cases 2007-07-01 01:50:14 +00:00
Charles Kerr 6c6732ed39 make tr_torrentInfo() a const function 2007-06-30 13:36:58 +00:00
Charles Kerr 6890359001 Make tr_torrentParseHash() public 2007-06-28 23:35:02 +00:00
Charles Kerr 831cd4a3da better documentation on tr_torrentParse()'s behavior 2007-06-28 01:20:10 +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 06e761d950 * fix error checking large files reported by Gimp_
* portability changes to pathname/filename building
* small gratuitous changes
2007-06-18 19:39:52 +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 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
Josh Elsasser 81a6d96d6e Remove tr_handle_t argument from tr_torrentClose(). 2007-05-23 04:45:20 +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
Josh Elsasser 5fe9d0fcea Check error codes correctly in instead of reporting all errors as 'assert'.
Add TR_ERROR_IO_SPACE and TR_ERROR_IO_RESOURCES.
2007-05-09 18:41:22 +00:00
Josh Elsasser a3ca76cced Don't bencode signed integers as unsigned. 2007-05-09 07:00:08 +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 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
Josh Elsasser 63bb617fa4 Add more I/O error codes. 2007-04-20 02:05:07 +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 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 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 efdc43ebb7 Add function to return the progress of each file in a torrent. 2007-02-23 11:26:48 +00:00
Josh Elsasser f67ad8cf47 Add a new interface to make the public port available to the frontend. 2007-02-06 04:26:40 +00:00
Josh Elsasser 263bf6ff0c Check for private flag in main dict too. 2007-01-27 22:37:10 +00:00
Eric Petit 7a6401c7b4 Split transmission.c: everything related to the accept/upnp/choking
thread was moved to shared.c
2007-01-19 04:42:31 +00:00
Eric Petit e5e6a8b5df Merge io branch into trunk 2007-01-14 12:00:21 +00:00
Mitchell Livingston becb19f763 global bandwidth limits only apply to transfers that are not set to overide them 2007-01-08 21:53:55 +00:00
Mitchell Livingston d6104b6f71 move ratio from mac code to libT code 2006-12-30 19:24:09 +00:00
Mitchell Livingston e880aa48a5 make function names a little more specific 2006-12-27 00:22:38 +00:00
Mitchell Livingston 776153c126 better placement of manual announce 2006-12-26 18:40:51 +00:00
Mitchell Livingston 01ebeae829 stop crashing 2006-12-18 06:16:27 +00:00
Mitchell Livingston 7274eebefc store upload rate / download rate in peer struct 2006-12-18 05:04:35 +00:00
Josh Elsasser 343e51abbe Add peer's port to tr_peer_stat_t. 2006-12-18 03:45:22 +00:00
Mitchell Livingston 3374ce9a32 merge multitracker branch:
Adds announce list, support for code 301/302 redirect, improvements to mac inspector, better queueing with errors, random extra wait of up to a minute between announces, and other changes.
2006-12-17 16:36:27 +00:00
Josh Elsasser 44f8325312 Merge scrape branch:
Automatically scrape trackers as needed.
  If tracker supplies a trackerid then use it (untested).
  Use tracker's min interval, clamped to the same range as interval.
  Show total completed downloads in the MacOS X frontend.
2006-12-02 01:46:54 +00:00
Mitchell Livingston 4306c7cfa5 add support in libT and the mac interface for displaying comment, creator, and date created 2006-11-23 01:38:18 +00:00
Eric Petit 3f129d8829 Adds progress in tr_peer_stat_t 2006-11-10 04:21:46 +00:00
Mitchell Livingston c521f412ad in info show the number of incoming connections next to total connections 2006-10-13 18:58:12 +00:00
Josh Elsasser d202bc4f1e Fix a few minor style nits.
Use a floats instead of uint8_ts for piece percentages.
2006-10-13 00:23:20 +00:00
Mitchell Livingston 663c671f93 Initial attempt at against the completeness of a specific piece. 2006-10-12 23:34:20 +00:00
Eric Petit c6df4005e1 Remember whether a peer comes from an incoming or outcoming connection 2006-09-25 21:56:52 +00:00
Josh Elsasser 0257761670 Merge nat-traversal branch to trunk. 2006-09-25 18:37:45 +00:00
Josh Elsasser a647015714 Add time to messages. 2006-08-22 02:32:46 +00:00
Josh Elsasser 43e6dd56aa Rework the message stuff again to be easier on the frontend. 2006-08-22 02:12:58 +00:00
Josh Elsasser 69f43ff729 Make message level available to message handler callback. 2006-08-20 22:45:04 +00:00
Josh Elsasser 8bc4cefa2d Allow frontend to change message output level.
Rename tr_setErrorFunction() to tr_setMessageFunction()
2006-08-20 18:15:25 +00:00
Josh Elsasser 86d9310274 Try to keep track of the overall speed of the swarm.
Patch by Denis Ahrens.
2006-08-16 19:21:09 +00:00
Mitchell Livingston 199bb19e14 Check for connected peers, as well as better peer table resizing behavior. 2006-08-15 00:59:44 +00:00
Josh Elsasser f41a6ade33 Retrieve peer address as a string via tr_torrentPeers(). 2006-08-14 22:42:32 +00:00
Mitchell Livingston f6eea9e591 Free even more memory. 2006-08-13 21:24:23 +00:00
Mitchell Livingston 62d9f1ebb1 Get peers separately from the rest of the stats. This should also get rid of a memory leak. 2006-08-13 21:16:18 +00:00
Mitchell Livingston e392a84e36 Fix a memory leak. 2006-08-13 19:55:59 +00:00
Mitchell Livingston f76f1c3091 Some changes to getting peers in libtransmission. Now it uses a separate structure for the GUI accessing peers. 2006-08-13 19:43:15 +00:00
Mitchell Livingston 2a36da8b60 Some new accessors for libtransmission...I don't see what harm these can do 2006-08-12 00:38:26 +00:00
Josh Elsasser 555f12b64a Allow frontend to supply a custom function for displaying libtransmission errors. 2006-07-16 23:40:22 +00:00
Eric Petit f199e0a9d9 Revert [619] 2006-07-16 19:39:23 +00:00
Mitchell Livingston 5d36721a15 Remove old Sparkle... 2006-07-16 19:28:19 +00:00
Eric Petit db26a7e23a Don't assume that a download is a folder if there only is one
file (fixes #36)
2006-06-20 02:34:34 +00:00
Josh Elsasser 0600f3d4aa Add support to libtransmission and the MacOS X GUI for saving private copies of
torrent files.
2006-06-09 19:53:35 +00:00
Eric Petit a3d3d1f33d Splits VERSION_STRING and VERSION_REVISION, removes duplication of flags
in the Xcode project file
2006-05-29 22:44:21 +00:00
Eric Petit f98fe6a1b0 Added $Id$ keywords and updated a few headers 2006-05-29 21:21:23 +00:00
Eric Petit 1ec413ea5c Fixes warnings 2006-04-26 10:59:09 +00:00
Eric Petit b9a53769f9 Adds download rate limit 2006-04-07 12:09:08 +00:00
Eric Petit a1830a25bf Merge from branches/new_api:r161 2006-03-23 12:39:39 +00:00
Eric Petit 6c0a54caa5 Update 2005-12-25 2006-01-12 18:58:57 +00:00
Eric Petit 616ae26efa Update 2005-12-13 2006-01-12 18:52:15 +00:00
Eric Petit 835c3284dd Update 2005-11-24 2006-01-12 18:40:47 +00:00
Eric Petit 23ef3653e3 Update 2005-11-21 2006-01-12 18:33:20 +00:00
Eric Petit 8adc2d7338 Update 2005-11-01 2006-01-12 18:20:48 +00:00
Eric Petit a6aa884776 Import from 2005-10-26 2006-01-12 17:43:21 +00:00