Charles Kerr [Sat, 16 Feb 2019 20:19:38 +0000 (15:19 -0500)]
feat: make multiscrape limits adaptive (#837)
* feat: make multiscrape limits adaptive
Previously hardcoded by TR_MULTISCRAPE_MAX. This change makes
that the initial value, then incrementally lowers the value
when multiscrapes get "req too long" style errors.
* fix: don't log personal announce url
* chore: treat HTTP 400 as scrape-too-long
* chore: copyediting
* chore: copyediting
* move 'const' to the right of the type
* make conditional tests explicitly boolean
* make 'key' const
* don't lookup a value we already have
* make an array for known too-big scrape error messages
* improved multiscrape throttle logging
* fix: multiscraping of low numbers of torrents
Handle the case of getting a 'multiscrape too big' error message
back even if the user fewer than TR_MULTISCRAPE_MAX torrents.
* uncrustify
* fix oops
* refactor: remove TR_MULTISCRAPE_MIN
Is there any reason to have a minimum batch size?
* make test explicit boolean
Co-Authored-By: ckerr <ckerr@github.com>
* improve declaration of too_long_errors
Co-Authored-By: ckerr <ckerr@github.com>
* make test explicitly boolean
Co-Authored-By: ckerr <ckerr@github.com>
* make test explicitly boolean
Co-Authored-By: ckerr <ckerr@github.com>
* improve looping decl of too_long_errors
Charles Kerr [Sat, 2 Feb 2019 03:59:17 +0000 (21:59 -0600)]
fix: update the resume file before running scripts
This is useful if the client script is going to access
the .resume file. Ensuring an up-to-date .resume file
means that user scripts will be able to access it.
Mingye Wang [Sat, 13 Oct 2018 21:20:40 +0000 (17:20 -0400)]
Support CIDR-notated blocklists
This commit adds a new blocklist line format, namely individual IPv4
CIDR ranges separated by newlines. Text put after each entry is ignored
by sscanf, so feel free to put any kind of comments there.
Mike Gelfand [Sun, 30 Sep 2018 10:37:30 +0000 (13:37 +0300)]
Fix build with Xcode 10
For some reason, Mac client is the only project that references
libtransmission files as if they were a part of its own project, and
inconsistently so. Make the include/import style uniform an in line with
other projects.
Adjust Mac client include directory settings a bit along the way.
Mike Gelfand [Thu, 22 Feb 2018 22:27:31 +0000 (01:27 +0300)]
Tracker error XSS in inspector (web client)
Tracker error messages are inadequately output encoded when rendered by the
tracker information page inside the WebUI, allowing a malicious tracker to
inject an XSS payload into the page. Esploiting this issue allows an
attacker to supply arbitrary client-side code that will ultimately be
rendered and executed within the end user's web browser.
Found by Rory McNamara (Gotham Digital Science). CVE pending.
Mike Gelfand [Tue, 17 Apr 2018 09:16:18 +0000 (12:16 +0300)]
Adjust CFBundleVersion format to fix Sparkle update check
Set the first version component to be the same as the last Subversion-based
release build version and add two more components (major and minor version
numbers). To allow for nightly build updates this should probably include
another component (e.g. build timestamp), but we're not there yet.
Mike Gelfand [Sat, 3 Feb 2018 19:36:54 +0000 (22:36 +0300)]
Fix progress bar width with Breeze style (Qt client)
In compact torrents view, use BAR_WIDTH as groove area width instead of
total progress bar width, to improve the appearance in case progress text
is drawn outside of the groove area (because of style settings).
dubhater [Tue, 30 Jan 2018 21:44:12 +0000 (23:44 +0200)]
Qt: Fix assert with one-letter root folder names
An assertion failure happens shortly after opening the
"Torrent properties" dialog if the torrent's root folder has
a one-letter name, e. g.
A/
A/Some Linux distro.iso
A/Some other Linux distro.iso
Off by one errors are great, eh?
This fixes https://trac.transmissionbt.com/ticket/6141
Mike Gelfand [Fri, 26 Jan 2018 04:56:11 +0000 (07:56 +0300)]
Use `magick convert` instead of `convert`
This adjusts to the new ImageMagick command naming (way to go,
GraphicsMagick had this from the beginning) and avoids confusion with
same-named windows utility which serves completely different purpose.
Mike Gelfand [Wed, 24 Jan 2018 20:10:21 +0000 (23:10 +0300)]
Fix UNC paths resolution on Windows
While resolved paths always contain the `\\?\` prefix, it's not always
correct to strip only those 4 chars. In case of UNC paths, the prefix
is actually a bit longer (`\\?\UNC\`) and needs to be replaced with `\\`
instead.
Failing to do so results in invalid paths, e.g. `\\Host\Share\File` becomes
`UNC\Host\Share\File` which totally wrong.
Mike Gelfand [Wed, 24 Jan 2018 20:06:21 +0000 (23:06 +0300)]
Add unit tests uncovering improper UNC paths resolution
While resolved paths always contain the `\\?\` prefix, it's not always
correct to strip only those 4 chars. In case of UNC paths, the prefix
is actually a bit longer (`\\?\UNC\`) and needs to be replaced with `\\`
instead.
Failing to do so results in invalid paths, e.g. `\\Host\Share\File` becomes
`UNC\Host\Share\File` which totally wrong.
Mike Gelfand [Sat, 14 Jan 2017 21:54:56 +0000 (00:54 +0300)]
Improve version.h file generation
Store full revision hash in REVISION file. Write fixes 10 chars of revision
hash to version.h. Use `#pragma once` in version.h. Support getting revision
from TeamCity environment variable (similar to Jenkins).