This adds the switch -c/--config to the mumble client. If -c is followed by a filename, this file will be read instead of the standard config.
A new config option database= has been added to the 'General' section of the ini file. This can be used to specify a different database which is necessary to run multiple completely separate Mumble instances at the same time.
Additionaly the (undocumented) function to merge another ini file by providing it as a parameter has been removed as it was conflicting with the added functionality.
FIXES#3953
This adds the switch -c/--config to the mumble client. If -c is
followed by a filename, this file will be read instead of the
standard config. A new config option database= has been added to
the 'General' section of the ini file. This can be used to specify
a different database which is necessary to run multiple completely
separate Mumble instances at the same time.
Additionaly the (undocumented) function to merge another ini file
by providing it as a parameter has been removed as it was
conflicting with the added functionality.
FIXES#3953
Instead of publishing each and every PDB file separately, we now zip
them together into an archive and publish that. That'll reduce the
amount of published files which should make it easier to find what
you're looking for.
As of now the built x86 files overwrite the x64 ones since the x64
build is usually done first but they both produce files of the same
name.
With this commit the build artifacts for x86 and x64 are separated.
Instead of publishing each and every PDB file separately, we now zip
them together into an archive and publish that. That'll reduce the
amount of published files which should make it easier to find what
you're looking for.
As of now the built x86 files overwrite the x64 ones since the x64
build is usually done first but they both produce files of the same
name.
With this commit the build artifacts for x86 and x64 are separated.
If a received UDP is greater than what our allocated buffers can hold,
they are discarded as of now. Previously they have been trimmed down but
the untrimmed size was used in following code which could lead to stack
corruption.
This PR fixes 2 issues in the server's code that have something to do with packet sizes:
1. Make sure poslen <= len in order for len - poslen to never get negative (which can cause trouble down the line)
2. Enforce the maximum package size for packets received via UDPTunnel as well
If a received UDP is greater than what our allocated buffers can hold,
they are discarded as of now. Previously they have been trimmed down but
the untrimmed size was used in following code which could lead to stack
corruption.
The buffer's size for the received UDP packets were magic numbers in the
code. This was refactored so that this size is now only specified once
by storing it in a constant which is then used where needed.
By default Qt sets a timeout of 5 minutes for each test and fails it if
that time is exceeded. On the new 32bit build however our Diffie-Helman
test needs more time and thus we increase the limit to 10 minutes which
seems to be sufficient.
Before this commit the packet size for packets sent through the
UDPTunnel was not checked for whether it exceeded the maximum allowed
size. This might open Mumble for attacks of some sort as the code
usually expects the packets to be of at most that size.
This fixes the second case of PostgreSQL migration failure in #4292
Not tested with a players table, and tested only on PostgreSQL though the changes should make the drops work better on any database.
Additionally the changes were left minimal to not introduce new issues, rather than reordering the whole section to the most logical order.
This should save some time during building the installer which hopefully
helps preventing the Windows CI from exceeding the maximum time.
Co-authored-by: Davide Beatrici <github@davidebeatrici.dev>
As experienced before, disabling the progress monitor for web-requests
in PowerShell can drastically increase the download speed. The newer
script however only used to trick for the main build environment but not
for downloading the other stuff (like ASIO SDK).
This commit sets the respective preference in the beginning of the
script and doesn't reset it anymore so that now all web-requests should
benefit from it.
As experienced before, disabling the progress monitor for web-requests
in PowerShell can drastically increase the download speed. The newer
script however only used to trick for the main build environment but not
for downloading the other stuff (like ASIO SDK).
This commit sets the respective preference in the beginning of the
script and doesn't reset it anymore so that now all web-requests should
benefit from it.
Before this commit it was only possible to select users in the TalkingUI
(and thereby it was also only possible to trigger the context menu for
users via the TalkingUI).
This commit extends the functionality that currently exists for users to
channels as well. This includes selection as well as the context menu.
Mumble_TalkingUI_ChannelSelection
Before this commit it was only possible to select users in the TalkingUI
(and thereby it was also only possible to trigger the context menu for
users via the TalkingUI).
This commit extends the functionality that currently exists for users to
channels as well. This includes selection as well as the context menu.
MacStadium kindly provided us an hosted 2012 Mac mini for free last year.
Until now we only used it for testing and to build the vcpkg environment, waiting for the CMake project to be merged.
Now that everything is in place, we can use it for CI and to release builds.
We are working on adding a 32 bit Windows build to Azure Pipelines and noticed that it was failing due to "IUnknown" not being defined.
The issue was quickly fixed by including <unknwn.h>, however we wondered why we didn't encounter it with the 64 bit Windows build (which compiles the overlay library as 64 bit and 32 bit).
Turns out minhook was used for the 32 bit overlay library due to the if() logic missing a crucial condition: "BUILD_OVERLAY_XCOMPILE" must be false, because "64_BIT" is true due to it being defined outside of the cross-compile environment.
MacStadium kindly provided us an hosted 2012 Mac mini for free last year.
Until now we only used it for testing and to build the vcpkg environment, waiting for the CMake project to be merged.
Now that everything is in place, we can use it for CI and to release builds.
"Agent.BuildDirectory" refers to the path on the agent where all folders for the pipeline are created.
"Build.BinariesDirectory" is the correct variable to use: it refers to the path that can be used as an output folder for compiled binaries.
Reference: https://docs.microsoft.com/en-us/azure/devops/pipelines/build/variables
MainWindow::serverDisconnected did not always get called when
terminating Mumble normally (not by pressing Ctrl+C). The reason for
that was that 2-fold:
a) There was a race between the main thread and the ServerHandler
thread. If the ServerHandler did not exit fast enough, the disconnect
event it emitted wouldn't reach the main thread in time to be processed
before the application exits
b) The main thread didn't make sure that all events have been processed
before actually shutting down and starting deleting objects.
This is solved now by first waiting for the ServerHandler thread to exit
before proceeding the shutdown process. In order to never run in the
situation in which the main thread won't exit because the ServerHandler
got stuck somehow, a hard limit of 2 seconds was set.
After the ServerHandler has exited, the main thread will ask Qt to
process all pending events before starting to do the cleanup (deleting
objects).
Due to the disconnect EH now reliably being called, it is no longer
necessary to duplicate actions in the EH and in the shutdown process
(e.g. save ChannelListeners or saving server-specific shortcuts). Thus
these are now only performed in the disconnect EH.