Skip to content

Commit

Permalink
v2.10.11
Browse files Browse the repository at this point in the history
  • Loading branch information
bernerdad committed Jun 5, 2024
1 parent 2974d6d commit 8e2c27d
Show file tree
Hide file tree
Showing 21 changed files with 156 additions and 60 deletions.
7 changes: 0 additions & 7 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -116,11 +116,6 @@ variables:
- ./tools/vcpkg/install_ci/vcpkg_install.sh "${VCPKG_ROOT}" --configure-git
interruptible: true

.download_dependency_ctrld:
script:
- curl --silent --show-error --fail -u "${NEXUS_USERNAME}:${NEXUS_PASSWORD}" --cacert tools/cacert.pem
--create-dirs -o ${BUILD_LIBS_FOLDER}/ctrld.zip "${NEXUS_PATH_DEPS}/${OS_IDENTIFIER}/ctrld.zip"

.download_dependency_openvpn_dco:
script:
- curl --silent --show-error --fail -u "${NEXUS_USERNAME}:${NEXUS_PASSWORD}" --cacert tools/cacert.pem
Expand Down Expand Up @@ -148,7 +143,6 @@ variables:

.download_dependencies_win:
script:
- !reference [.download_dependency_ctrld, script]
- !reference [.download_dependency_openvpn_dco, script]
- !reference [.download_dependency_qt, script]
- !reference [.download_dependency_wintun, script]
Expand All @@ -157,7 +151,6 @@ variables:

.download_dependencies_posix:
script:
- !reference [.download_dependency_ctrld, script]
- !reference [.download_dependency_qt, script]
- !reference [.download_dependency_wireguard, script]
- !reference [.download_dependency_wstunnel, script]
Expand Down
6 changes: 0 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,8 +59,6 @@ install_wireguard
install_wstunnel
```

As of version 2.7, you will need a copy of the [ctrld utility](https://github.com/Control-D-Inc/ctrld). Follow the instructions in that repo to build it, and place the binary at `build-libs[-arm64]/ctrld/ctrld.exe`.

### Build the Windscribe 2.0 app

Go to subfolder `tools` and run `build_all`. Assuming all goes well with the build, the installer will be placed in `build-exe`. You can run `build_all --sign --use-local-secrets` for a code-signed build, using the certificate from the [Install signing certificate](#install-signing-certificate-optional) section above, which will perform run-time signature verification checks on the executables. Note that an unsigned build must be installed on your PC if you intend to debug the project. Append `--arm64` to the command to build for Windows arm64.
Expand Down Expand Up @@ -139,8 +137,6 @@ install_wireguard
install_wstunnel
```

As of version 2.7, you will need a copy of the [ctrld utility](https://github.com/Control-D-Inc/ctrld). Follow the instructions in that repo to build it, and place the binary at `build-libs/ctrld/ctrld`.

### Build the Windscribe 2.0 app

Go to subfolder `tools` and run `build_all`. Assuming all goes well with the build, the installer will be placed in `build-exe`.
Expand Down Expand Up @@ -214,8 +210,6 @@ install_wireguard
install_wstunnel
```

As of version 2.7, you will need a copy of the [ctrld utility](https://github.com/Control-D-Inc/ctrld). Follow the instructions in that repo to build it, and place the binary at `build-libs/ctrld/ctrld`.

### Build the Windscribe 2.0 app

Go to subfolder `tools` and run `build_all`. Assuming all goes well with the build, the installer will be placed in `build-exe`.
Expand Down
3 changes: 2 additions & 1 deletion backend/linux/helper/ovpn.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,8 @@ bool writeOVPNFile(const std::string &dnsScript, int port, const std::string &co
std::string opts = \
"management 127.0.0.1 " + std::to_string(port) + "\n" \
"management-query-passwords\n" \
"management-hold\n";
"management-hold\n" \
"verb 3\n";

if (httpProxy.length() > 0) {
opts += "http-proxy " + httpProxy + " " + std::to_string(httpPort) + " auto\n";
Expand Down
3 changes: 2 additions & 1 deletion backend/mac/helper/ovpn.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,8 @@ bool writeOVPNFile(const std::string &dnsScript, int port, const std::string &co
std::string opts = \
"management 127.0.0.1 " + std::to_string(port) + "\n" \
"management-query-passwords\n" \
"management-hold\n";
"management-hold\n" \
"verb 3\n";

if (httpProxy.length() > 0) {
opts += "http-proxy " + httpProxy + " " + std::to_string(httpPort) + " auto\n";
Expand Down
13 changes: 12 additions & 1 deletion client/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,9 @@ if (WIN32)
#postbuild copy commands for Windows
add_custom_command(TARGET Windscribe POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different
${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/tools/openvpn/openvpn.exe $<TARGET_FILE_DIR:Windscribe>/windscribeopenvpn.exe)

add_custom_command(TARGET Windscribe POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different
${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/tools/ctrld/ctrld.exe $<TARGET_FILE_DIR:Windscribe>/windscribectrld.exe)
elseif (APPLE)
#postbuild copy commands for Mac
set(WINDSCRIBE_BUILD_LIBS_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../build-libs)
Expand All @@ -109,8 +112,9 @@ elseif (APPLE)

add_custom_command(TARGET Windscribe POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different
${WINDSCRIBE_BUILD_LIBS_PATH}/wireguard/windscribewireguard $<TARGET_FILE_DIR:Windscribe>/../Helpers/windscribewireguard)

add_custom_command(TARGET Windscribe POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different
${WINDSCRIBE_BUILD_LIBS_PATH}/ctrld/ctrld $<TARGET_FILE_DIR:Windscribe>/../Helpers/windscribectrld)
${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/tools/ctrld/ctrld $<TARGET_FILE_DIR:Windscribe>/../Helpers/windscribectrld)

add_custom_command(TARGET Windscribe POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different
${WINDSCRIBE_BUILD_LIBS_PATH}/wstunnel/windscribewstunnel $<TARGET_FILE_DIR:Windscribe>/../Helpers/windscribewstunnel)
Expand Down Expand Up @@ -170,6 +174,7 @@ install(TARGETS Windscribe wsnet

if (WIN32)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/windscribeopenvpn.exe DESTINATION .)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/windscribectrld.exe DESTINATION .)
endif()

if(UNIX AND (NOT APPLE))
Expand All @@ -185,4 +190,10 @@ if(UNIX AND (NOT APPLE))
DESTINATION .
PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
)
# copy ctrld
install(FILES ${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/tools/ctrld/ctrld
RENAME windscribectrld
DESTINATION .
PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
)
endif()
16 changes: 15 additions & 1 deletion client/common/changelog.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,21 @@
2.10.11 (03/06/2024)
All:
* Fixed wsnet bug sometimes causing the library to freeze. #1012
* Updated ctrld dependency to 1.3.7. #1022
MacOS:
* Fixed MacOS 11 bug, unable to open app after installing. #1011
* Fixed Wireguard takes too long to connect and tunnel tests are randomly slow. #1013
* Fixed missing "verb 3" argument for OpenVPN after refactor. #997
Linux:
* Fixed tray icon sometimes can't be clicked. #792
* Fixed missing "verb 3" argument for OpenVPN after refactor. #997
* Fixed resolvconf/NetworkManager DNS managers sometimes not taking effect. #1015


2.10.10 (15/05/2024)
All:
* Fixed wsnet bugs, in particular the icmp ping bug. Also other library refactoring related improvements taken from 2.11. #999
* Improved internal error handling. #987
* Fixed wsnet bugs, in particular the icmp ping bug. Also other library refactoring related improvements taken from 2.11. #999
Windows:
* Added security warning in the installer when installing to a custom folder. #988
* Added debugging information for wsnet. #1001
Expand Down
2 changes: 1 addition & 1 deletion client/common/version/windscribe_version.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

#define WINDSCRIBE_MAJOR_VERSION 2
#define WINDSCRIBE_MINOR_VERSION 10
#define WINDSCRIBE_BUILD_VERSION 10
#define WINDSCRIBE_BUILD_VERSION 11

// only one of these should be enabled; neither -> stable
//#define WINDSCRIBE_IS_BETA
Expand Down
5 changes: 5 additions & 0 deletions client/gui/mainwindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3424,6 +3424,11 @@ void MainWindow::setupTrayIcon()
{
updateTrayTooltip(tr("Disconnected") + "\n" + PersistentState::instance().lastExternalIp());

// Create tray menu items here, because it seems like Qt on Linux does not even trigger aboutToShow()
// if the menu is empty, and since aboutToShow() is never called, we never populate the menu, ad nauseum.
// Calling createTrayMenuItems() once here makes everything work.
createTrayMenuItems();

trayIcon_.setContextMenu(&trayMenu_);
connect(&trayMenu_, &QMenu::aboutToShow, this, &MainWindow::onTrayMenuAboutToShow);
connect(&trayMenu_, &QMenu::aboutToHide, this, &MainWindow::onTrayMenuAboutToHide);
Expand Down
30 changes: 15 additions & 15 deletions installer/common/translations/windscribe_installer_ru.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,21 +5,21 @@
<name>AlertWindow</name>
<message>
<source>ESC</source>
<translation>Регулятор</translation>
<translation>ЗАКР</translation>
</message>
</context>
<context>
<name>InitialWindow</name>
<message>
<source>Read EULA</source>
<translation>Ознакомиться с конечным пользователем</translation>
<translation>Ознакомиться с лицензионным соглашением</translation>
</message>
</context>
<context>
<name>InstallButton</name>
<message>
<source>Install</source>
<translation>Устанавливать</translation>
<translation>Установить</translation>
</message>
<message>
<source>%1%</source>
Expand All @@ -46,11 +46,11 @@
</message>
<message>
<source>The specified installation path is not on the system drive. To ensure the security of the application, and your system, it must be installed on the same drive as Windows. The installation folder has been reset to the default.</source>
<translation>Указанный путь установки отсутствует на системном диске. Чтобы обеспечить безопасность приложения и вашей системы, оно должно быть установлено на том же диске, что и Windows. Папка установки была сброшена до значений по умолчанию.</translation>
<translation>Указанный путь установки отсутствует на системном диске. Чтобы обеспечить безопасность приложения и вашей системы, оно должно быть установлено на том же диске, что и Windows. Папка установки была сброшена до стандартной.</translation>
</message>
<message>
<source>OK</source>
<translation>ХОРОШО</translation>
<translation>ОК</translation>
</message>
<message>
<source>The installation was cancelled. Administrator privileges are required to install the application.</source>
Expand All @@ -66,15 +66,15 @@
</message>
<message>
<source>The installer could not connect to the privileged helper tool. Please try again.</source>
<translation>Установщику не удалось подключиться к привилегированному вспомогательному средству. Повторите попытку.</translation>
<translation>Установщику не удалось подключиться к привилегированной вспомогательной службе. Повторите попытку.</translation>
</message>
<message>
<source>An existing installation of Windscribe could not be removed. Please uninstall the application manually and try again.</source>
<translation>Не удалось удалить существующую установку Windscribe. Удалите приложение вручную и повторите попытку.</translation>
</message>
<message>
<source>Quit</source>
<translation>Покидать</translation>
<translation>Выйти</translation>
</message>
<message>
<source>Cancel</source>
Expand All @@ -98,7 +98,7 @@
</message>
<message>
<source>Installation to a custom folder may allow an attacker to tamper with the Windscribe application. To ensure the security of the application, and your system, we strongly recommend you install to the default location in the &apos;Program Files&apos; folder. Click OK to continue with the custom folder or Cancel to use the default location.</source>
<translation>Установка в пользовательскую папку может позволить злоумышленнику взломать приложение Windscribe. Чтобы обеспечить безопасность приложения и вашей системы, мы настоятельно рекомендуем вам установить его в папку «Program Files» по умолчанию. Нажмите кнопку ОК, чтобы продолжить работу с пользовательской папкой, или кнопку Отмена, чтобы использовать расположение по умолчанию.</translation>
<translation>Установка в пользовательскую папку может позволить злоумышленнику модифицировать приложение Windscribe. Чтобы обеспечить безопасность приложения и вашей системы, мы настоятельно рекомендуем вам установить его в папку «Program Files» по умолчанию. Нажмите кнопку ОК, чтобы продолжить работу с пользовательской папкой, или кнопку Отмена, чтобы использовать расположение по умолчанию.</translation>
</message>
</context>
<context>
Expand All @@ -117,23 +117,23 @@
</message>
<message>
<source>The Windscribe installer accepts the following optional commmand-line parameters: </source>
<translation>Инсталлятор Windscribe принимает следующие необязательные параметры commmand-line: </translation>
<translation>Инсталлятор Windscribe принимает следующие необязательные параметры командной строки: </translation>
</message>
<message>
<source>Show this information.</source>
<translation>Покажите эту информацию.</translation>
<translation>Показать эту информацию.</translation>
</message>
<message>
<source>Do not launch the application after installation.</source>
<translation>Не запускайте приложение после установки.</translation>
<translation>Не запускать приложение после установки.</translation>
</message>
<message>
<source>Instructs the installer to skip installing drivers.</source>
<translation>Указывает установщику пропустить установку драйверов.</translation>
</message>
<message>
<source>Delete existing preferences, logs, and other data, if they exist.</source>
<translation>Удалите существующие настройки, журналы и другие данные, если они существуют.</translation>
<translation>Удалить существующие настройки, журналы и другие данные, если они существуют.</translation>
</message>
<message>
<source>Overrides the default installation directory. Installation directory must be on the system drive.</source>
Expand Down Expand Up @@ -204,15 +204,15 @@
<name>SettingsWindow</name>
<message>
<source>Install Settings</source>
<translation>Настройки установки</translation>
<translation>Настройки установщика</translation>
</message>
<message>
<source>OK</source>
<translation>ХОРОШО</translation>
<translation>ОК</translation>
</message>
<message>
<source>Factory Reset</source>
<translation>Сброс к заводским настройкам</translation>
<translation>Сброс к стандартным настройкам</translation>
</message>
<message>
<source>Create shortcut</source>
Expand Down
12 changes: 8 additions & 4 deletions installer/linux/common/etc/windscribe/dns-leak-protect
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,12 @@ dnsleak_protection_up()
printf -v rules '%s-I OUTPUT -j windscribe_dnsleaks %s\n' "$rules" "$marker"

# disallow all OS-default DNS servers
for dnsIp in "${dns_array[@]}"
do
for dnsIp in "${dns_array[@]}"; do
for allowed in "$@"; do
if [[ $dnsIp == "$allowed" ]]; then
continue 2
fi
done
printf -v rules '%s-A windscribe_dnsleaks -d %s -p udp --dport 53 -j DROP %s\n' "$rules" "$dnsIp" "$marker"
printf -v rules '%s-A windscribe_dnsleaks -d %s -p tcp --dport 53 -j DROP %s\n' "$rules" "$dnsIp" "$marker"
done
Expand Down Expand Up @@ -87,11 +91,11 @@ main()
local action="$1"

if [[ $action == "up" ]]; then
dnsleak_protection_up
dnsleak_protection_up $@
elif [[ $action == "down" ]]; then
dnsleak_protection_down
else
echo "Usage: dns-leak-protect up|down"
echo "Usage: dns-leak-protect up|down [servers_to_allow]"
return 1
fi
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ case "$script_type" in
fi
done

"$DNS_LEAK_SCRIPT" "up" ${dev} ${servers[@]}
"$DNS_LEAK_SCRIPT" "up" ${servers[@]}
;;
down)

Expand Down
2 changes: 1 addition & 1 deletion installer/linux/common/etc/windscribe/update-resolv-conf
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ case "$script_type" in
echo -n "$R" | resolvconf -a "$(resolvconf_iface_prefix)${dev}" -m 0 -x
fi

"$DNS_LEAK_SCRIPT" "up" ${dev} ${servers[@]}
"$DNS_LEAK_SCRIPT" "up" ${servers[@]}

;;
down)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ up() {
# Set dns leak protection
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
DNS_LEAK_SCRIPT=$SCRIPT_DIR/dns-leak-protect
"$DNS_LEAK_SCRIPT" "up" ${dev} ${dns_ips[@]}
"$DNS_LEAK_SCRIPT" "up" ${dns_ips[@]}

# For the loopback DNS-address set the global DNS config
for dnsIp in "${dns_ips[@]}"
Expand Down
4 changes: 1 addition & 3 deletions installer/mac/installer/installer/installer.mm
Original file line number Diff line number Diff line change
Expand Up @@ -80,9 +80,7 @@ - (void)appDidLaunch:(NSNotification*)note
-(void)runLauncher
{
[[[NSWorkspace sharedWorkspace] notificationCenter] addObserver:self selector:@selector(appDidLaunch:) name:NSWorkspaceDidLaunchApplicationNotification object:nil];
NSWorkspaceOpenConfiguration *config = [NSWorkspaceOpenConfiguration configuration];
[config setCreatesNewApplicationInstance: YES];
[[NSWorkspace sharedWorkspace] openApplicationAtURL: [NSURL fileURLWithPath: [self getInstallPath]] configuration: config completionHandler: nil];
[[NSWorkspace sharedWorkspace] openURL: [NSURL fileURLWithPath: [self getInstallPath]]];
}

-(NSString *)runProcess:(NSString*)exePath args:(NSArray *)args
Expand Down
Loading

0 comments on commit 8e2c27d

Please sign in to comment.