Commit Graph

6147 Commits

Author SHA1 Message Date
Robert Adam
33ccf4177a BUILD(client): Fix warning about unused variable
When building on a Mac -Doverlay=OFF, the compiler would produce a
warning about an unused variable in the macOS shortcut implementation.

This commit silences the warning, by explicitly marking the variable in
question as unused.

Fixes #5636
2022-04-26 12:07:55 +02:00
Robert Adam
06f94b4736 FIX(server): Crash due to dereferencing invalid iterator
1d45d991aa refactored the audio processing
on the server and introduced the new AudioReceiverBuffer class. In the
function that is responsible for obtaining the current range of
receivers that shall obtain the identical audio packet, the passed begin
iterator was always dereferenced. However, in the case in which the
receiver list is actually empty begin == end and therefore dereferencing
the begin iterator is undefined behavior.

This could lead to the entire server crashing (or could work just fine -
UB is great at this) but in any case, this is a severe problem.

The fix consists of a simple check for this specific situation and an
early return in that case.

Co-Authored-By: Irak Rigia <tarakrigia@gmail.com>
2022-04-18 12:18:37 +02:00
Robert Adam
0c2e398f39
Merge PR #5604: BUILD(client,server): Fix warning for always true assert 2022-04-10 09:37:47 +02:00
ProjectPatatoe
06d43af6f4 BUILD(client,server): Fix warning for always true assert
Received compiler warning of an assert that is always true.
The assert checked if variable is negative but it is an unsigned variable.
Just check if positive.
2022-04-10 08:57:08 +02:00
Robert Adam
76aab90a9b
Merge PR #5620: CHANGE(client): Make https default link protocol
Having plain http as the default means that a site, even though able to support https, will be able to fall back to using the insecure and outdated protocol.

Furthermore, major browsers already support https by default, falling back to legacy http in the cases where a website does not support https connections, e.g. Chromium, Firefox.

Therefore, this commit makes it so that a link without a protocol specification will have https:// prefixed to be clickable instead of http://.
2022-04-09 21:08:57 +02:00
Robert Adam
0e321ebc15
Merge PR #5619: FIX(client): resolve list tags, etc. polluting log
As reported in #4491, #4986 and #5430, since the changes to the chat in
the 1.4.x release, some tags would "pollute" the rest of the log, i.e.
cause future log entries to be contained within them.

The source of the issue seems to be that the insertBlock method of
QTextCursor appears to correspond to the <p> HTML tag. The <p> tag
may only contain inline elements, but QTextEdit will not fail outright
when inserting block-level elements and will instead attempt to correct
the invalid input which results in the behaviour reported in the above
issues (as far as I can tell).

The proposed solution is to use the insertFrame method for all
messages.

Fixes #4491
2022-04-09 19:10:54 +02:00
mataha
abbf37435e
CHANGE(client): Make https default link protocol
Having plain http as the default means that a site, even though able to support
https, will be able to fall back to using the insecure and outdated protocol.

Furthermore, major browsers already support https by default, falling back to
legacy http in the cases where a website does not support https connections,
e.g. [Chromium](https://blog.chromium.org/2021/03/a-safer-default-for-navigation-https.html),
[Firefox](https://blog.mozilla.org/security/2021/08/10/firefox-91-introduces-https-by-default-in-private-browsing/).

Therefore, this commit makes it so that a link without a protocol specification
will have `https://` prefixed to be clickable instead of `http://`.

Signed-off-by: mataha <mataha@users.noreply.github.com>
2022-04-09 18:22:39 +02:00
Dexter Gaon-Shatford
ae097d6354 FIX(client): resolve list tags, etc. polluting log
As reported in #4491, #4986 and #5430, since the changes to the chat in
the 1.4.x release, some tags would "pollute" the rest of the log, i.e.
cause future log entries to be contained within them.

The source of the issue seems to be that the `insertBlock` method of
`QTextCursor` appears to correspond to the `<p>` HTML tag. The `<p>` tag
may only contain inline elements, but `QTextEdit` will not fail outright
when inserting block-level elements and will instead attempt to correct
the invalid input which results in the behaviour reported in the above
issues (as far as I can tell).

My proposed solution is to use the `insertFrame` method for all
messages.

Fixes #4491
2022-04-08 15:31:42 -04:00
Carl George
fefdd79ebc BUILD(cmake): Find and link Poco::XML
Without this, building against the latest poco snapshot results in
errors like:

/usr/bin/ld: /builddir/build/BUILD/mumble-1.4.230.src/src/mumble/PluginManifest.cpp:72: undefined reference to `typeinfo for Poco::XML::Element'
2022-04-06 13:40:35 -05:00
Robert Adam
ce36c4a060
Merge PR #5589: TRANSLATION(client): Corrected spacing for line-shift and wrap 2022-03-31 16:00:30 +02:00
Robert Adam
928513d689 REFAC: Consistently format constexpr VAR_NAMES 2022-03-27 09:49:59 +02:00
Robert Adam
8186d1d310 BUILD: Allow to prefer system GSL-installation over bundled one 2022-03-27 09:49:59 +02:00
Robert Adam
c21e16c25c FEAT: Add profiling support for audio processing
This should allow to get detailed insights into the audio processing
performance when using the Tracy profiler.
2022-03-27 09:49:59 +02:00
Robert Adam
7d4dcd168d REFAC(server): Removed dead code msgUDPTunnel
This message type is explicitly handled before calling into the
different msg* implementations. Therefore, msgUDPTunnel could never be
called in the current state of the code base.

However, we can't remove the implementation completely, because of the
macro voodoo that is used to declare and switch over the different
message types (we can't remove the entry from the macro, since in there
we still need it for defining the respective enum entry).
2022-03-27 09:49:59 +02:00
Robert Adam
1017dab5c2 CHANGE(server): Enforce Opus by default
Previously the opusthreshold config option had a default value of 100
meaning that the first non-Opus client would cause everyone to fall back
to one of the legacy codecs.

Since Opus has been implemented for ages now and we eventually want to
get rid of the legacy codecs, this commit changes the default value of
this config option to be zero, meaning that the server will always
enforce the use of the Opus codec (regardless of what clients are
connected).
2022-03-27 09:49:59 +02:00
Robert Adam
1d45d991aa CHANGE: Use Protobuf for UDP messages
Previously Mumble was using a custom binary format for transmitting data
via UDP (mainly audio). This has worked for a long time but besides
being inconvenient for 3rdParty implementors (they had to manually
re-implement encoding and decoding support for this format) this format
was not very flexible and changes to the data format were very hard.

In order to improve on this situation, this commit introduces changes
that allow to use Protobuf for the UDP messages as well (it's already
used for TCP). With that it should be relatively easy to extend/change
the UDP packet formats in the future and 3rdParty implementors can now
simply use Protobuf to handle decoding/encoding packets for them (much
less work and much less prone to errors).

Since the new Protobuf format is incompatible with the old UDP format,
this commit also includes support for dealing with older clients or
servers that don't recognize the new protocol yet. That way the new
protocol format is only used if both the client and the server are
recent enough to have it implemented (assumed to be the case >=1.5.0).

Note also that the server will make sure that clients using the old and
the new format can seamlessly communicate with one another.

Therefore, on the surface it should not be noticeable to the user which
protocol is currently used.

Note also that the new protocol format only supports Opus as an audio
codec. If one of the legacy codecs is to be used, the legacy packet
format has to be used as well. However, all codecs except for Opus will
be removed from Mumble in the future anyway.

Fixes #4350
2022-03-27 09:49:58 +02:00
Robert Adam
f97824e8bb TRANSLATION: Update translation files 2022-03-26 14:58:27 +01:00
Allan Nordhøy
7e5c6b5226 TRANSLATION(client): Corrected spacing for line-shift and wrap
Co-Authored-By: Allan Nordhøy <epost@anotheragency.no>
2022-03-26 14:58:10 +01:00
Robert Adam
06b5653099 REFAC: Add constant for unknown versions 2022-03-22 18:28:26 +01:00
Robert Adam
c354134506 REFAC(client): Use std::array 2022-03-22 18:28:26 +01:00
Robert Adam
be41c0b921 CHANGE(client): Display lost packages instead of received ones
In the server browser, the tooltip for the different entries shows the
packet loss. It is displayed as a percentage and as a x/y stat. The
latter currently displays <received>/<sent> which is very confusing,
given that the title for that row is "Packet loss" implying x would
describe the lost packages instead of the received ones.

Thus this commit changes this to the expected behavior. Furthermore it
makes sure that <lost> is always <= <sent>.
2022-03-22 18:28:26 +01:00
Robert Adam
b681d4d033 REFAC(client): Prefer std::min over qmin 2022-03-22 18:28:26 +01:00
Robert Adam
03a4c6706f REFAC: Make raw-version functions constexpr
The manipulation of raw version specifiers was turned into constexpr
functions, in order for them to be usable in constexpr expressions.
2022-03-22 18:28:26 +01:00
Robert Adam
7cba382841 REFAC: Introduce typedef for raw version
Besides the typedef that is meant to be used in code, there is also one
that encodes a type of the exact size (32bit) a raw version is expected
to have.
2022-03-22 18:28:26 +01:00
Robert Adam
ee195f1247 TRANSLATION: Update translation files 2022-03-21 12:37:20 +01:00
Hosted Weblate
d70d6209d6 TRANSLATION: Update German translation
Currently translated at 100.0% (2088 of 2088 strings)

TRANSLATION: Update German translation

Currently translated at 100.0% (2086 of 2086 strings)

TRANSLATION: Update German translation

Currently translated at 100.0% (2080 of 2080 strings)

TRANSLATION: Update German translation

Currently translated at 100.0% (2080 of 2080 strings)

TRANSLATION: Update German translation

Currently translated at 99.9% (2079 of 2080 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Robert Adam <dev@robert-adam.de>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/de/
Translation: Mumble/Mumble Client
2022-03-21 12:33:50 +01:00
Hosted Weblate
57f188bf82 TRANSLATION: Update Finnish translation
Currently translated at 100.0% (2080 of 2080 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: janne ojanperä <janne.ojanpera@iki.fi>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/fi/
Translation: Mumble/Mumble Client
2022-03-21 12:33:50 +01:00
Hosted Weblate
43c31b14a3 TRANSLATION: Update Catalan translation
Currently translated at 12.7% (267 of 2086 strings)

TRANSLATION: Update Catalan translation

Currently translated at 12.7% (266 of 2086 strings)

TRANSLATION: Update Catalan translation

Currently translated at 9.1% (190 of 2086 strings)

TRANSLATION: Update Catalan translation

Currently translated at 4.1% (86 of 2080 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Konstantin Goncharik <botankras@gmail.com>
Co-authored-by: Omar Macías Molina <omar.maciasmolina@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/ca/
Translation: Mumble/Mumble Client
2022-03-21 12:32:43 +01:00
Hosted Weblate
4d1c6bad10 TRANSLATION: Update French translation
Currently translated at 95.5% (1987 of 2080 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Konstantin Goncharik <botankras@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/fr/
Translation: Mumble/Mumble Client
2022-03-21 12:32:43 +01:00
Hosted Weblate
e481ca2a87 TRANSLATION: Update Russian translation
Currently translated at 99.6% (2078 of 2085 strings)

TRANSLATION: Update Russian translation

Currently translated at 99.6% (2073 of 2080 strings)

TRANSLATION: Update Russian translation

Currently translated at 99.6% (2073 of 2080 strings)

Co-authored-by: Game one <denis.melnyk.2006@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Konstantin Goncharik <botankras@gmail.com>
Co-authored-by: Nikita Epifanov <nikgreens@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/ru/
Translation: Mumble/Mumble Client
2022-03-21 12:32:43 +01:00
Hosted Weblate
7cc897d6ac TRANSLATION: Update Greek translation
Currently translated at 100.0% (2088 of 2088 strings)

TRANSLATION: Update Greek translation

Currently translated at 99.9% (2084 of 2086 strings)

Co-authored-by: Dionysios Kapatsoris <dfk_7677@yahoo.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Taplou <ploutarchosgram@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/el/
Translation: Mumble/Mumble Client
2022-03-21 12:32:43 +01:00
Hosted Weblate
c5fe252401 TRANSLATION: Update Swedish translation
Currently translated at 96.9% (2022 of 2086 strings)

TRANSLATION: Update Swedish translation

Currently translated at 97.3% (2024 of 2080 strings)

Co-authored-by: Allan Nordhøy <epost@anotheragency.no>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Shjosan <shjosan@kakmix.co>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/sv/
Translation: Mumble/Mumble Client
2022-03-21 12:32:43 +01:00
Hosted Weblate
48f928369f TRANSLATION: Update Hungarian translation
Currently translated at 80.5% (1676 of 2080 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: f3rr31 <5920873@disroot.org>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/hu/
Translation: Mumble/Mumble Client
2022-03-21 12:32:43 +01:00
Hosted Weblate
d5f5bac6a5 TRANSLATION: Update Danish translation
Currently translated at 69.6% (1452 of 2086 strings)

Co-authored-by: Allan Nordhøy <epost@anotheragency.no>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/da/
Translation: Mumble/Mumble Client
2022-03-21 12:32:43 +01:00
Hosted Weblate
9c9329f315 TRANSLATION: Update Portuguese (Portugal) translation
Currently translated at 93.3% (1942 of 2080 strings)

TRANSLATION: Update Portuguese (Portugal) translation

Currently translated at 93.3% (1942 of 2080 strings)

TRANSLATION: Update Portuguese (Portugal) translation

Currently translated at 93.2% (1940 of 2080 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Hugo Carvalho <hugokarvalho@hotmail.com>
Co-authored-by: Jose Ricardo A. Mota <jramkr15@naver.com>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/pt_PT/
Translation: Mumble/Mumble Client
2022-03-21 12:32:43 +01:00
Hosted Weblate
87e59eabaf TRANSLATION: Update Portuguese (Brazil) translation
Currently translated at 93.1% (1937 of 2080 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: The Cats <philosoph@snopyta.org>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/pt_BR/
Translation: Mumble/Mumble Client
2022-03-21 12:32:43 +01:00
Hosted Weblate
a8245da392 TRANSLATION: Update Telugu translation
Currently translated at 4.2% (89 of 2080 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Konstantin Goncharik <botankras@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/te/
Translation: Mumble/Mumble Client
2022-03-21 12:32:43 +01:00
Hosted Weblate
b0976aadde TRANSLATION: Update Turkish translation
Currently translated at 100.0% (2088 of 2088 strings)

TRANSLATION: Update Turkish translation

Currently translated at 100.0% (2086 of 2086 strings)

TRANSLATION: Update Turkish translation

Currently translated at 100.0% (2085 of 2085 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Oğuz Ersen <oguz@ersen.moe>
Co-authored-by: Oğuz Ersen <oguzersen@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/tr/
Translation: Mumble/Mumble Client
2022-03-21 12:32:43 +01:00
Hosted Weblate
1fb00b397b TRANSLATION: Update Norwegian Bokmål translation
Currently translated at 91.4% (1907 of 2086 strings)

TRANSLATION: Update Norwegian Bokmål translation

Currently translated at 89.1% (1859 of 2085 strings)

Co-authored-by: Allan Nordhøy <epost@anotheragency.no>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/nb_NO/
Translation: Mumble/Mumble Client
2022-03-21 12:32:43 +01:00
Hosted Weblate
5b2a8fab57 TRANSLATION: Update Dutch translation
Currently translated at 100.0% (2080 of 2080 strings)

Co-authored-by: Gert-dev <qnyasgjhapqyuhoibr@kiabws.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/nl/
Translation: Mumble/Mumble Client
2022-03-21 12:28:16 +01:00
Hosted Weblate
9d03085520 TRANSLATION: Update Chinese (Simplified) translation
Currently translated at 100.0% (2088 of 2088 strings)

TRANSLATION: Update Chinese (Simplified) translation

Currently translated at 100.0% (2086 of 2086 strings)

TRANSLATION: Update Chinese (Simplified) translation

Currently translated at 100.0% (2085 of 2085 strings)

TRANSLATION: Update Chinese (Simplified) translation

Currently translated at 100.0% (2080 of 2080 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: deluxghost <deluxghost@gmail.com>
Co-authored-by: yzqzss <yzqzss@yandex.com>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/zh_Hans/
Translation: Mumble/Mumble Client
2022-03-21 12:28:16 +01:00
Hosted Weblate
0e7609d218 TRANSLATION: Update Polish translation
Currently translated at 100.0% (2088 of 2088 strings)

TRANSLATION: Update Polish translation

Currently translated at 100.0% (2086 of 2086 strings)

TRANSLATION: Update Polish translation

Currently translated at 100.0% (2085 of 2085 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Matthaiks <kitynska@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/pl/
Translation: Mumble/Mumble Client
2022-03-21 12:28:16 +01:00
Hosted Weblate
039cbf84e8 TRANSLATION: Update Basque translation
Currently translated at 60.6% (1261 of 2080 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Konstantin Goncharik <botankras@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/eu/
Translation: Mumble/Mumble Client
2022-03-21 12:28:16 +01:00
Hosted Weblate
cc9c20427c TRANSLATION: Update Spanish translation
Currently translated at 89.8% (1875 of 2086 strings)

Co-authored-by: Allan Nordhøy <epost@anotheragency.no>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/es/
Translation: Mumble/Mumble Client
2022-03-21 12:28:16 +01:00
Hosted Weblate
cc961d374c TRANSLATION: Update Romanian translation
Currently translated at 10.9% (227 of 2080 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Ty3r0X <ty3r0x@disroot.org>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/ro/
Translation: Mumble/Mumble Client
2022-03-21 12:28:16 +01:00
Hosted Weblate
bab4305843 TRANSLATION: Update Chinese (Traditional) translation
Currently translated at 67.5% (1406 of 2080 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Konstantin Goncharik <botankras@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/zh_Hant/
Translation: Mumble/Mumble Client
2022-03-21 12:28:16 +01:00
Robert Adam
0d8220e362 TRANSLATION: Update translation files 2022-03-21 08:28:46 +01:00
Robert Adam
613c282bb4 FEAT(client, server): Support --version CLI flag
The server already supported this flag, but printed the version
information in a weird format and for the client this flag is completely
new.

Fixes #5598
2022-03-21 08:28:46 +01:00
Robert Adam
3db3ec22f3 REFAC: Removed debug print statement 2022-03-21 07:58:57 +01:00
Robert Adam
681d0018de
Merge PR #5596: FIX(client): Audio wizard being shown repeatedly
The switch to a new settings format messed up the setting for whether or
not the audio wizard has been shown already or not. For new
installations, the wizard would be shown, but the fact that it has been
shown is not reflected in the settings causing the wizard to be re-shown
upon a restart.

This commit fixes this by making sure that the respective setting is set
after the wizard has been shown for the first time.
2022-03-16 10:14:08 +01:00