Go to file
Charles Kerr 309d97c578
fix: Coverity warnings (#842)
* Silence coverity CHECKED_RETURN on added.f load

The existing code behaved alright since added.f is optional.
However, by testing for success we can both silence the warning
and prevent a useless initialization of NULL/0 to added_f and
added_f_length.

* Silence coverity CHECKED_RETURN on added6.f load

ipv6 variant of previous commit.

* Silence coverity CHECKED_RETURN writing benc strs

saveStringFunc() gets the target string by calling tr_variantGetStr().
It previously didn't check to see if this function succeeded because
saveStringFunc() isn't reached without the type already being known.
However, checking the return value costs nothing and makes Coverity happy.

* Silence coverity CHECKED_RETURN on ut metadata

Like earlier few Coverity commits in this PR, we're handling optional
values by declaring stack locals set to the default (e.g. -1) and then
trying to read the variant.

Unlike the earlier commits, there is a two-part step to thise read:
checking for the metadata, then checking for the individual fields.
The earlier fixes' aproach -- e.g. initializing to -1 only if the reads
failed -- would involve new nested conditionals. I find the new complexity
to outweigh the benefit of removing the dead store, so in this case I'm
casting the return value to `(void)` to tell Coverity to shush.

* Silence coverity CHECKED_RETURN on scrape

Check the return value of tr_variantGetInt() when showing
seeder and leecher counts in transmission-show.

* Silence CHECKED_RETURN on rpc recently-active

When building a list of removed torrent IDs from variants, confirm that
we can read the IDs from the variants before adding them to the list.
I don't _think_ this would have failed before, but Coverity's right that
it's reasonable to add a safeguard here.

* fix: better fix to serializing benc strings

The approach in 33e2ece7e5 was
a little problematic: GetString() shouldn't fail here; but if
it somehow did, we still want to encode a zero-length benc string here.

* chore: make uncrustify happy
2019-02-18 22:38:24 +00:00
.tx Add Mac client translations to and downsync from Transifex 2017-01-28 13:44:15 +03:00
Transmission.xcodeproj Fix QuickLookPlugin reference path to be relative to group 2019-02-03 10:49:06 +08:00
cli Update to Uncrustify 0.68.1 2019-02-15 09:21:48 +03:00
cmake Updated copyright strings to 2019 2019-01-11 19:36:19 +01:00
daemon Update to Uncrustify 0.68.1 2019-02-15 09:21:48 +03:00
dist/msi Use `magick convert` instead of `convert` 2018-01-26 07:56:11 +03:00
extras Add labels feature (#822) 2019-02-17 04:33:57 -05:00
gtk Update to Uncrustify 0.68.1 2019-02-15 09:21:48 +03:00
libtransmission fix: Coverity warnings (#842) 2019-02-18 22:38:24 +00:00
m4 Work around "error: m4_copy: won't overwrite defined macro: glib_DEFUN" on 2017-03-12 06:20:14 +01:00
macosx Fixup some formatting leftovers 2019-02-16 10:50:37 +03:00
po gtk: move Tamil translation to the correct language code 2017-05-20 00:55:49 +03:00
qt Update to Uncrustify 0.68.1 2019-02-15 09:21:48 +03:00
third-party Update DHT library to 0.25 2018-02-10 11:35:14 +03:00
utils fix: Coverity warnings (#842) 2019-02-18 22:38:24 +00:00
web Fixup some formatting leftovers (JS) 2019-02-17 17:51:13 +03:00
.gitignore
.gitmodules Update DHT library to 0.25 2018-02-10 11:35:14 +03:00
.jsbeautifyrc Fixup some formatting leftovers (JS) 2019-02-17 17:51:13 +03:00
AUTHORS Add myself to the list of Transmission authors 2017-01-15 01:38:45 +03:00
CMakeLists.txt Merge branch '2.9x' 2018-05-01 22:44:51 +03:00
COPYING Updated copyright strings to 2019 2019-01-11 19:36:19 +01:00
ChangeLog
Makefile.am Adjust autotools files to use submodules 2017-01-02 02:26:02 +03:00
NEWS add Sparkle update to NEWS 2018-12-24 19:00:29 -05:00
README.md Update README with missing 'cd build' command 2018-07-28 15:38:25 -07:00
autogen.sh Refactor shell scripts with syntax and styling fixes 2019-01-16 03:22:29 +08:00
configure.ac Merge branch '2.9x' 2018-05-01 22:44:51 +03:00
transmission-gtk.spec.in Update all website links to canonical HTTPS version. 2016-10-31 10:00:11 +01:00
uncrustify.cfg Update to Uncrustify 0.68.1 2019-02-15 09:21:48 +03:00
update-version-h.sh Refactor shell scripts with syntax and styling fixes 2019-01-16 03:22:29 +08:00

README.md

About

Transmission is a fast, easy, and free BitTorrent client. It comes in several flavors:

  • A native Mac OS X GUI application
  • GTK+ and Qt GUI applications for Linux, BSD, etc.
  • A headless daemon for servers and routers
  • A web UI for remote controlling any of the above

Visit https://transmissionbt.com/ for more information.

Command line interface notes

Transmission is fully supported in transmission-remote, the preferred cli client.

Three standalone tools to examine, create, and edit .torrent files exist: transmission-show, transmission-create, and transmission-edit, respectively.

Prior to development of transmission-remote, the standalone client transmission-cli was created. Limited to a single torrent at a time, transmission-cli is deprecated and exists primarily to support older hardware dependent upon it. In almost all instances, transmission-remote should be used instead.

Different distributions may choose to package any or all of these tools in one or more separate packages.

Building

Transmission has an Xcode project file (Transmission.xcodeproj) for building in Xcode.

For a more detailed description, and dependencies, visit: https://github.com/transmission/transmission/wiki

Building a Transmission release from the command line

$ tar xf transmission-2.92.tar.xz
$ cd transmission-2.92
$ mkdir build
$ cd build
$ cmake ..
$ make
$ sudo make install

Building Transmission from the nightly builds

Download a tarball from https://build.transmissionbt.com/job/trunk-linux/ and follow the steps from the previous section.

If you're new to building programs from source code, this is typically easier than building from Git.

Building Transmission from Git (first time)

$ git clone https://github.com/transmission/transmission Transmission
$ cd Transmission
$ git submodule update --init
$ mkdir build
$ cd build
$ cmake ..
$ make
$ sudo make install

Building Transmission from Git (updating)

$ cd Transmission/build
$ make clean
$ git pull --rebase --prune
$ git submodule update
$ cmake ..
$ make
$ sudo make install