Skip to content

Commit a033437

Browse files
committed
v2.19.4
1 parent 87fa428 commit a033437

File tree

14 files changed

+160
-25
lines changed

14 files changed

+160
-25
lines changed

libs/wsnet/src/api/serverapi/pingtest.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#include "pingtest.h"
22
#include <skyr/url.hpp>
3+
#include "utils/wsnet_logger.h"
34
#include "utils/urlquery_utils.h"
45
#include "utils/utils.h"
56

@@ -46,12 +47,14 @@ void PingTest::onHttpNetworkRequestFinished(std::uint64_t requestId, std::uint32
4647
bool bSuccess = false;
4748
if (error->isSuccess()) {
4849
auto trimmedData = utils::trim(data);
49-
if (utils::isIpAddress(trimmedData)) {
50+
// Extract HTTP response code from the error object. It must be 200 and returned data must be a valid IP address.
51+
if (error->httpResponseCode() == 200 && utils::isIpAddress(trimmedData)) {
5052
it->second.callback->call(ApiRetCode::kSuccess, trimmedData);
5153
bSuccess = true;
5254
} else if (it->second.curEndpointInd < (endpoints_.size() - 1)) {
5355
// try next backup endpoint
5456
it->second.curEndpointInd++;
57+
g_logger->info("Trying backup endpoint for PingTest: {}", endpoints_[it->second.curEndpointInd].domain()->c_str());
5558
auto httpRequest = httpNetworkManager_->createGetRequest(endpoints_[it->second.curEndpointInd].c_str(), it->second.timeoutMs, false);
5659
httpRequest->setUseDnsCache(false);
5760
httpRequest->setIsWhiteListIps(false);

src/client/common/changelog.txt

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,16 @@
1+
2.19.4 (03/12/2025)
2+
All:
3+
* Added HTTP 200 response check for connectivity tests and logging for backup endpoint usage. #1552
4+
* Improved additional Slovak translations from GitHub user kubalav. #1524
5+
* Fixed ctrld may not be terminated after disconnecting. #1575
6+
* Fixed initial unhover opacity for IP utilities menu. #1577
7+
* Fixed dropdown item order for sound notifications. #1578
8+
MacOS:
9+
* Fixed DMG format to be ULMO for better space efficiency. #1539
10+
Linux:
11+
* Fixed IPv4/v6 DNS priority while connected. #1580
12+
13+
114
2.19.3 (27/11/2025)
215
All:
316
* Added a backup endpoint for connectivity tests (PingTest call) in wsnet. #1552

src/client/common/version/windscribe_version.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22

33
#define WINDSCRIBE_MAJOR_VERSION 2
44
#define WINDSCRIBE_MINOR_VERSION 19
5-
#define WINDSCRIBE_BUILD_VERSION 3
5+
#define WINDSCRIBE_BUILD_VERSION 4
66

77
// only one of these should be enabled; neither -> stable
8-
//#define WINDSCRIBE_IS_BETA
9-
#define WINDSCRIBE_IS_GUINEA_PIG
8+
#define WINDSCRIBE_IS_BETA
9+
//#define WINDSCRIBE_IS_GUINEA_PIG
1010

1111
#define STR_HELPER(x) #x
1212
#define STR(x) STR_HELPER(x)

src/client/engine/engine/connectionmanager/connectionmanager.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -457,6 +457,7 @@ void ConnectionManager::onConnectionReconnecting()
457457
{
458458
qCDebug(LOG_CONNECTION) << "ConnectionManager::onConnectionReconnecting(), state_ =" << state_;
459459

460+
ctrldManager_->killProcess(); // If we are reconnecting, we need to kill the ctrld process if it exists, to avoid conflicts with the new connection
460461
testVPNTunnel_->stopTests();
461462

462463
// bIgnoreConnectionErrorsForOpenVpn_ need to prevent handle multiple error messages from openvpn

src/client/gui/connectwindow/iputilsmenu.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ IpUtilsMenu::IpUtilsMenu(ScalableGraphicsObject *parent)
1414
favouriteButton_->setUnhoverOpacity(0.7);
1515
favouriteButton_->setHoverOpacity(1.0);
1616
favouriteButton_->setClickableHoverable(true, true);
17+
favouriteButton_->unhover();
1718
connect(favouriteButton_, &IconButton::clicked, this, &IpUtilsMenu::favouriteClick);
1819
connect(favouriteButton_, &IconButton::hoverEnter, this, &IpUtilsMenu::favouriteHoverEnter);
1920
connect(favouriteButton_, &IconButton::hoverLeave, this, &IpUtilsMenu::favouriteHoverLeave);
@@ -22,13 +23,15 @@ IpUtilsMenu::IpUtilsMenu(ScalableGraphicsObject *parent)
2223
rotateButton_->setUnhoverOpacity(0.7);
2324
rotateButton_->setHoverOpacity(1.0);
2425
rotateButton_->setClickableHoverable(true, true);
26+
rotateButton_->unhover();
2527
connect(rotateButton_, &IconButton::clicked, this, &IpUtilsMenu::rotateClick);
2628
connect(rotateButton_, &IconButton::hoverEnter, this, &IpUtilsMenu::rotateHoverEnter);
2729
connect(rotateButton_, &IconButton::hoverLeave, this, &IpUtilsMenu::rotateHoverLeave);
2830

2931
closeButton_ = new IconButton(24, 24, "ip-utils/CLOSE", "", this);
3032
closeButton_->setUnhoverOpacity(0.7);
3133
closeButton_->setHoverOpacity(1.0);
34+
closeButton_->unhover();
3235
connect(closeButton_, &IconButton::clicked, this, &IpUtilsMenu::closeClick);
3336

3437
updatePositions();

src/client/gui/preferenceswindow/lookandfeelwindow/soundsgroup.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,8 +91,8 @@ void SoundsGroup::onLanguageChanged()
9191

9292
connectedComboBox_->setLabelCaption(tr("When Connected"));
9393
QList<QPair<QString, QVariant>> connectedList;
94-
connectedList << qMakePair(tr("Bundled"), SOUND_NOTIFICATION_TYPE_BUNDLED);
9594
connectedList << qMakePair(tr("None"), SOUND_NOTIFICATION_TYPE_NONE);
95+
connectedList << qMakePair(tr("Bundled"), SOUND_NOTIFICATION_TYPE_BUNDLED);
9696
connectedList << qMakePair(tr("Custom"), SOUND_NOTIFICATION_TYPE_CUSTOM);
9797
connectedComboBox_->setItems(connectedList, settings_.connectedSoundType);
9898
connectedComboBox_->setCustomValue(SOUND_NOTIFICATION_TYPE_CUSTOM);

src/client/gui/translations/ws_desktop_de.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2182,7 +2182,7 @@ Wenn die Neuinstallation nicht hilft, wenden Sie sich bitte an den Windscribe-Su
21822182
</message>
21832183
<message>
21842184
<source>Exclusive</source>
2185-
<translation>Ausgenommen</translation>
2185+
<translation>Ausschließen</translation>
21862186
</message>
21872187
<message>
21882188
<source>Inclusive</source>

src/client/gui/translations/ws_desktop_sk.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@
7171
</message>
7272
<message>
7373
<source>FIREWALL</source>
74-
<translation>BRÁNA FIREWALL</translation>
74+
<translation>FIREWALL</translation>
7575
</message>
7676
</context>
7777
<context>
@@ -85,7 +85,7 @@
8585
<name>ConnectWindow::LocationsMenu</name>
8686
<message>
8787
<source>All</source>
88-
<translation>Všetko</translation>
88+
<translation>Všetky</translation>
8989
</message>
9090
<message>
9191
<source>Custom configs</source>
@@ -273,11 +273,11 @@
273273
</message>
274274
<message>
275275
<source>FAVOURITES</source>
276-
<translation>OBĽÚBENCI</translation>
276+
<translation>OBĽÚBENÉ</translation>
277277
</message>
278278
<message>
279279
<source>STATIC IPs</source>
280-
<translation>STATICKÉ IP adresy</translation>
280+
<translation>STATICKÉ IP ADRESY</translation>
281281
</message>
282282
<message>
283283
<source>CUSTOM CONFIGs</source>
@@ -289,14 +289,14 @@
289289
</message>
290290
<message>
291291
<source>Add</source>
292-
<translation>Sčítať</translation>
292+
<translation>Pridať</translation>
293293
</message>
294294
</context>
295295
<context>
296296
<name>GuiLocations::StaticIPDeviceInfo</name>
297297
<message>
298298
<source>Add</source>
299-
<translation>Sčítať</translation>
299+
<translation>Pridať</translation>
300300
</message>
301301
</context>
302302
<context>
@@ -906,11 +906,11 @@ Ak problém pretrváva aj po reštarte, pošlite nám denník ladenia, otvorte
906906
</message>
907907
<message>
908908
<source>We couldn’t connect you on this network. Automatic connection mode recommended for best results. Switch connection mode to Auto?</source>
909-
<translation>Nemohli sme vás spojiť cez túto sieť. Odporúča sa automatický režim pripojenia pre najlepšie výsledky. Prepínať režim pripojenia na Auto?</translation>
909+
<translation>V tejto sieti sme vás nemohli pripojiť. Na dosiahnutie najlepších výsledkov sa odporúča automatický režim pripojenia. Prepnúť režim pripojenia na automatický?</translation>
910910
</message>
911911
<message>
912912
<source>Switch to Auto</source>
913-
<translation>Prejsť na automat</translation>
913+
<translation>Prepnúť na automatický</translation>
914914
</message>
915915
</context>
916916
<context>
@@ -2217,7 +2217,7 @@ Ak preinštalovanie nepomôže, obráťte sa na podporu Windscribe a požiadajte
22172217
</message>
22182218
<message>
22192219
<source>The Windscribe split tunneling system extension must be enabled for this feature to function. Please enable it in System Settings.</source>
2220-
<translation>Rozšírenie systému rozdeleného tunelovania Windscribe musí byť povolené, aby táto funkcia fungovala. Prosím, zapnite to v Systémových nastaveniach.</translation>
2220+
<translation>Aby táto funkcia fungovala, musí byť povolené rozšírenie Windscribe rozdelené tunelovanie. Povoľte ho v nastaveniach systému.</translation>
22212221
</message>
22222222
</context>
22232223
<context>
@@ -2566,7 +2566,7 @@ Ak preinštalovanie nepomôže, obráťte sa na podporu Windscribe a požiadajte
25662566
</message>
25672567
<message>
25682568
<source>Quit Windscribe</source>
2569-
<translation>Prestaň s Windscribe</translation>
2569+
<translation>Ukončiť Windscribe</translation>
25702570
</message>
25712571
<message>
25722572
<source>Favourites</source>
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
#!/bin/bash
2+
3+
# Copyright (c) 2020-2024, Windscribe Limited. All rights reserved.
4+
# Manages /etc/gai.conf to prioritize IPv4 when VPN blocks IPv6
5+
# Usage: gai-ipv4-priority up|down
6+
7+
PATH="$PATH:/usr/local/sbin:/usr/sbin:/sbin"
8+
9+
GAI_CONF="/etc/gai.conf"
10+
WINDSCRIBE_RUN_DIR="/var/run/windscribe"
11+
GAI_BACKUP="$WINDSCRIBE_RUN_DIR/gai.conf.bak"
12+
GAI_MODIFIED_FLAG="$WINDSCRIBE_RUN_DIR/gai_modified"
13+
14+
# Enable IPv4 priority by modifying gai.conf
15+
gai_ipv4_priority_up()
16+
{
17+
# Create run directory if it doesn't exist
18+
if [ ! -d "$WINDSCRIBE_RUN_DIR" ]; then
19+
mkdir -p "$WINDSCRIBE_RUN_DIR"
20+
fi
21+
22+
# Check if IPv4 priority is already configured
23+
if [ -f "$GAI_CONF" ] && grep -q "^precedence ::ffff:0:0/96 100" "$GAI_CONF" 2>/dev/null; then
24+
echo "IPv4 priority already configured in $GAI_CONF"
25+
return 0
26+
fi
27+
28+
# Backup original gai.conf if it exists and not already backed up
29+
if [ -f "$GAI_CONF" ] && [ ! -f "$GAI_BACKUP" ]; then
30+
cp "$GAI_CONF" "$GAI_BACKUP"
31+
fi
32+
33+
# If gai.conf doesn't exist, create it
34+
if [ ! -f "$GAI_CONF" ]; then
35+
echo "# gai.conf - getaddrinfo configuration" > "$GAI_CONF"
36+
fi
37+
38+
# Add IPv4 priority configuration
39+
# This gives IPv4-mapped addresses higher precedence than native IPv6
40+
echo "" >> "$GAI_CONF"
41+
echo "# Added by Windscribe to prioritize IPv4 when IPv6 is blocked" >> "$GAI_CONF"
42+
echo "precedence ::ffff:0:0/96 100" >> "$GAI_CONF"
43+
44+
# Mark that we modified the file
45+
touch "$GAI_MODIFIED_FLAG"
46+
47+
echo "IPv4 priority configured in $GAI_CONF"
48+
}
49+
50+
# Restore original gai.conf
51+
gai_ipv4_priority_down()
52+
{
53+
# Check if we modified the file
54+
if [ ! -f "$GAI_MODIFIED_FLAG" ]; then
55+
echo "No gai.conf modifications to restore"
56+
return 0
57+
fi
58+
59+
# Restore backup if it exists
60+
if [ -f "$GAI_BACKUP" ]; then
61+
cp "$GAI_BACKUP" "$GAI_CONF"
62+
rm -f "$GAI_BACKUP"
63+
echo "Restored original $GAI_CONF"
64+
else
65+
# No backup exists, we created the file, so delete it
66+
if [ -f "$GAI_CONF" ]; then
67+
rm -f "$GAI_CONF"
68+
echo "Removed $GAI_CONF created by Windscribe"
69+
fi
70+
fi
71+
72+
# Remove the flag
73+
rm -f "$GAI_MODIFIED_FLAG"
74+
}
75+
76+
main()
77+
{
78+
local action="$1"
79+
80+
if [[ $action == "up" ]]; then
81+
gai_ipv4_priority_up
82+
elif [[ $action == "down" ]]; then
83+
gai_ipv4_priority_down
84+
else
85+
echo "Usage: gai-ipv4-priority up|down"
86+
return 1
87+
fi
88+
}
89+
90+
main "$@"

src/installer/linux/common/opt/windscribe/scripts/update-network-manager

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,10 @@ case "$script_type" in
4747
done
4848

4949
"$DNS_LEAK_SCRIPT" "up" ${servers[@]}
50+
51+
# Prioritize IPv4 to avoid delays when IPv6 is blocked
52+
GAI_SCRIPT=$SCRIPT_DIR/gai-ipv4-priority
53+
"$GAI_SCRIPT" "up"
5054
;;
5155
down)
5256

@@ -62,5 +66,9 @@ case "$script_type" in
6266
fi
6367

6468
"$DNS_LEAK_SCRIPT" "down"
69+
70+
# Restore original gai.conf
71+
GAI_SCRIPT=$SCRIPT_DIR/gai-ipv4-priority
72+
"$GAI_SCRIPT" "down"
6573
;;
6674
esac

0 commit comments

Comments
 (0)