- Jan 31, 2025
-
-
In some cases the normalized quality is NaN. Then, the json (application state) can not be decoded and everything fails: INF avgRttNormalized := (rtt - minAvgRtt) / (maxAvgRtt - minAvgRtt) INF avgRttNormalized := (126 - 126) / (126 - 126) => NaN This will be fixed in a nice way in the future when we decided more about gateway selection (and mybe have a quality given by menshen)
-
- Dec 04, 2024
-
-
during initialization setting ctx.bitmask as soon as vpn.Init() returns and by not returning error from launcher.FirewallStop this works around the issue where the app crashes because of calling methods of the Bitmask object which was nil the launcher.FirewallStop method returned an error when the helper was not installed
-
the status variable was being redeclared inside the else block which goes out of scope when it returned leading to returning the wrong status value this fixes a bug when switching location while still connected to a gateway as the status was always "Off" the existing connection was not stopped before trying to connect to the new gateway
-
when switching location while still connected Reconnect is called which tries to stop the connection directly calling bitmask-root before trying to stop using bitmask-root try to disconnect using the management interface like it is done when users click disconnect button on the UI
- Dec 03, 2024
-
-
jkito authored
check if the LEAP_INTRODUCER_URL env variable is non-empty and use its value as introducer URL this allows us to test the introducer feature in the client
- Nov 20, 2024
-
-
In case of an error, we try to logDnsLookup(url.Host). url is based on the provider api url. This can be localhost:8443, so we need to strip the port :8443 before. There is also a small change in pkg/vpn/status.go. When using an introducer, fetching information from menshen can take some time. Then it can be normal that the call to `GetBestLocation()` fails. This is not a big deal, as it is called later/periodically. But when we use .Err(), the output is printed bold to stdout and it looks like there is a big issue.
- Oct 19, 2024
-
-
jkito authored
bitmask-vpn installs a daemon called bitmask-helper which exposes a http api to handle firewall up/down and openvpn connect/disconnect (only in macos) this daemon was listening on localhost, since it is meant to be only accessible to local processes we'v changed it to listen on a unix domain socket using unix socket allows to apply file permissions and restrict access to the api to only the intended user
-
- Oct 14, 2024
-
-
Pea Nut authored
Add DoGeolocationLookup implementations (v3 + v5)
-
Pea Nut authored
- add new fields STUNServers and countryCodeLookupURL in providers/vendor.conf (required for the geolocation lookup) - load new fields STUNServers and countryCodeLookupURL from providers json - update gen-providers-json script to support geolocation lookup (the STUN servers should be separated with , in providers/vendor.conf)
-
Pea Nut authored
-
Pea Nut authored
- Remove function parseApiURL (was moved to bitmask-core) - Use NewConfigFromURL instead of NewConfig - We can still overwrite the API url by setting env API_URL
-
- Oct 13, 2024
-
-
this adds a new helper setDefaults() in the config package and calls it when the config file doesn't exist, this provides a way for us to have default values for the config options setDefaults currently only sets the UDP config to 'true' since it is expected that UDP is enabled by default
- Aug 03, 2024
-
-
jkito authored
since obfs4 and kcp is disabled in the UI when provider is riseup, transport needs to be set to openvpn to work around config file with Obfs4 and KCP set to true from a previous version of the app
-
jkito authored
the Stop is blocking and cannot be called concurrently with Start, when for some reason obfs4 client fails to connect and has not yet returned from Start, a call to Stop will block until Start has returned, which makes UI unresponsive for some time calling it in a separate Go routine works around this issue as we can proceed to stop the openvpn process
-
in case of KCP the transport.Type is still obfs4, but it has a different port than obfs4, without this commit KCP enabled bridges were also considered as valid obfs4 bridges in theory the same bridge can be running in both obfs4 and KCP mode and listening on different ports, but the eip-service.json schema separates this into different transport objects this fixes a bug where after selecting obfs4 transport it was trying connect to a KCP enabled bridge with plain obfs4 mode
-
- Jul 29, 2024
-
-
jkito authored
-
- Jul 26, 2024
-
- Jul 22, 2024
-
-
jkito authored
this adds a new boolean "KCP" key to the systray.json config file kcp is linked to obfs4, so setting kcp to 'true' sets obfs4 to also true
-
jkito authored
since io/ioutil package is deprecated now, this uses equivalent functions from the os package
-
jkito authored
this adds a check box to the transport section of preferences to enable KCP and makes the necessary updates to SetTransport and GetTransport to allow KCP to be used as a transport name
-
jkito authored
the startOpenVPN method fetches gateways for the requested transport starts the local proxy, sets up firewall and then makes the call to start openvpn this introduces helper methods to perform the preparatory tasks before openvpn can be started, this makes it easier to navigate the function
-
Pea Nut authored
cli (cmd/bitmask-helper/main.go and) and helpers (pkg/pickle/helpers.go) were also fixed.
-
Pea Nut authored
It only calls vpn.Init()
-