Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mumble-voip/mumble.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2021-09-04TRANSLATION: Backport translationsRobert Adam
2021-09-01REFAC(macOS): Replace deprecated constructs, refactor codeDavide Beatrici
2021-08-21Merge PR #5240: Backport "TRANSLATION: Add missing Dutch translations for ↵Robert Adam
dialog buttons (#5226)"
2021-08-21Merge PR #5239: Backport "BUILD(opus): Fetch submodule from upstream ↵Robert Adam
repository (#5229)"
2021-08-20TRANSLATION: Backport translationsRobert Adam
2021-08-20TRANSLATION: Add missing Dutch translations for dialog buttonsGert
Some dialog button texts, such as "Cancel" weren't translated as they are part of Qt's internal translations. This fixes that.
2021-08-20BUILD(opus): Fetch submodule from upstream repositoryDavide Beatrici
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-07-28FIX(server): Always bind to both IPv6 and IPv4 by defaultWGH
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-26TRANSLATION: Update translation filesRobert Adam
2021-07-26FIX(client): Migrate Windows shortcuts from versions older than 1.4.0 properlyDavide Beatrici
After 3dc7b00d0919cf2400071deba54ff7f64ee3d9ea, 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-24TRANSLATION: Backport translationsRobert Adam
2021-07-15FIX(client): Potential access of invalid objectRobert Adam
PR #5161 introduced a new facet to the synchronization of plugin API calls in order to avoid the possibility of running into a deadlock. However the mechanism of using timeouts had the flaw that the dispatched execution of the API call would access the promise object which lives on the Stack of the calling wrapper function. In case of a timeout though that wrapper function may exit, before the actual API implementation has run. Thus as soon as that function will end up running, it will access memory that no longer exists as the referenced promise object has gone out of scope already. This commit fixes this by creating the promise on the Heap instead and using a shared pointer on it such that whichever function is the last to exit, it the one that frees the resource. This guarantees that the promise is not destructed before it is no longer needed.
2021-07-13FIX(client, audio): PulseAudio not initializingRobert Adam
PR #5159 removed a few seemingly unneeded waits on audio system initialization which drastically sped up Mumble's startup. However as it turns out for PulseAudio some waiting is actually required as the system initializes asynchronously but we require the knowledge about the init result. Instead of adding an arbitrary wait time again though, this commit adds a mechanism that waits exactly as long as necessary for the init to be completed and then continues. That still cuts down the waiting time tremendously when comparing with the previous (arbitrary) wait time of 1 second. Fixes #5181
2021-07-12FIX(client): Plugin updater keeping plugin lockedRobert Adam
PR #5152 overhauled the code for the plugin installer such that it can completely unload a plugin before attempting to overwrite it. However when the installer is called from the updater, that doesn't work since the installer itself was still holding a handle to that plugin, preventing it from unloading. Therefore this commit makes sure that the installer releases its handle before calling the installer. Fixes #4946
2021-07-11FIX(server): Tray icon not shown on WindowsRobert Adam
The code that was used to create the tray icon was perfectly fine. The issue was that the icon that was set was invalid because Qt did not find the respective resource (which for some reason leads to the tray entry not being shown at all). The issue was that auto-RCC was not enabled for the server. This is probably because usually the server doesn't need it, except on Windows where we have that tray icon. While the respective resource files were present and added as needed, the lack of this property caused Qt to never process the resource file and thus thew icon was always missing. Fixes #4930
2021-07-11FIX(client): Remove unnecessary wait for mutexMagnus Groß
This causes a 1 second startup delay per Audio Backend, which at the moment means 3 seconds on Linux. Fixes #5157 Fixes #5022
2021-07-09TRANSLATION: Update translation filesRobert Adam
2021-07-09FIX(client): Issues when updating installed pluginsRobert Adam
The first issue was that the old plugin would simply get overwritten without at least warning the user that such a thing will take place. With this commit this is still not guaranteed as plugins can be installed in different directories in which case no warning is emitted (the user will end up with two versions of the plugin installed in parallel). The second issue was that if a plugin was loaded while it is being updated, on some OS (e.g. Windows) the corresponding library file is locked and can thus not be overwritten. Therefore plugins are now explicitly cleared before an overwrite is attempted.
2021-07-04FIX(client): Potential deadlocks in pluginsRobert Adam
Using the API functions from outside the "main thread" would cause them to block until the request can be processed on the main thread. This could easily produce a deadlock if used without caution. These changes add a timeout for this waiting turning preventing deadlocks because the calling thread won't be blocked indefinitely. In case of a timeout, a special error code is returned.
2021-06-20FIX(server): Also INSERT queried valueRobert Adam
13b85a3ae2580636c2a3171e1ab09a608f19e838 introduced a new feature for which it is required to remember when the last user disconnected from a channel. However in the upgrade path that variable was part of the query but not of the insert statement.
2021-06-20REVERT: "FIX(server): Value queried but not used in DB insertion"Robert Adam
This reverts commit 2237899178c83b043bfa902e523eb2e705182be6. The correct approch seems to be to add the value into the INSERT statement instead of excluding it from the query one.
2021-06-17FIX(server): Missing lock in Ice-call setACLRobert Adam
The implementation for the Ice setACL function did not take a write lock even though it writes to objects that are owned by the main thread (thereby violating the synchronization scheme in the server code). Due to it deleting Group objects this is strongly suspected to have caused a Segfault crash of the server when the voice thread would check whether a user has permission in a channel while the ACL for that is not cached. The Segfault then occurs in Group::isMember when dereferencing the Group pointer (which got deleted in the Ice function).
2021-06-17FIX(server): Value queried but not used in DB insertionRobert Adam
Inside ServerDB there was one SQL statement that reads values off from one table and writes them into another one. However while doing so, it (in contrast to the other statements doing the same for other DB versions) also queries the `last_disconnect` value. This values is unused in the INSERT statement though and therefore reading it in the first place seems to be pointless.
2021-06-15TRANSLATION: Update translation filesRobert Adam
2021-06-15FIX(client): Ambiguity in plugin installerRobert Adam
Previously the plugin installer attempted to select the correct plugin binary by its file extension but it turns out that this is not a unique choice (e.g. .so is supported on macOS and on Linux). Therefore this commit introduces a mandatory manifest file that is to be present in plugin bundles that contains the mapping for which binary to use on which OS and for which architecture. Because a plugin bundle now has to follow such a strict format, it is now also mandatory for the bundle to have the file extension .mumble_plugin (previously .zip was allowed as well).
2021-06-13Merge PR #5116: Backport "FIX(client, plugin-api): ↵Robert Adam
requestLocalUserTransmissionMode (#5113)" to 1.4.x Backports the following commits to 1.4.x: FIX(client, plugin-api): requestLocalUserTransmissionMode (#5113)
2021-06-12FIX(client, plugin-api): requestLocalUserTransmissionModeRobert Adam
This particular API function was implemented to only set the respective settings variable. However this would not notify any other code part about the change resulting in a potential inconsistency between the UI and the actual settings. Therefore the implementation now delegates the actual setting of the transmission mode to MainWindow::setTransmission mode that takes care of emitting the appropriate signal and informs the user about a change in transmission mode.
2021-06-12FIX(client, plugin-api): onAudioOutputAboutToPlayRobert Adam
The channel count and sample rate parameters for this function were passed in reverse order (compared to the API spec). This would cause plugins using this callback to calculate buffer sizes (sampleCount * channelCount) to be vastly too high and therefore they most likely tried accessing the output buffer at indices outside its actual range.
2021-06-11FIX(server): uiSession being used before assignmentRobert Adam
In eabfbab403e6ba10219c262518899db5a60d0c1e the assignment of the uiSession variable of any given client was delayed into the Server::msgAuthenticated function in order to prevent non-Mumble connections to be counted as users. However the assignment of the session ID was moved so far down that there is now previous code that already depends on its value and is now using an uninitialized (or at least wrong) value for the session ID. This commit fixes this by assigning the session ID very early in the Server::msgAuthenticated function, making sure that the code before it does not reference the session ID already. This bug could have had all kinds of side-effects but one of them was that users were always presented with the "Unable to find matching CELT codecs with other clients." message upon connecting to the server. Fixes #5051
2021-06-07FIX(client): PluginInstaller unable to extract zipsRobert Adam
On Windows the PluginInstaller was unable to extract certain zip files. As it turns out the issue was that the filestreams were not opened in binary mode which threw Poco off in certain situations. Therefore the fix simply is to use binary mode when working with these file streams. Note that the used Poco filestream class operates in binary mode by default.
2021-06-07REFAC(plugins): Avoid name clashes by prefixingRobert Adam
There were a few types left that were not prefixed with "Mumble" in one way or another. In order to avoid name clashes, this was now changed. Especially enum values are now also prefixed. This is because these are not enum classes (C doesn't know those) and as such the enum values are used without a namespace (thus they are effectively global names). Furthermore the macros STATUS_OK and VERSION_UNKNOWN were turned into constant variables in order to use the preprocessor as little as possible.
2021-06-07REFAC: Turn MumbleVersion into namespaceRobert Adam
The "class" was only used as a namespace anyway. And while we're on it the entire thing was renamed to "Version" instead of "MumbleVersion".
2021-06-02BUILD(installer): Include binaries only if builtRobert Adam
The overlay binaries were expected to be present in any case when the installer was built. Same goes for the g15-helper binary. This commit makes sure these binaries are only included if the respective feature was actually built before. Fixes #5058
2021-06-01FIX(audiowizard): Reset AudioOutput ownership before restartAudio()Magnus Groß
The AudioOutputPtr ao holds a reference to the audio output. Calling wipe() only clears the buffers, but the reference still exists. When we call restartAudio() without ao going out of scope, then Audio::stop() will loop endlessly as we are waiting for all audio output references to clear. We fix this deadlock by explicitly resetting the shared_ptr ao, such that it doesn't hold a reference anymore when restartAudio() is called. Fixes #5081
2021-06-01FIX(pipewire): Do not initialize stream with 0 channelsMagnus Groß
If we initialize the stream with 0 channels, the call to connect() will still succeed. In that case the pipewire callback will crash due to zero division as chunk->stride and pwo->iChannels will be zero. We fix this by explicitly initializing the channel number with a sane value. Fixes #5075
2021-05-31TRANSLATION: Update Polish translationHosted Weblate
Currently translated at 100.0% (2045 of 2045 strings) TRANSLATION: Update Polish translation Currently translated at 99.9% (2044 of 2045 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-05-31TRANSLATION: Update Chinese (Simplified) translationHosted Weblate
Currently translated at 100.0% (2045 of 2045 strings) TRANSLATION: Update Chinese (Simplified) translation Currently translated at 100.0% (2045 of 2045 strings) Co-authored-by: CA_GA_64 <xjdzch@126.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-05-31TRANSLATION: Update Dutch translationHosted Weblate
Currently translated at 100.0% (2045 of 2045 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
2021-05-31TRANSLATION: Update Russian translationHosted Weblate
Currently translated at 99.9% (2043 of 2045 strings) Co-authored-by: Game one <denis.melnyk.2006@gmail.com> Co-authored-by: Hosted Weblate <hosted@weblate.org> Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/ru/ Translation: Mumble/Mumble Client
2021-05-31TRANSLATION: Update English (United Kingdom) translationHosted Weblate
Currently translated at 13.7% (281 of 2045 strings) Co-authored-by: Hosted Weblate <hosted@weblate.org> Co-authored-by: Tomás Correia Marques <tomasmanuelcorreiamarques@gmail.com> Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/en_GB/ Translation: Mumble/Mumble Client
2021-05-31TRANSLATION: Update Hungarian translationHosted Weblate
Currently translated at 81.4% (1665 of 2045 strings) TRANSLATION: Update Hungarian translation Currently translated at 79.7% (1630 of 2045 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-05-31TRANSLATION: Update German translationHosted Weblate
Currently translated at 99.9% (2043 of 2045 strings) TRANSLATION: Update German translation Currently translated at 99.9% (2043 of 2045 strings) TRANSLATION: Update German translation Currently translated at 99.8% (2041 of 2045 strings) Co-authored-by: Hosted Weblate <hosted@weblate.org> Co-authored-by: Robert Adam <dev@robert-adam.de> Co-authored-by: VfBFan <drop0815@posteo.de> Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/de/ Translation: Mumble/Mumble Client
2021-05-31TRANSLATION: Update Turkish translationHosted Weblate
Currently translated at 100.0% (2045 of 2045 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-05-31TRANSLATION: Update Korean translationHosted Weblate
Currently translated at 87.7% (1795 of 2045 strings) TRANSLATION: Update Korean translation Currently translated at 85.5% (1749 of 2045 strings) TRANSLATION: Update Korean translation Currently translated at 83.1% (1701 of 2045 strings) TRANSLATION: Update Korean translation Currently translated at 81.5% (1668 of 2045 strings) TRANSLATION: Update Korean translation Currently translated at 81.4% (1665 of 2045 strings) Co-authored-by: Hosted Weblate <hosted@weblate.org> Co-authored-by: Linmalu(린마루) <gkdwns0103@gmail.com> Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/ko/ Translation: Mumble/Mumble Client
2021-05-31TRANSLATION: Update French translationHosted Weblate
Currently translated at 93.0% (1903 of 2045 strings) TRANSLATION: Update French translation Currently translated at 93.0% (1903 of 2045 strings) Co-authored-by: Hosted Weblate <hosted@weblate.org> Co-authored-by: Maëva Calmettes <maeva.c@protonmail.com> Co-authored-by: bendem <online+weblate.org@bendem.be> Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/fr/ Translation: Mumble/Mumble Client
2021-05-31BUILD(cmake): Rename server to mumble-serverRobert Adam
The produced binary as well as the used cmake target was renamed from "murmurd" and "murmur" respectively to "mumble-server". The installer code was adapted accordingly.
2021-05-28Merge PR #5050: Backport "CHANGE(client): Resize posted images to 800x600 ↵Robert Adam
instead of 420x270" Backport of #5029
2021-05-28Merge PR #5047: Backport "FEAT(client): Do not play the mute cue when ↵Robert Adam
push-to-muted" Backport of #5038
2021-05-28FIX(client): Positional audio not working properly after canceling audio wizardDavide Beatrici
The "bPosTest" variable indicates whether we're in the middle of a test. It causes the user's direction vector to freeze so that it always "looks" straight ahead. When completing the wizard, accept() is called and thus the variable is set to false again. However, when the wizard is closed prematurely, reject() is called instead.
2021-05-28REFAC(client): Reorder code in AudioWizard so that reject() matches accept()Davide Beatrici