Charles Kerr
6383e2ff5f
feat: support dscp classes in socket iptos ( #2594 )
...
* refactor: Replace ToS with DSCP
IP TOS was superseded by DSCP in RFC 2474.
Co-authored-by: dgcampea <dgcampea@outlook.com>
2022-02-10 15:35:28 -06:00
vuori
a89b98f9e5
Fixed wrong ipv6 addr used in announces. ( #265 )
2022-01-20 15:28:04 -06:00
Charles Kerr
df1cca9b57
chore: update copyright years, make notices consistent ( #2463 )
2022-01-20 12:27:56 -06:00
Charles Kerr
42b1362760
refactor: tidy libtransmission includes ( #2316 )
2021-12-15 15:25:42 -06:00
Charles Kerr
da142f400e
refactor: tr_address_from_string is now std::string_view-friendly ( #2176 )
2021-11-15 17:03:55 -06:00
Charles Kerr
83f21b8e0e
refactor: prefer constexpr functions over static inline ones ( #1887 )
...
* refactor: prefer constexpr functions over static inline ones
2021-10-06 17:24:04 -05:00
Charles Kerr
cc204e0b2c
refactor: prefer "using" over "typedef" ( #1883 )
...
* refactor: prefer "using" over "typedef"
2021-10-06 09:26:07 -05:00
Charles Kerr
17ee032dd8
refactor: remove TR_BEGIN_DECLS, TR_END_DECLS ( #1837 )
...
* refactor: remove TR_BEGIN_DECLS, TR_END_DECLS
2021-09-25 11:07:22 -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
Mike Gelfand
db3d40d0ed
Switch to clang-format for code formatting, include Mac client
2021-08-16 00:38:29 +03:00
Charles Kerr
a4dd67ae45
chore: fix some fixmes ( #1449 )
...
* chore: remove assertions that were flagged for removal
* chore: remove unneeded check
* refactor: move tr_peerIoAddrStr to net.h
* refactor: formatter API now takes size_t args
* chore: remove out-of-date FIXME comment
* refactor: cleanup logging win32 ifdefs
2020-09-13 16:43:29 -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
Mingye Wang
bcf8128400
Unify/Modernize TOS to DSCP standards ( #737 )
...
* Unify/Modernize TOS to DSCP standards
The set of pre-named TOS values are now renamed to the latest DSCP
standards, with traffic classes and everything exciting. To keep
everything in the same place, a segment has been added to net.h to keep
the currently named values.
A result of these changes is that "lowcost" is probably no longer
harmless, as it now encourages the router to preferentially drop the
packages when bandwidth requires so. "lowdelay" is assigned to a pretty
high AF class for SIP and stuff. I am not sure at all about the
"throughput" assignment. I mean, the whole point of DSCP-fication is
translating from the old ToS bits to a more precedence-based notation,
and precedence is supposed to lie beside the old 4 ToS bits...
A funny interaction between the AFxy and the old ToS fields lies in
the old "reliability" (0x08) field. All odd numbers of y (1, 3 : low,
high) switches it on. If you spend 5 more minutes on it you can probably
come up with "pun" values that hold similar meanings in DSCP and
Prec/ToS.
By removing the IPv6 override, I should have kind of satisfied the #692
request.
Fixes : #692
2019-07-21 14:09:04 +03:00
Mike Gelfand
5b29fe1556
Ensure include guard is the first non-comment line
2017-11-14 23:21:28 +03:00
clyang
81c9653383
Improve ToS on IPv6 connections
2017-08-03 06:30:54 +03:00
Mike Gelfand
18aabdeb06
Introduce peer socket struct to improve readability
2017-06-28 18:50:05 +03:00
Mike Gelfand
74548e01b6
Remove obsolete comment as we're using C99 now
2017-06-28 18:50:05 +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
1cc67b31dd
Use PRIdMAX instead of TR_PRI_SOCK to accomodate intltool
2017-01-27 04:50:14 +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
0420699ad6
Initialise networking in daemon before making libevent calls
2015-10-11 16:35:51 +00:00
Mike Gelfand
6c04259c39
Remove useless ws2tcpip.h include in net.h
...
It's already included above, and QT_DLL condition is meaningless
since net.h is only being used inside libtransmission which doesn't
use Qt.
2015-05-30 15:44:17 +00:00
Mike Gelfand
e0dc1d6735
Fix some issues revealed by coverity
2015-05-09 14:10:55 +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
Mike Gelfand
440f482d01
Replace tabs with spaces; remove trailing spaces
2015-01-02 11:15:31 +00:00
Mike Gelfand
52a9d774e4
Fix compilation on Windows
...
This should not affect non-Win32 platforms in any way.
As for Win32 (both MinGW and MSVC), this should hopefully allow for
unpatched compilation. Correct functioning is not yet guaranteed though.
2014-12-13 15:22:39 +00:00
Mitchell Livingston
0e01879974
Use built-in _WIN32 macro instead of WIN32
2014-07-04 00:00:07 +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
Jordan Lee
1b825079be
(trunk libT) API cleanup of the tr_address functions to make them more consistent.
...
This is loosely related to #2910 , but only in the sense of laying the groundwork for #2910 's fix...
2011-03-25 05:34:26 +00:00
Jordan Lee
87ef45cf3d
(trunk libT) copyediting: remove a bunch of seemingly-unneeded network headers in net.[ch].
...
I'm less certain that these are unneeded because networking APIs seem to have more variation between platforms, but it's better to remove the cruft and then add back whatever headers $PLATFORM users complain about, than to not remove the cruft at all...
2011-03-24 22:57:39 +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
4a4842fea5
(trunk libT) use libevent2's portability wrappers for inet_ntop() and inet_pton().
...
We currently implement our own versions of these on mingw because that platform doesn't have them... but why reinvent the wheel; libevent has already done the same thing. Let's use libevent2's implementation.
has already done it for us.
2011-03-13 08:15:40 +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
3fdd80eb0d
(trunk libT) new function: tr_ssToAddr()
...
This handles converting the data in a sockaddr_storage to a tr_address + port, and removes redundant code from fdlimit.c and tr-udp.c that previously did this work.
2011-03-04 21:00:52 +00:00
Juliusz Chroboczek
e7fc697c90
Stub out UTP_Create in non-uTP builds.
2011-02-18 16:01:52 +00:00
Jordan Lee
cd04051de8
add configure script switch to enable/disable utp
2011-02-18 00:45:44 +00:00
Juliusz Chroboczek
88f4eac81f
Implement outgoing uTP connections.
2011-02-18 00:36:19 +00:00
Jordan Lee
879a2afcbd
Update the copyright year in the source code comments.
...
The Berne Convention says that the copyright year is moot, so instead of adding another year to each file as in previous years, I've removed the year altogether from the source code comments in libtransmission, gtk, qt, utils, daemon, and cli.
Juliusz's copyright notice in tr-dht and Johannes' copyright notice in tr-lpd have been left alone; it didn't seem appropriate to modify them.
2011-01-19 13:48:47 +00:00
Charles Kerr
954a309d8f
(trunk) #3311 "MingW build of Transmission" -- apply more of rb07's diffs, though edited to lessen the inevitable #ifdefs
2010-06-30 21:24:36 +00:00
Charles Kerr
98cec85e46
(trunk libT) #3311 "MingW build of Transmission" -- apply further win32 diffs from rb07
2010-06-25 20:36:10 +00:00
Charles Kerr
5ad7ed550f
(trunk) more win32 fixes from rb07 in #3311
2010-06-22 00:12:52 +00:00
Charles Kerr
00f452d942
(trunk libT) #3162 "allow optional end-user configuration of TCP_CONGESTION" -- add jch's implementation of this to trunk for 2.00
2010-04-22 01:49:16 +00:00
Charles Kerr
ea36b9b888
(trunk libT) make "tr_globalAddress" a private function
2010-01-25 07:35:38 +00:00
Charles Kerr
6b8fb48d64
(trunk libT) replace the TR_INLINE macro with the standard "inline" keyword, since we require inline functions anyway
2010-01-01 22:26:35 +00:00
Charles Kerr
f4c744266f
(trunk libT) #2667 "ignore martian addresses" -- modified this ticket. previously we ignored them from LTEP; now we ignore them regardless of the source. this commit implements this filtering change.
2009-12-15 17:39:19 +00:00
Charles Kerr
3fe5db7113
(trunk libT) #2667 "Ignore martian addresses in LTEP messages" -- implemented for 1.80
2009-12-14 02:07:47 +00:00
Charles Kerr
6eec59008c
(trunk libT) experimental: Reduce SO_SNDBUF and SO_RCVBUF for tracker announce/scrape messages. Reduce SO_RCVBUF for outgoing peer connections on seeding torrents.
2009-12-02 05:30:46 +00:00
Charles Kerr
44df1d5548
(trunk libT) #2112 : provide "ipv6=" parameter to trackers
2009-11-10 17:03:23 +00:00
Charles Kerr
225384fcc5
(trunk libT) #2502 : announce own IPv6 address to peers
2009-11-09 05:45:16 +00:00
Charles Kerr
858e691381
(trunk libT) add a wrapper function, tr_netCloseSocket(), around EVUTIL_CLOSESOCKET() so that not all of our code has to #include evutil
2009-10-27 20:27:27 +00:00
Charles Kerr
c85ee09fef
(trunk) trunk's just been too stable lately. #2119 : reload settings.json on SIGHUP
2009-10-23 03:41:36 +00:00
Charles Kerr
da42fe8a7c
(trunk libT) #2035 : Transmission causes wakeups by unnecessary polling.
2009-05-14 13:42:29 +00:00
Erick Turnquist
2719372bc6
(trunk) #1497 Options to listen on specific network sockets
2009-04-15 21:05:58 +00:00
Erick Turnquist
2f8d56e77f
(trunk libT) make IPv6's two IPv4-compatible address formats invalid peer addresses
...
IPv4 peers should only be seen from an IPv4-connected tracker.
2009-03-27 01:31:17 +00:00
Erick Turnquist
dd7eb76718
(trunk libT) remove tr_suspectAddress() since all seems well
2009-03-27 01:14:25 +00:00
Erick Turnquist
94b98030cb
(trunk libT) stop using ipv4-mapped listener sockets. this should have the added effect of fixing #1789
2009-02-07 00:34:10 +00:00
Charles Kerr
9c9c94a81d
(trunk libT) discard peers from the tracker or pex that have a port of 0 or a multicast address.
2009-01-17 23:14:35 +00:00
Charles Kerr
2f6b56671f
(trunk libT) win32 portability patch from Alexey
2009-01-11 17:02:04 +00:00
Charles Kerr
c6a454d2e2
(trunk libT) win32 portability fixes, reported by Alexey
2009-01-10 02:22:13 +00:00
Charles Kerr
5e806dc816
* add autoconf test AC_C_INLINE to do the Right Thing for "inline", "__inline__", and "__inline".
...
* make tr_isAddress(), tr_isDirection(), and a bunch of the tr_torrent() macro functions into true inline functions
2009-01-02 05:11:50 +00:00
Charles Kerr
0cd572a0da
(trunk libT) make tr_isAddress() and tr_isDirection() inline
2009-01-02 04:47:37 +00:00
Charles Kerr
55f263312f
(trunk) patch from wereHamster to finish off tr_handle
2008-12-22 19:14:43 +00:00
Erick Turnquist
38efb62100
add some debugging stuff to track down where some bogus addresses are coming from
2008-12-21 19:13:52 +00:00
Erick Turnquist
72ee19dcca
(trunk libT) Refactor ipv6 bind socket check
...
This will let the RPC server use the same test mechanism eventually. Networking code belongs in net.c anyway.
2008-12-18 05:55:22 +00:00
Erick Turnquist
be4dc0d674
(trunk libT) use an enum tr_address_type instead of uint8_t for tr_address.type
2008-12-17 01:39:24 +00:00
Charles Kerr
de5228c415
(trunk libT) more runtime safety checks
2008-12-16 21:06:47 +00:00
Charles Kerr
54be88dec3
(trunk libT) add ipv6 support by jhujhiti. I think this is the largest user-contributed patch we've ever used... thanks jhujhiti :)
2008-12-15 00:17:08 +00:00
Mitchell Livingston
31482813b9
BeOS and Amiga support is, at least for now, a lost cause and hasn't worked for long over a year - removing from the source (if you for whatever unknown reason still need this, get it through SVN)
2008-12-02 03:57:01 +00:00
Charles Kerr
0d5fed6442
(libT) re-apply jhujhiti's IPv6 patch. This merges in my tr_port cleanup, so any new bugs are mine :/
2008-12-02 03:41:58 +00:00
Charles Kerr
a14621c363
(libT) janitorial: use the tr_port type whenever we have a `port' as a function argument or as a field in a struct.
2008-12-01 20:51:01 +00:00
Charles Kerr
7fa9813955
(libT) #252 : revert r7195 (jhujhiti's IPv6 test patch). It seems to be the culprit in a `thrashing' issue reported by Waldorf and m1b in irc -- the behavior appeared between r7183 and r7187 -- so this commit is to trigger off a nightly build w/o the patch to test with in irc.
2008-12-01 20:21:06 +00:00
Charles Kerr
a2ad4f6543
(libT) patch from jhujhiti to add ipv6 support.
2008-11-30 00:47:18 +00:00
Charles Kerr
a1cd6d85dc
(libT) add #ifdefs to ensure that client apps don't #include private libtransmission headers.
2008-11-24 20:17:36 +00:00
Charles Kerr
853a67fbfc
(libT) define peer connections' sockets' so_sndbuf size in the tr_session struct.
2008-11-21 16:32:55 +00:00
Charles Kerr
67282cb794
further win32 portability fixes from Spry
2008-10-19 17:43:04 +00:00
Charles Kerr
b5c2f14387
(libT) dead code removal
2008-10-14 20:44:41 +00:00
Charles Kerr
cc89872dd4
run libT, cli, daemon, gtk through the source-code formatter "uncrustify" as promised/threatened
2008-09-23 19:11:04 +00:00
Charles Kerr
e6070f04f2
remove more dead code
2008-05-28 16:56:38 +00:00
Charles Kerr
cd6ef35854
(libT) remove dead code
2008-05-28 16:52:31 +00:00
Charles Kerr
57c7fcb507
#857 : DSCP support for Transmission
2008-04-12 00:29:49 +00:00
Charles Kerr
e61af54481
#837 : portability patch submitted by naddy
2008-04-04 01:21:36 +00:00
Charles Kerr
ce6c33b7bf
set copyright info to 2008
2008-01-01 17:20:20 +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
14d8abb323
maybe fix portmapping
2007-11-05 03:56:54 +00:00
Charles Kerr
8c0e2434f5
fix OpenBSD build error.
2007-10-25 13:59:46 +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
b79d325cd5
use inttypes.h instead of stdint.h
2007-08-04 01:34:00 +00:00
Josh Elsasser
2ead51f79d
Use __BEOS__ to test for beos instead of relying on the build to set SYS_BEOS.
...
Add missing headers and other miscellaneous fixes for beos.
2007-08-04 01:17:39 +00:00
Josh Elsasser
b46052826c
Include inttypes.h instead of stdint.h to unbreak beos.
...
Hopefully this won't break anything.
2007-08-04 00:43:47 +00:00
Charles Kerr
1fd5f90a77
win32 cleanly compiles and starts now. (still doesn't atually *work*, but we're getting closer...)
2007-08-02 19:43:29 +00:00
Charles Kerr
8aebe31de1
tr_trackerCanManualAnnounce() should return false immediately after the user's manually announced; not just after the announce request is processed by the tracker
2007-08-01 13:33:01 +00:00
Charles Kerr
26caf4f5dd
More Win32 portability changes
2007-08-01 00:40:49 +00:00
Charles Kerr
ba3dc008fc
get the socket/net code working on win32 too
2007-07-31 16:55:47 +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
ebb141b232
better encapsulation of platform-specific constructs: tr_thread_t, tr_cond_t, tr_lock_t
2007-07-30 15:27:52 +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