Commit Graph

9606 Commits

Author SHA1 Message Date
diftucs
6db667a2a3
DOCS(api): Fix typo 2021-11-26 22:45:24 +00:00
Robert Adam
d46101831d
Merge PR #5324: CHANGE: Make joining root channel explicit 2021-11-21 20:59:34 +01:00
Robert Adam
06957ea9e0
Merge PR #5325: FIX(client): Duplicate plugin entries
Before when installing Mumble (on Windows) it could happen that when
viewing the plugin settings, every plugin would be listed multiple
times. This was caused by duplicate entries in the plugins search path
used by Mumble. The duplicates arose from using non-canonical paths in
the set for storing the search paths which allowed to add the same
directory twice by describing its path slightly differently.

This commit makes sure that all paths are first canonicalized before
they are added to the set, such that only distinct paths are maintained.

Fixes #5271
2021-11-21 19:14:26 +01:00
Robert Adam
e2d5fcc6c8
Merge PR #5323: BUILD(client): Add missing ifdef guards
0e17c53 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 PR fixes that by adding the mentioned include-guards.

Fixes #5322
2021-11-21 17:27:21 +01:00
Robert Adam
ff8be8b80e FIX(client): Duplicate plugin entries
Before when installing Mumble (on Windows) it could happen that when
viewing the plugin settings, every plugin would be listed multiple
times. This was caused by duplicate entries in the plugins search path
used by Mumble. The duplicates arose from using non-canonical paths in
the set for storing the search paths which allowed to add the same
directory twice by describing its path slightly differently.

This commit makes sure that all paths are first canonicalized before
they are added to the set, such that only distinct paths are maintained.

Fixes #5271
2021-11-21 17:17:02 +01:00
Robert Adam
bdbc6d8970 CHANGE: Make joining root channel explicit
When joining a server, a client is placed in the root channel by
default. However, this placement was implicit as the server would
explicitly exclude this information to be broadcast with the sent
UserState message.

In order to facilitate external applications to get this all right, this
commit now makes sure that this information is shared explicitly (just
as if the user would be placed in a different channel because the server
remembered their last channel).

Note: This commit also adapts the client code to only move the user if
the specified channel is not its current channel already, but even
without this change, the client code will handle the additional
information gracefully.

Fixes #5270
2021-11-21 16:46:05 +01:00
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
c032df8036
Merge PR #5299: TEST(client): Add plugin to test deadlock prevention
This plugin tests the built-in deadlock prevention of the Mumble plugin
API.
2021-11-09 10:24:24 +01:00
Robert Adam
fea949767a TEST(client): Add plugin to test deadlock prevention
This plugin tests the built-in deadlock prevention of the Mumble plugin
API.
2021-11-09 08:51:18 +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
77e9620b93
Merge PR #5297: 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 11:28:38 +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
0ee6508ba6
Merge PR #5294: 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 18:21:10 +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
Robert Adam
756be79bee
DOCS(readme): Update Matrix link
The previous link was referencing Riot, which was superseded by Element quite a while ago.
2021-10-29 19:41:49 +02:00
Robert Adam
852595a27a
Merge PR #5269: DOCS: Add common build errors 2021-10-27 18:42:05 +02:00
Robert Adam
c453a8bded
Merge PR #5273: 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-10-01 08:33:31 +02: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
5c4b49210c DOCS: Add common build errors
Co-authored-by: Davide Beatrici <github@davidebeatrici.dev>
2021-09-23 08:14:38 +02:00
Robert Adam
296956c3e3
DOCS(readme): Removed IRC banner 2021-09-13 16:30:19 +02:00
Robert Adam
acf449bdc9
Merge PR #5258: DOCS(Readme): Add building Docker image from source 2021-09-09 08:13:17 +02:00
Alfonso Montero
0d771c85bb
DOCS(Readme): Whitespace: Add blank line.
Co-authored-by: Davide Beatrici <github@davidebeatrici.dev>
2021-09-09 02:09:05 +02:00
Alfonso Montero
623f6e99f7
DOCS(Readme): Add building Docker image from source. 2021-09-08 19:27:14 +02:00
Robert Adam
d07769afb6
Merge PR #5253: DOCS: Backporting translations 2021-09-07 21:38:58 +02:00
Robert Adam
dd37642407 DOCS: Backporting translations 2021-09-06 08:50:32 +02:00
Robert Adam
a958f02fe0
Merge PR #5243: TRANSLATION: Translations update from Weblate 2021-09-04 18:56:22 +02: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