Charles Kerr
b92c609ed9
refactor: use std container for session torrents ( #1832 )
...
* refactor: use std container for session's torrents
2021-09-24 18:31:02 -05:00
Dmytro Lytovchenko
43d1ece562
C++ modernization: Replace NULLs with typesafe nullptrs ( #1799 )
...
Fixing CI errors and build errors
Reverted changes: NULL in EV_SET macro; Clang-formatting
Reverted changes: MacosX *.m files reverted from master
2021-09-14 19:18:09 -05:00
Charles Kerr
c0ed82533c
perf: lookup tables for faster torrent searching. ( #1778 )
...
* perf: lookup tables for faster torrent searching.
tr_torrentFindFromId(), tr_torrentFindFromHashString(), and
tr_torrentFindFromHash() are now O(log N) instead of O(N) where
N is the number of torrents.
* build: fix clang-tidy warning
error: integer to pointer cast pessimizes optimization opportunities
[performance-no-int-to-ptr,-warnings-as-errors] from TR_BAD_SYS_FILE
which expands to INVALID_HANDLE_VALUE ((HANDLE)(LONG_PTR)-1)
2021-09-09 00:22:29 -05:00
Mike Gelfand
db3d40d0ed
Switch to clang-format for code formatting, include Mac client
2021-08-16 00:38:29 +03:00
Lucas Clemente Vella
1194b88258
Renaming variables to better reflect what they do. ( #1660 )
...
Because bound IPv4 is hardly ever a public address.
Co-authored-by: Charles Kerr <charles@charleskerr.com>
2021-05-19 15:45:03 -05:00
Charles Kerr
677dc73eac
refactor: use GTest for running tests ( #1383 )
...
* refactor: use google-test on libtransmission tests
2020-08-11 13:11:55 -05:00
Mike Gelfand
5b29fe1556
Ensure include guard is the first non-comment line
2017-11-14 23:21:28 +03:00
Mike Gelfand
27b6884408
Move uTP timer to session struct
2017-07-02 13:31:33 +03:00
Mike Gelfand
f701d501a8
Move generic macros to a separate tr-macros.h file
2017-06-18 17:11:20 +03:00
Mike Gelfand
82722476aa
Fix some issues reported by Coverity
2017-05-20 23:31:56 +03:00
Mike Gelfand
a762c770f2
Make conditional expressions explicitly boolean
2017-04-30 19:26:01 +03:00
Mike Gelfand
dadffa2c0f
Align type qualifiers to the right (code style)
...
This way all the qualifiers (`const`, `volatile`, `mutable`) are grouped
together, e.g. `T const* const x` vs. `const T* const x`. Also helps reading
types right-to-left, e.g. "constant pointer to constant T" vs. "constant
pointer to T which is constant".
2017-04-20 19:53:20 +03:00
Mike Gelfand
d7930984ef
Adjust uncrustify config, reformat all but Mac client
...
There're places where manual intervention is still required as uncrustify
is not ideal (unfortunately), but at least one may rely on it to do the
right thing most of the time (e.g. when sending in a patch).
The style itself is quite different from what we had before but making it
uniform across all the codebase is the key. I also hope that it'll make the
code more readable (YMMV) and less sensitive to further changes.
2017-04-20 10:01:22 +03:00
Mike Gelfand
26b0a041cc
Factor out session ID into a standalone entity
2016-09-21 22:29:56 +03:00
Mike Gelfand
2248d3670f
Get rid of $Id$ SVN keywords in source files
2016-09-02 23:10:15 +03:00
Jordan Lee
1af60ad6ad
use '#pragma once' instead of #ifndef..#define..#endif guards
2016-03-29 16:37:21 +00:00
Jordan Lee
5fbd24fda5
fix a handful of minor compiler warnings, mostly in the unit tests, eg field width shortening or implicit signed/unsigned conversions
2016-03-29 03:04:54 +00:00
Mike Gelfand
f89fab72f9
Remove unused session tag
2015-10-18 18:39:14 +00:00
Mike Gelfand
949e02b933
Define and use tr_socket_t and TR_BAD_SOCKET instead of int and -1.
...
Test socket validity by comparing to TR_BAD_SOCKET instead of various
(and sometimes wrong) other tests like `x >= 0`, `x != -1`, `x > 0`,
`x > -1`, `x` (valid), and `x < 0`, `x == -1` (invalid).
2015-03-18 07:34:26 +00:00
Jordan Lee
02cff80c2d
Copyedit the license's revised text: (1) remove unnecessary repitition use of the word 'license' from the top of the header and source files (2) add the standard 'we hope it's useful, but no warranty' clause to COPYING (3) make explicit that linking OpenSSL is allowed (see https://people.gnome.org/~markmc/openssl-and-the-gpl.html for background) (4) sync the Qt and GTK+ clients' license popups with COPYING's revised text
2014-01-21 03:10:30 +00:00
Jordan Lee
4b9626bb83
Licensing changes:
...
1. add the option the code to be used under GPLv2 or GPLv3; previously only GPLv2 was allowed
2. add the "proxy option" as described in GPLv3 so we can add future licenses without having to bulk-edit everything again :)
3. remove the awkward "exception for MIT code in Mac client" clause; it was unnecessary and confusing.
2014-01-19 01:09:44 +00:00
Jordan Lee
4904b923fb
(trunk) restore copyright year as suggested in email by rms
2014-01-18 20:56:57 +00:00
Jordan Lee
4c8bda8805
function pointer type correctness. mikedld
2013-09-08 17:08:18 +00:00
Jordan Lee
fe79ad39bc
add tr_sessionGetTorrents(), a private utility to avoid code duplication in libtransmission
2013-07-20 15:37:13 +00:00
Jordan Lee
fcdec9a8bc
(libT) don't start the web thread until we have a task to feed to curl
2013-02-15 01:52:47 +00:00
Jordan Lee
cd09204a6e
(trunk) first draft of changing the FreeSpace API to behave as https://trac.transmissionbt.com/ticket/4076#comment:25 -- libT, rpc, qt, and gtk implementations.
2013-02-09 04:05:03 +00:00
Jordan Lee
1f2bccd17b
(libT) recycle the peer id used for public torrents after N hours of use
2013-02-02 13:42:50 +00:00
Jordan Lee
aa8ddcb218
(libT) remove pointless tr_session.peer_id variable
2013-02-02 05:31:43 +00:00
Jordan Lee
8f918f1b79
(trunk, libT) #5199 'tr_sessionGetNextQueuedTorrent() can be faster' -- fix variablename typo introduced in r13709, reported by JJTagy
2012-12-28 23:44:59 +00:00
Jordan Lee
aa906ced75
(trunk, libT) #5199 'tr_sessionGetNextQueuedTorrent() can be faster' -- modify session.c's tr_sessionGetNextQueuedTorrents() and peer-mgr.c's getPeerCandidates() functions use the new tr_quickfindFirstK() utility"
2012-12-28 20:10:03 +00:00
Jordan Lee
29599b6926
oops, this should have been in the last commit. :/
2012-12-28 05:38:27 +00:00
Jordan Lee
4cbe6a64e1
(trunk, libT) #3833 'freespace' argument for 'session-get' RPC method -- apply taem's 0003-Cache-download-dir-s-block-device-and-FS-type.patch to cache the download dir's block device and FS type
2012-12-27 19:45:01 +00:00
Jordan Lee
e96ed247fe
refactor libtransmission's tr_benc class as tr_variant.
2012-12-14 04:34:42 +00:00
Jordan Lee
3d38723ad9
Follow more common whitespace style conventions in the C code (libtransmission, daemon, utils, cli, gtk).
2012-12-05 17:29:46 +00:00
Mitchell Livingston
e46309a0fa
#4201 Automatic limit can't be stopped
2012-09-18 00:58:10 +00:00
Jordan Lee
3398a48e57
(trunk libT) #4402 "Transmission Bandwidth allocation getting overflows" -- use gvdl's patch '4402-uint-bpsoverflow.patch'
2012-07-01 02:17:35 +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
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
3928a9d8e9
(trunk libT) #3219 "Don't scrape paused torrents" -- allow this as a 'hidden' option in settings.json, but don't add it to the GUI or to RPC.
2011-07-23 17:14:12 +00:00
Jordan Lee
35fb00fd9e
(trunk libt) #4315 "Transmission 2.31 crashes (segfaults) immediately after launch" -- remove the "max-open-files" code.
...
max-open-files might have been a nice configuration option once, but (1) we've never advertised it in the gui apps, and (2) the crazy cases are causing more trouble than this feature is worth. It's more complicated now after #4164 -- see #4294 , #4311 , and this ticket.
2011-06-24 22:39:20 +00:00
Jordan Lee
33eb6d3f9e
(trunk) #3817 remove OS proxy integration from the GTK+ client
2011-05-27 13:36:53 +00:00
Jordan Lee
01461d0b4a
(trunk gtk) more heap pruning:
...
querying gconf2 each time the curl callack function is called is expensive, so query it once -- then again later, if the proxy settings change -- and remember the values in a local struct.
2011-04-13 06:18:30 +00:00
Jordan Lee
525d854016
(trunk libT) when reading piece data in from a socket, avoid two unnecessary calls to memcpy()
2011-04-04 04:45:41 +00:00
Jordan Lee
e6c0bdef6a
(trunk libT) save 48 bytes per tr_torrent object. whoo!
2011-03-31 16:08:31 +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
b4d36aeb54
(trunk) #4138 "use stdbool.h instead of tr_bool" -- done.
2011-03-22 15:19:54 +00:00
Jordan Lee
bf4eb642dc
(trunk libT) remove dead code: tr_sessionSetLazyBitfieldEnabled(), tr_sessionIsLazyBitfieldEnabled()
2011-03-21 16:33:16 +00:00
Jordan Lee
78a4865aa1
(trunk libT) as a followup to r12182, move LPD's periodic upkeep timer into the tr-lpd.c module where it can be started & stopped with the pre-existing tr_lpdInit() and tr_lpdUninit() functions.
2011-03-17 13:16:23 +00:00
Jordan Lee
501f2e106f
(trunk libT) move tr_lpdAnnounceMore() out of the announcer module
...
We can stop local peer discovery immediately during shutdown, but need to leave the announcer running for the event=stopped messages. So it doesn't make sense to keep them on the same periodic timer.
2011-03-17 12:45:29 +00:00
Jordan Lee
3cfef5eded
(trunk libT) #117 "UDP tracker protocol support" -- working implementation; needs testing and valgrinding and review.
2011-03-13 00:18:11 +00:00