Commit Graph

5975 Commits

Author SHA1 Message Date
Robert Adam
03f72ce24a BUILD(client): Add missing ifdef guards
0e17c5394c introduced a migration system
from migrating from the old shortcut format to the newer one (on
Windows) but it seems in this new function it was forgotten to check
whether support for GKey and/or XBox-Input was actually included or not.

This could lead to compile errors when e.g. using -Dgkey=OFF when
invoking cmake.

This commit fixes that by adding the mentioned include-guards.

Fixes #5322
2021-11-21 16:37:03 +01:00
Robert Adam
e54798cbd3
Merge PR #5307: Open FIX(client): Disable broken shortcuts on Wayland
Our global shortcut system currently doesn't work when using Wayland
(#5257). Therefore, this
commit makes sure that the global shortcut system is not even started
on such systems. Furthermore, it informs the user about the shortcuts
being disabled.
2021-11-11 08:33:36 +01:00
Robert Adam
5ca25ee498
Merge PR #5280: FIX(server,client): Validate/use the correct certificate from a chain
Currently, obtaining and validating the peer's certificate chain is a mess. While obtaining the chain (which is ordered, starting with the peer's immediate certificate and ending with the CA's certificate), the peers immediate certificate is added again, as last certificate. Then, while validating, the last certificate is checked. This approach works (since the validated certificate is the one that is expliticly added), but puts the whole concept of a ordered certificate chain to absurdity.

This commit fixes that. First, the chain it is returned unaltered in its original form (ordered and starting with the peer's immediate certificate and ending with the CA's certificate). Then, while validating, the first certificate in this chain is checked.
2021-11-10 19:38:12 +01:00
Robert Adam
df4152c307
Merge PR #5308: FIX(server, ice): Missing locks in ICE functions
Some of the ICE functions were writing data without holding the
respective lock.
2021-11-10 17:59:02 +01:00
Eric Prokop
7d67da15ee FIX(server,client): Validate/use the correct certifiacte from a peers chain
Currently, obtaining and validating the peer's certificate chain is a mess. While obtaining the chain (which is ordered, starting with the peer's immediate certificate and ending with the CA's certificate), the peers immediate certificate is added again, as last certificate. Then, while validating, the last certificate is checked. This approach works (since the validated certificate is the one that is expliticly added), but puts the whole concept of a ordered certificate chain to absurdity.

This commit fixes that. First, the chain it is returned unaltered in its original form (ordered and starting with the peer's immediate certificate and ending with the CA's certificate). Then, while validating, the first certificate in this chain is checked.

Fixes #3523 (partially)
2021-11-10 17:18:24 +01:00
Robert Adam
c9e853a1d4
Merge PR #5298: FEAT(server): Add option to disallow recording
This commit adds a new server-configuration that can be used in the
murmur.ini file. It can be used to forbid anyone on the server from
using Mumble's built-in recording functionality.

Any client trying to start a recording nonetheless, will be kicked from
the server.

From Mumble 1.5.0 clients will know about this configuration and will
disable the recording action in the UI, if recording is not allowed on
the server.

Additionally this PR also fixes/revamps two other small issues related
to the recording feature.
2021-11-10 15:29:21 +01:00
Robert Adam
d33b4be9ec FIX(server, ice): Missing locks in ICE functions
Some of the ICE functions were writing data without holding the
respective lock.
2021-11-10 15:17:10 +01:00
Robert Adam
bbbd433ff5 TRANSLATION: Update translation files 2021-11-10 10:20:43 +01:00
Robert Adam
b4e0989937 CHANGE(client, ui): Recording disabled by default
The recording button is now disabled by default. It gets enabled only
when connected to a server (that allows recording). This is done because
the recording feature can't be used without a server connection anyway
(doing so will result in an error popup). Thus this restriction is now
reflected in the UI as well.
2021-11-10 10:20:43 +01:00
Robert Adam
8d857e8f2b FEAT(server): Add option to disallow recording
This commit adds a new server-configuration that can be used in the
murmur.ini file. It can be used to forbid anyone on the server from
using Mumble's built-in recording functionality.

Any client trying to start a recording nonetheless, will be kicked from
the server.

From Mumble 1.5.0 clients will know about this configuration and will
disable the recording action in the UI, if recording is not allowed on
the server.
2021-11-10 10:20:43 +01:00
Robert Adam
9e0ea404c3
Merge PR #5305: BUILD(client): Fix compile errors without manual plugin
This fixes the compile errors encountered when building without the
manual plugin (-Dmanual-plugin=OFF).

Fixes #5304
2021-11-10 10:09:38 +01:00
Robert Adam
7a0227aa8b TRANSLATION: Update translation files 2021-11-10 10:06:28 +01:00
Robert Adam
1b03098345 FIX(client): Disable broken shortcuts on Wayland
Our global shortcut system currently doesn't work when using Wayland
(https://github.com/mumble-voip/mumble/issues/5257). Therefore, this
commit makes sure that the global shortcut system is not even started
on such systems. Furthermore, it informs the user about the shortcuts
being disabled.

Fixes #5303
2021-11-10 10:06:14 +01:00
Robert Adam
5cb3e60f24 FEAT(client): Add possibility to check for Wayland
This new function allows to check whether Wayland is being used as the
display manager.
2021-11-10 09:37:47 +01:00
Robert Adam
2dd0c8bf5d REFAC(client): Don't use class as namespace
The EnvUtils class only served as a namespace (containing static
functions). Thus, it makes more sense to convert EnvUtils into an actual
namespace.
2021-11-10 09:37:38 +01:00
Robert Adam
d25bfd02fc BUILD(client): Fix compile errors without manual plugin
When excluding the manual plugin from the build (-Dmanual-plugin=OFF),
the compilation would fail due to the ManualPlugin.h header being
included in certain files nonetheless.

As it turns out the include was superfluous in the PluginConfig.cpp
file and in PluginManager.cpp the include is now shielded by a proper
ifdef-guard.

Fixes #5304
2021-11-10 08:52:21 +01:00
Robert Adam
1fa6909d6e BUILD(client): Add missing include
Due to this missing include, a build error would occur when compiling
without the manual plugin (which presumably caused the include to be
resolved indirectly).
2021-11-10 08:50:34 +01:00
Robert Adam
f1e65f5e82 FIX(client): Crash when starting recording
If the used audio output system was bogus and therefore configured to
use a 0Hz sample rate, starting a recording would crash Mumble due to an
assertion in the VoiceRecorder class.

This commit adds a check for this situation and instead of crashing
Mumble, this will log a warning message to the console and close the
VoiceRecorderDialog instead.
2021-11-08 16:14:41 +01:00
Robert Adam
a36dc20d41 CHANGE(client): Max. value for silent user setting
Previously the maximum allowed value for the "silent user lifetime"
setting (affecting the TalkingUI) was 99 (apparently Qt's default for
spin boxes). However, this prevented users from keeping recent speakers
visible for a couple of minutes, which might be desirable (especially in
a situation in which Mumble is only running in the background while one
is doing other stuff).
2021-11-08 10:47:15 +01:00
Robert Adam
c5dbe6803d FIX(client): Sort users case-insensitively
In #4875 we changed the comparing between users to be locale-unaware.
During this change, the sorting was made case-sensitive, whereas before
it (potentially) was not.

However, intuitively a user will expect a case-insensitive ordering of
users in the UI. The only problem with that is that a case-insensitive
comparison will not yield a strong ordering between users that use
usernames that only differ in casing (e.g. "tom" and "Tom").

In order to avoid this problem, we now first perform a case-insensitive
comparison and fall back to a case-sensitive one, should the first
comparison yield "equal".

Fixes #5293
2021-11-03 14:55:16 +01:00
Justin Lewis Salmon
7cf7b180f0 FIX(client,mac): Add support for input/output device switching on macOS
Previously, when switching input/output devices at the system level, Mumble would ignore the switch and continue to use the previous device. This patch adds support for proper device switching, allowing Mumble to correctly follow the system input/output device.

Fixes #1013
2021-09-30 11:02:54 +01:00
Robert Adam
c1291f83c2 TRANSLATION: Update translation files 2021-09-04 18:10:04 +02:00
Hosted Weblate
b18282e9ff TRANSLATION: Update Persian translation
Currently translated at 4.3% (90 of 2077 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: عبدالرئوف عابدی <abdolraoofabedi@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/fa/
Translation: Mumble/Mumble Client
2021-09-04 18:09:42 +02:00
Hosted Weblate
a311baeaf5
TRANSLATION: Update Finnish translation
Currently translated at 99.3% (2064 of 2077 strings)

TRANSLATION: Update Finnish translation

Currently translated at 99.0% (2057 of 2077 strings)

TRANSLATION: Update Finnish translation

Currently translated at 99.0% (2057 of 2077 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Kaantaja <ufdbvgoljrjkrkyyub@ianvvn.com>
Co-authored-by: attemarkula <atte.markula@iki.fi>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/fi/
Translation: Mumble/Mumble Client
2021-09-04 18:07:19 +02:00
Hosted Weblate
702e54165b
TRANSLATION: Update Polish translation
Currently translated at 100.0% (2078 of 2078 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
2021-09-04 18:07:19 +02:00
Hosted Weblate
c4a6bfd4ec
TRANSLATION: Update Chinese (Simplified) translation
Currently translated at 100.0% (2078 of 2078 strings)

Co-authored-by: Eric <spice2wolf@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/zh_Hans/
Translation: Mumble/Mumble Client
2021-09-04 18:07:19 +02:00
Hosted Weblate
1e5d735628
TRANSLATION: Update Chinese (Traditional) translation
Currently translated at 67.6% (1406 of 2077 strings)

Co-authored-by: Crispy Eggwaffle <crispyeggwaffle@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/zh_Hant/
Translation: Mumble/Mumble Client
2021-09-04 18:07:19 +02:00
Hosted Weblate
74f613a11e
TRANSLATION: Update Greek translation
Currently translated at 100.0% (2078 of 2078 strings)

Co-authored-by: Konstantinos Mihalenas <ldinos99@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/el/
Translation: Mumble/Mumble Client
2021-09-04 18:07:18 +02:00
Hosted Weblate
1518886f45
TRANSLATION: Update German translation
Currently translated at 100.0% (2078 of 2078 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
2021-09-04 18:07:18 +02:00
Hosted Weblate
fd8a0349f7
TRANSLATION: Update Turkish translation
Currently translated at 100.0% (2078 of 2078 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Oğuz Ersen <oguzersen@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/tr/
Translation: Mumble/Mumble Client
2021-09-04 18:07:18 +02:00
Hosted Weblate
f14d0684df
TRANSLATION: Update Occitan translation
Currently translated at 26.0% (542 of 2077 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Quentin PAGÈS <quentinantonin@free.fr>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/oc/
Translation: Mumble/Mumble Client
2021-09-04 18:07:18 +02:00
evris99
82fe478a15 TRANSLATION: Update translation files 2021-09-02 21:20:09 +03:00
evris99
665a658c97 FEAT(client): Add opus as output format for recording
This commits adds opus as an output format for voice recordings as requested in #5065. It uses an OGG container like the already implemented Vorbis codec but has much better compression. For clarity the .opus file extension is used.

Implements #5065

Co-authored-by: Robert Adam <dev@robert-adam.de>
2021-09-02 21:19:21 +03:00
Hosted Weblate
881db41829
TRANSLATION: Update Esperanto translation
Currently translated at 39.8% (828 of 2077 strings)

TRANSLATION: Update Esperanto translation

Currently translated at 39.6% (822 of 2075 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Tirifto <tirifto@posteo.cz>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/eo/
Translation: Mumble/Mumble Client
2021-08-18 20:34:55 +02:00
Hosted Weblate
dd6bb6e387
TRANSLATION: Update Polish translation
Currently translated at 100.0% (2077 of 2077 strings)

TRANSLATION: Update Polish translation

Currently translated at 100.0% (2077 of 2077 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
2021-08-18 20:34:54 +02:00
Hosted Weblate
d45cbc064f
TRANSLATION: Update Chinese (Simplified) translation
Currently translated at 100.0% (2077 of 2077 strings)

TRANSLATION: Update Chinese (Simplified) translation

Currently translated at 100.0% (2077 of 2077 strings)

TRANSLATION: Update Chinese (Simplified) translation

Currently translated at 100.0% (2077 of 2077 strings)

TRANSLATION: Update Chinese (Simplified) translation

Currently translated at 100.0% (2077 of 2077 strings)

Co-authored-by: Eric <spice2wolf@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: deluxghost <deluxghost@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/zh_Hans/
Translation: Mumble/Mumble Client
2021-08-18 20:34:54 +02:00
Hosted Weblate
cb7a89cca8
TRANSLATION: Update Dutch translation
Currently translated at 100.0% (2077 of 2077 strings)

TRANSLATION: Update Dutch translation

Currently translated at 100.0% (2075 of 2075 strings)

Co-authored-by: Gert-dev <qnyasgjhapqyuhoibr@kiabws.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Leon Grutters <gruttersleonbot2@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/nl/
Translation: Mumble/Mumble Client
2021-08-18 20:34:54 +02:00
Hosted Weblate
0cf4ecc23c
TRANSLATION: Update Hungarian translation
Currently translated at 80.6% (1676 of 2077 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: ViBE <vibe@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/hu/
Translation: Mumble/Mumble Client
2021-08-18 20:34:54 +02:00
Hosted Weblate
f7d2aa3927
TRANSLATION: Update Swedish translation
Currently translated at 97.2% (2019 of 2077 strings)

TRANSLATION: Update Swedish translation

Currently translated at 95.6% (1987 of 2077 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Luna Jernberg <droidbittin@gmail.com>
Co-authored-by: Shjosan <shjosan@kakmix.co>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/sv/
Translation: Mumble/Mumble Client
2021-08-18 20:34:54 +02:00
Hosted Weblate
73b73f954d
TRANSLATION: Update German translation
Currently translated at 100.0% (2077 of 2077 strings)

TRANSLATION: Update German translation

Currently translated at 100.0% (2077 of 2077 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Robert Adam <dev@robert-adam.de>
Co-authored-by: Vri 🌈 <weblate@vrifox.cc>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/de/
Translation: Mumble/Mumble Client
2021-08-18 20:34:54 +02:00
Hosted Weblate
781fe60b50
TRANSLATION: Update Turkish translation
Currently translated at 100.0% (2077 of 2077 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: ToldYouThat <itoldyouthat@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/tr/
Translation: Mumble/Mumble Client
2021-08-18 20:34:53 +02:00
Hosted Weblate
eff8d0109c
TRANSLATION: Update French translation
Currently translated at 95.7% (1987 of 2075 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Hytashi <pierrot.bourdeau@yahoo.fr>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/fr/
Translation: Mumble/Mumble Client
2021-08-18 20:34:53 +02:00
Hosted Weblate
c788097d0b
TRANSLATION: Update Portuguese (Portugal) translation
Currently translated at 92.8% (1929 of 2077 strings)

Co-authored-by: Sérgio Morais <lalocas@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/pt_PT/
Translation: Mumble/Mumble Client
2021-08-18 20:34:53 +02:00
Hosted Weblate
4b7153e4d5
TRANSLATION: Update Russian translation
Currently translated at 99.6% (2070 of 2077 strings)

TRANSLATION: Update Russian translation

Currently translated at 99.6% (2070 of 2077 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Irina <t8path@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
2021-08-18 20:34:53 +02:00
Davide Beatrici
a4fdc46a80 BUILD(opus): Fetch submodule from upstream repository
Upon switching to CMake, we kept using our own fork for the repository because a few fixes for the build were needed.

Now that the upstream repository works correctly as submodule, we can fetch from it directly.

Please note that tests provided in the Opus repository are not built anymore.

Fixes #5223.
2021-08-10 23:03:33 +02:00
Gert
3ac9bdc280 TRANSLATION: Add missing Dutch translations for dialog buttons
Some dialog button texts, such as "Cancel" weren't translated as they
are part of Qt's internal translations. This fixes that.
2021-08-08 15:14:34 +02:00
WGH
4db7366d12 FIX(server): Always bind to both IPv6 and IPv4 by default
The check for configured network interfaces at startup has a problem
that if IPv4 is not configured for some reason, Mumble will bind to
IPv6-only socket, and will not be available over IPv4 until manually
restarted.

There's no harm binding to the "any" IPv6 address with IPV6_V6ONLY set
to 0 even if there're no assigned addresses of either address family.
The bind will succeed either way, and will accept connections on any
new address configured in the system regardless of the address family.

QHostAddress::Any tries to setup an AF_INET6 socket with IPV6_V6ONLY
set to 0, and falls back to AF_INET in case it's unavailable.
However, it will only happen if IPv6 is completely disabled on the
system, which is a rare configuration, but nevertheless it will fall
back gracefully.

Fixes #5208
2021-07-27 20:15:59 +03:00
Davide Beatrici
ee179283d7 TRANSLATION: Update translation files 2021-07-25 00:34:30 +02:00
Davide Beatrici
0e17c5394c FIX(client): Migrate Windows shortcuts from versions older than 1.4.0 properly
After 3dc7b00d09, shortcuts saved in the old format would just show up as "Unknown" and not work.

This commit implements a proper migration mechanism, making the shortcuts work without any manual steps.
Mice, keyboards, Xbox (XInput) controllers and Logitech G-keys devices are supported.
Unfortunately shortcuts will have to be registered again for DirectInput devices such as controllers.

The migration is performed silently, unless not 100% successful.
In that case a message box appears informing the user about how many shortcuts could not be migrated.

Please note that running a version of Mumble that uses the old format after the migration results in corruption.
As a result, shortcuts would have to be registered again.

Fixes #5025.
2021-07-25 00:34:27 +02:00
Robert Adam
7626078a89 TRANSLATION: Update translation files 2021-07-24 20:25:15 +02:00