parent
a5e5c3d941
commit
7351fe9633
69 changed files with 141 additions and 141 deletions
|
@ -87,7 +87,7 @@ Error 1
|
|||
Add a user defined variable to both AmneziaVPN and WireGuardNetworkExtension targets' build settings with
|
||||
key `PATH` and value `${PATH}/path/to/bin/folder/with/go/executable`, e.g. `${PATH}:/usr/local/go/bin`.
|
||||
|
||||
if above error still persists on you M1 Mac, then most proably you need to install arch based cmake
|
||||
if above error still persists on you M1 Mac, then most probably you need to install arch based cmake
|
||||
```
|
||||
arch -arm64 brew install cmake
|
||||
```
|
||||
|
@ -112,15 +112,15 @@ In case you get errors regarding missing SDK or 'sdkmanager not running', you ca
|
|||
|
||||
Double check that the right cmake version is configured: Click on `QT Creator` -> `Preferences` and click on the side menu on `Kits`. Under the center content view's `Kits` tab you'll find an entry `CMake Tool`. If the default selected CMake version is lower than 3.25.0, install on your system CMake >= 3.25.0 and choose `System CMake at <path>` from the drop down list. If this entry is missing, you either have not installed CMake yet or QT Creator hasn't found the path to it. In that case click in the preferences window on the side menu item `CMake`, then on the tab `Tools`in the center content view and finally on the Button `Add` to set the path to your installed CMake.
|
||||
|
||||
Please make sure that you have selected Android Platform SDK 33 for your project: click in the main view's side menu on on `Projects`, on the left you'll see a section `Build & Run` showing different Android build targets. You can select any of them, Amnezia VPN's project setup is designed in a way that always all Android targets will be build. Click on the targets submenu item `Build` and scroll in the center content view to `Build Steps`. Click on `Details` at the end of the headline `Build Android APK` (The `Details` button might be hidden in case QT Creator Window is not running in full screen!). Here we are: choose `android-33` as `Android Build platfrom SDK`.
|
||||
Please make sure that you have selected Android Platform SDK 33 for your project: click in the main view's side menu on on `Projects`, on the left you'll see a section `Build & Run` showing different Android build targets. You can select any of them, Amnezia VPN's project setup is designed in a way that always all Android targets will be build. Click on the targets submenu item `Build` and scroll in the center content view to `Build Steps`. Click on `Details` at the end of the headline `Build Android APK` (The `Details` button might be hidden in case QT Creator Window is not running in full screen!). Here we are: choose `android-33` as `Android Build platform SDK`.
|
||||
|
||||
That's it you should be ready to compile the project from QT Creator!
|
||||
|
||||
### Development flow
|
||||
After you've hit the build button, QT-Creator copies the whole project to a folder in the repositories parent directory. The folder should look something like `build-amnezia-client-Android_Qt_<version>_Clang_<architecture>-<BuildType>`.
|
||||
If you want to develop Amnezia VPNs Android components written in Kotlin, such as components using system APIs, you need to import the generated project in Android Studio with `build-amnezia-client-Android_Qt_<version>_Clang_<architecture>-<BuildType>/client/android-build` as the projects root directory. While you should be able to compile the generated project from Android Studio, you cannot work directly in the repository's Android project. So whenever you are confident with your work in the generated proejct, you'll need to copy and paste the affected files to the corresponding path in the repositories Android project so that you can add and commit your changes!
|
||||
If you want to develop Amnezia VPNs Android components written in Kotlin, such as components using system APIs, you need to import the generated project in Android Studio with `build-amnezia-client-Android_Qt_<version>_Clang_<architecture>-<BuildType>/client/android-build` as the projects root directory. While you should be able to compile the generated project from Android Studio, you cannot work directly in the repository's Android project. So whenever you are confident with your work in the generated project, you'll need to copy and paste the affected files to the corresponding path in the repositories Android project so that you can add and commit your changes!
|
||||
|
||||
You may face compiling issues in QT Creator after you've worked in Android Studio on the generated project. Just do a `./gradlew clean` in the geneated project's root directory (`<path>/client/android-build/.`) and you should be good to continue.
|
||||
You may face compiling issues in QT Creator after you've worked in Android Studio on the generated project. Just do a `./gradlew clean` in the generated project's root directory (`<path>/client/android-build/.`) and you should be good to continue.
|
||||
|
||||
## License
|
||||
GPL v.3
|
||||
|
|
|
@ -364,7 +364,7 @@ if(IOS)
|
|||
enable_language(OBJCXX)
|
||||
enable_language(Swift)
|
||||
|
||||
#disbale in cicd
|
||||
#disable in cicd
|
||||
include(cmake/osxtools.cmake)
|
||||
# set(CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY TRUE)
|
||||
|
||||
|
@ -376,7 +376,7 @@ if(IOS)
|
|||
set(CMAKE_XCODE_ATTRIBUTE_FRAMEWORK_SEARCH_PATHS ${CMAKE_CURRENT_LIST_DIR}/3rd/OpenVPNAdapter/build/Release-iphoneos)
|
||||
|
||||
|
||||
#need to change for debug and relase
|
||||
#need to change for debug and release
|
||||
set_target_properties(${PROJECT}
|
||||
PROPERTIES XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER "org.amnezia.${PROJECT}"
|
||||
XCODE_ATTRIBUTE_TARGETED_DEVICE_FAMILY "1"
|
||||
|
|
|
@ -261,7 +261,7 @@ object BaseService {
|
|||
|
||||
fun stopRunner(restart: Boolean = false, msg: String? = null) {
|
||||
if (data.state == State.Stopping) return
|
||||
// channge the state
|
||||
// change the state
|
||||
data.changeState(State.Stopping)
|
||||
GlobalScope.launch(Dispatchers.Main.immediate) {
|
||||
data.connectingJob?.cancelAndJoin() // ensure stop connecting first
|
||||
|
|
|
@ -30,7 +30,7 @@ object Key {
|
|||
const val id = "profileId"
|
||||
const val name = "profileName"
|
||||
|
||||
const val individual = "Proxyed"
|
||||
const val individual = "Proxied"
|
||||
|
||||
const val serviceMode = "serviceMode"
|
||||
const val modeProxy = "proxy"
|
||||
|
|
|
@ -835,7 +835,7 @@ public final class Ed25519 {
|
|||
}
|
||||
|
||||
/**
|
||||
* Decodes {@code s} into an extented projective point.
|
||||
* Decodes {@code s} into an extended projective point.
|
||||
* See Section 5.1.3 Decoding in https://tools.ietf.org/html/rfc8032#section-5.1.3
|
||||
*/
|
||||
private static XYZT fromBytesNegateVarTime(byte[] s) throws GeneralSecurityException {
|
||||
|
@ -973,7 +973,7 @@ public final class Ed25519 {
|
|||
*
|
||||
* <p>NOTE that this function requires that {@code icopy} be 1 or 0; other values give wrong
|
||||
* results. Also, the two limb arrays must be in reduced-coefficient, reduced-degree form: the
|
||||
* values in a[10..19] or b[10..19] aren't swapped, and all all values in a[0..9],b[0..9] must
|
||||
* values in a[10..19] or b[10..19] aren't swapped, and all values in a[0..9],b[0..9] must
|
||||
* have magnitude less than Integer.MAX_VALUE.
|
||||
*/
|
||||
static void copyConditional(long[] a, long[] b, int icopy) {
|
||||
|
|
|
@ -27,7 +27,7 @@ object NotificationUtil {
|
|||
* Parcel - Gets called from AndroidController.cpp
|
||||
*/
|
||||
fun update(data: Parcel) {
|
||||
// [data] is here a json containing the noification content
|
||||
// [data] is here a json containing the notification content
|
||||
val buffer = data.createByteArray()
|
||||
val json = buffer?.let { String(it) }
|
||||
val content = JSONObject(json)
|
||||
|
|
|
@ -35,10 +35,10 @@ class OpenVPNThreadv3(var service: VPNService): ClientAPI_OpenVPNClient(), Runna
|
|||
private var bytesOutIndex = -1
|
||||
|
||||
init {
|
||||
findConfigIndicies()
|
||||
findConfigIndices()
|
||||
}
|
||||
|
||||
private fun findConfigIndicies() {
|
||||
private fun findConfigIndices() {
|
||||
val n: Int = stats_n()
|
||||
|
||||
for (i in 0 until n) {
|
||||
|
|
|
@ -29,7 +29,7 @@ object Prefs {
|
|||
return sharedPreferences
|
||||
} catch (e: Exception) {
|
||||
Log.e("Android-Prefs", "Getting Encryption Storage failed, plaintext fallback")
|
||||
return context.getSharedPreferences("com.amnezia.vpn.prefrences", Context.MODE_PRIVATE)
|
||||
return context.getSharedPreferences("com.amnezia.vpn.preferences", Context.MODE_PRIVATE)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,14 +11,14 @@ import android.util.Log as nativeLog
|
|||
|
||||
/*
|
||||
* Drop in replacement for android.util.Log
|
||||
* Also stores a copy of all logs in tmp/mozilla_deamon_logs.txt
|
||||
* Also stores a copy of all logs in tmp/mozilla_daemon_logs.txt
|
||||
*/
|
||||
class Log {
|
||||
val LOG_MAX_FILE_SIZE = 204800
|
||||
private var file: File
|
||||
private constructor(context: Context) {
|
||||
val tempDIR = context.cacheDir
|
||||
file = File(tempDIR, "mozilla_deamon_logs.txt")
|
||||
file = File(tempDIR, "mozilla_daemon_logs.txt")
|
||||
if (file.length() > LOG_MAX_FILE_SIZE) {
|
||||
file.writeText("")
|
||||
}
|
||||
|
@ -46,7 +46,7 @@ class Log {
|
|||
if (!BuildConfig.DEBUG) { return; }
|
||||
nativeLog.e(tag, message)
|
||||
}
|
||||
// Only Prints && Loggs when in debug, noop in release.
|
||||
// Only Prints && Logs when in debug, noop in release.
|
||||
fun sensitive(tag: String, message: String?) {
|
||||
if (!BuildConfig.DEBUG) { return; }
|
||||
if (message == null) { return; }
|
||||
|
|
|
@ -548,7 +548,7 @@ class VPNService : BaseVpnService(), LocalDnsService.Interface {
|
|||
* Create a Wireguard [Config] from a [json] string -
|
||||
* The [json] will be created in AndroidVpnProtocol.cpp
|
||||
*/
|
||||
private fun buildWireugardConfig(obj: JSONObject): Config {
|
||||
private fun buildWireguardConfig(obj: JSONObject): Config {
|
||||
val confBuilder = Config.Builder()
|
||||
val wireguardConfigData = obj.getJSONObject("wireguard_config_data")
|
||||
val config = parseConfigData(wireguardConfigData.getString("config"))
|
||||
|
@ -697,7 +697,7 @@ class VPNService : BaseVpnService(), LocalDnsService.Interface {
|
|||
}
|
||||
|
||||
private fun startWireGuard() {
|
||||
val wireguard_conf = buildWireugardConfig(mConfig!!)
|
||||
val wireguard_conf = buildWireguardConfig(mConfig!!)
|
||||
Log.i(tag, "startWireGuard: wireguard_conf : $wireguard_conf")
|
||||
if (currentTunnelHandle != -1) {
|
||||
Log.e(tag, "Tunnel already up")
|
||||
|
|
|
@ -50,7 +50,7 @@ class VPNServiceBinder(service: VPNService) : Binder() {
|
|||
when (code) {
|
||||
ACTIONS.activate -> {
|
||||
try {
|
||||
Log.i(tag, "Activiation Requested, parsing Config")
|
||||
Log.i(tag, "Activation Requested, parsing Config")
|
||||
// [data] is here a json containing the wireguard/openvpn conf
|
||||
val buffer = data.createByteArray()
|
||||
val json = buffer?.let { String(it) }
|
||||
|
|
|
@ -114,7 +114,7 @@ class VPNActivity : org.qtproject.qt.android.bindings.QtActivity() {
|
|||
// QT will always attempt to read the clipboard if content is there.
|
||||
// since we have no use of the clipboard in android 10+
|
||||
// we _can_ return null
|
||||
// And we defnitly should since android 12 displays clipboard access.
|
||||
// And we definitely should since android 12 displays clipboard access.
|
||||
null
|
||||
} else {
|
||||
super.getSystemService(name)
|
||||
|
@ -259,13 +259,13 @@ class VPNActivity : org.qtproject.qt.android.bindings.QtActivity() {
|
|||
private val ACTION_REGISTER_LISTENER = 3
|
||||
private val ACTION_RESUME_ACTIVATE = 7
|
||||
private val ACTION_IMPORT_CONFIG = 11
|
||||
private val EVENT_PERMISSION_REQURED = 6
|
||||
private val EVENT_PERMISSION_REQUIRED = 6
|
||||
private val EVENT_DISCONNECTED = 2
|
||||
|
||||
private val UI_EVENT_QR_CODE_RECEIVED = 0
|
||||
|
||||
fun onPermissionRequest(code: Int, data: Parcel?) {
|
||||
if (code != EVENT_PERMISSION_REQURED) {
|
||||
if (code != EVENT_PERMISSION_REQUIRED) {
|
||||
return
|
||||
}
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@ endif()
|
|||
if(CODE_SIGN_IDENTITY)
|
||||
find_program(CODESIGN_BIN NAMES codesign)
|
||||
if(NOT CODESIGN_BIN)
|
||||
messsage(FATAL_ERROR "Cannot sign code, could not find 'codesign' executable")
|
||||
message(FATAL_ERROR "Cannot sign code, could not find 'codesign' executable")
|
||||
endif()
|
||||
set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY ${CODE_SIGN_IDENTITY})
|
||||
endif()
|
||||
|
|
|
@ -31,7 +31,7 @@ public:
|
|||
QString &processConfigWithLocalSettings(int serverIndex, DockerContainer container, Proto proto, QString &config);
|
||||
QString &processConfigWithExportSettings(int serverIndex, DockerContainer container, Proto proto, QString &config);
|
||||
|
||||
// workaround for containers which is not support normal configaration
|
||||
// workaround for containers which is not support normal configuration
|
||||
void updateContainerConfigAfterInstallation(DockerContainer container,
|
||||
QJsonObject &containerConfig, const QString &stdOut);
|
||||
|
||||
|
|
|
@ -71,7 +71,7 @@ WireguardConfigurator::ConnectionData WireguardConfigurator::prepareWireguardCon
|
|||
|
||||
ErrorCode e = ErrorCode::NoError;
|
||||
|
||||
// Get list of already created clients (only IP addreses)
|
||||
// Get list of already created clients (only IP addresses)
|
||||
QString nextIpNumber;
|
||||
{
|
||||
QString script = QString("cat %1 | grep AllowedIPs").arg(amnezia::protocols::wireguard::serverConfigPath);
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#ifndef CONTAIERNS_DEFS_H
|
||||
#define CONTAIERNS_DEFS_H
|
||||
#ifndef CONTAINERS_DEFS_H
|
||||
#define CONTAINERS_DEFS_H
|
||||
|
||||
#include <QObject>
|
||||
#include <QQmlEngine>
|
||||
|
@ -75,4 +75,4 @@ static void declareQmlContainerEnum() {
|
|||
|
||||
QDebug operator<<(QDebug debug, const amnezia::DockerContainer &c);
|
||||
|
||||
#endif // CONTAIERNS_DEFS_H
|
||||
#endif // CONTAINERS_DEFS_H
|
||||
|
|
|
@ -104,8 +104,8 @@ QSharedPointer<PrivilegedProcess> IpcClient::CreatePrivilegedProcess()
|
|||
pd->localSocket->connectToServer(amnezia::getIpcProcessUrl(pid));
|
||||
pd->localSocket->waitForConnected();
|
||||
|
||||
auto proccessReplica = QSharedPointer<PrivilegedProcess>(pd->ipcProcess);
|
||||
return proccessReplica;
|
||||
auto processReplica = QSharedPointer<PrivilegedProcess>(pd->ipcProcess);
|
||||
return processReplica;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -453,10 +453,10 @@ ErrorCode ServerController::setupContainer(const ServerCredentials &credentials,
|
|||
ErrorCode ServerController::updateContainer(const ServerCredentials &credentials, DockerContainer container,
|
||||
const QJsonObject &oldConfig, QJsonObject &newConfig)
|
||||
{
|
||||
bool reinstallRequred = isReinstallContainerRequred(container, oldConfig, newConfig);
|
||||
qDebug() << "ServerController::updateContainer for container" << container << "reinstall required is" << reinstallRequred;
|
||||
bool reinstallRequired = isReinstallContainerRequired(container, oldConfig, newConfig);
|
||||
qDebug() << "ServerController::updateContainer for container" << container << "reinstall required is" << reinstallRequired;
|
||||
|
||||
if (reinstallRequred) {
|
||||
if (reinstallRequired) {
|
||||
return setupContainer(credentials, container, newConfig, true);
|
||||
}
|
||||
else {
|
||||
|
@ -490,7 +490,7 @@ QJsonObject ServerController::createContainerInitialConfig(DockerContainer conta
|
|||
return config;
|
||||
}
|
||||
|
||||
bool ServerController::isReinstallContainerRequred(DockerContainer container, const QJsonObject &oldConfig, const QJsonObject &newConfig)
|
||||
bool ServerController::isReinstallContainerRequired(DockerContainer container, const QJsonObject &oldConfig, const QJsonObject &newConfig)
|
||||
{
|
||||
Proto mainProto = ContainerProps::defaultProtocol(container);
|
||||
|
||||
|
|
|
@ -42,7 +42,7 @@ public:
|
|||
// create initial config - generate passwords, etc
|
||||
QJsonObject createContainerInitialConfig(DockerContainer container, int port, TransportProto tp);
|
||||
|
||||
bool isReinstallContainerRequred(DockerContainer container, const QJsonObject &oldConfig, const QJsonObject &newConfig);
|
||||
bool isReinstallContainerRequired(DockerContainer container, const QJsonObject &oldConfig, const QJsonObject &newConfig);
|
||||
|
||||
ErrorCode checkOpenVpnServer(DockerContainer container, const ServerCredentials &credentials);
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# Autogenerated by fastlane
|
||||
#
|
||||
# Ensure this file is checked in to source control!
|
||||
# Ensure this file is checked into source control!
|
||||
|
||||
#gem 'fastlane-plugin-run_tests_firebase_testlab'
|
||||
#gem 'fastlane-plugin-firebase_app_distribution'
|
||||
|
|
|
@ -157,7 +157,7 @@ void Logger::clearServiceLogs()
|
|||
|
||||
if (!m_IpcClient->isSocketConnected()) {
|
||||
if (!IpcClient::init(m_IpcClient)) {
|
||||
qWarning() << "Error occured when init IPC client";
|
||||
qWarning() << "Error occurred when init IPC client";
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -167,7 +167,7 @@ void Logger::clearServiceLogs()
|
|||
m_IpcClient->Interface()->cleanUp();
|
||||
}
|
||||
else {
|
||||
qWarning() << "Error occured cleaning up service logs";
|
||||
qWarning() << "Error occurred cleaning up service logs";
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
|
|
@ -57,7 +57,7 @@ void ManagementServer::onNewConnection()
|
|||
void ManagementServer::onSocketError(QAbstractSocket::SocketError socketError)
|
||||
{
|
||||
Q_UNUSED(socketError)
|
||||
qDebug().noquote() << QString("Mananement server error: %1").arg(m_socket->errorString());
|
||||
qDebug().noquote() << QString("Management server error: %1").arg(m_socket->errorString());
|
||||
}
|
||||
|
||||
void ManagementServer::onSocketDisconnected()
|
||||
|
|
|
@ -297,7 +297,7 @@ void AndroidController::startActivityForResult(JNIEnv *env, jobject, jobject int
|
|||
[](int receiverRequestCode, int resultCode,
|
||||
const QJniObject& data) {
|
||||
// Currently this function just used in
|
||||
// VPNService.kt::checkPersmissions. So the result
|
||||
// VPNService.kt::checkPermissions. So the result
|
||||
// we're getting is if the User gave us the
|
||||
// Vpn.bind permission. In case of NO we should
|
||||
// abort.
|
||||
|
|
|
@ -17,7 +17,7 @@ enum ServiceAction {
|
|||
ACTION_ACTIVATE = 1,
|
||||
// Deactivate the vpn. Body is empty
|
||||
ACTION_DEACTIVATE = 2,
|
||||
// Register an IBinder to recieve events body is an Ibinder
|
||||
// Register an IBinder to receive events body is an Ibinder
|
||||
ACTION_REGISTERLISTENER = 3,
|
||||
// Requests an EVENT_STATISTIC_UPDATE to be send
|
||||
ACTION_REQUEST_STATISTIC = 4,
|
||||
|
@ -40,14 +40,14 @@ typedef enum ServiceAction ServiceAction;
|
|||
|
||||
// Event Types that will be Dispatched after registration
|
||||
enum ServiceEvents {
|
||||
// The Service has Accecpted our Binder
|
||||
// The Service has Accepted our Binder
|
||||
// Responds with the current status of the vpn.
|
||||
EVENT_INIT = 0,
|
||||
// WG-Go has enabled the adapter (empty response)
|
||||
EVENT_CONNECTED = 1,
|
||||
// WG-Go has disabled the adapter (empty response)
|
||||
EVENT_DISCONNECTED = 2,
|
||||
// Contains the Current transfered bytes to endpoint x.
|
||||
// Contains the Current transferred bytes to endpoint x.
|
||||
EVENT_STATISTIC_UPDATE = 3,
|
||||
EVENT_BACKEND_LOGS = 4,
|
||||
// An Error happened during activation
|
||||
|
|
|
@ -30,9 +30,9 @@
|
|||
// Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
|
||||
_screen = [UIScreen.mainScreen snapshotViewAfterScreenUpdates: false];
|
||||
UIBlurEffect *blurEffect = [UIBlurEffect effectWithStyle: UIBlurEffectStyleDark];
|
||||
UIVisualEffectView *blurBackround = [[UIVisualEffectView alloc] initWithEffect: blurEffect];
|
||||
[_screen addSubview: blurBackround];
|
||||
blurBackround.frame = _screen.frame;
|
||||
UIVisualEffectView *blurBackground = [[UIVisualEffectView alloc] initWithEffect: blurEffect];
|
||||
[_screen addSubview: blurBackground];
|
||||
blurBackground.frame = _screen.frame;
|
||||
UIWindow *_window = UIApplication.sharedApplication.keyWindow;
|
||||
[_window addSubview: _screen];
|
||||
}
|
||||
|
|
|
@ -130,7 +130,7 @@ Logger logger(LOG_IAP, "IOSIAPHandler");
|
|||
logger.debug() << "transaction deferred";
|
||||
break;
|
||||
default:
|
||||
logger.warning() << "transaction unknwon state";
|
||||
logger.warning() << "transaction unknown state";
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -428,7 +428,7 @@ class PacketTunnelProvider: NEPacketTunnelProvider {
|
|||
let password = ssConfig[Constants.ssPasswordKey] as? String else {
|
||||
self.ssCompletion?(0, NSError(domain: Bundle.main.bundleIdentifier ?? "unknown",
|
||||
code: 100,
|
||||
userInfo: [NSLocalizedDescriptionKey: "Cannot asign profile params for ss in tunnel"]))
|
||||
userInfo: [NSLocalizedDescriptionKey: "Cannot assign profile params for ss in tunnel"]))
|
||||
return nil
|
||||
}
|
||||
var insettings: [String: Any] = .init()
|
||||
|
@ -639,7 +639,7 @@ class PacketTunnelProvider: NEPacketTunnelProvider {
|
|||
wg_log(.error, message: "Start reading packets to connection")
|
||||
wg_log(.error, message: "Connection is \(session != nil ? "not null" : "null")")
|
||||
packetFlow.readPackets { [weak self] packets, protocols in
|
||||
wg_log(.error, message: "\(packets.count) outcoming packets proccessed of \(protocols.first?.stringValue ?? "unknown") type")
|
||||
wg_log(.error, message: "\(packets.count) outcoming packets processed of \(protocols.first?.stringValue ?? "unknown") type")
|
||||
guard let `self` = self else { return }
|
||||
self.session?.writeMultipleDatagrams(packets, completionHandler: { _ in
|
||||
self.processQueue.async {
|
||||
|
@ -662,7 +662,7 @@ class PacketTunnelProvider: NEPacketTunnelProvider {
|
|||
session?.setReadHandler({ ssdata, error in
|
||||
wg_log(.error, message: "Packets are \(ssdata != nil ? "not null" : "null"), error: \(error?.localizedDescription ?? "none")")
|
||||
guard error == nil, let packets = ssdata else { return }
|
||||
wg_log(.error, message: "\(packets.count) incoming packets proccessed")
|
||||
wg_log(.error, message: "\(packets.count) incoming packets processed")
|
||||
self.packetFlow.writePackets(packets, withProtocols: [NSNumber(value: AF_INET)])
|
||||
}, maxDatagrams: Int.max)
|
||||
|
||||
|
|
|
@ -166,7 +166,7 @@ class TunProvider: NSObject {
|
|||
dispatchQueue.async {
|
||||
let success = leaf_shutdown(self.tunId)
|
||||
if !success {
|
||||
let errMsg = "Tunnel canot be stopped for some odd reason."
|
||||
let errMsg = "Tunnel cannot be stopped for some odd reason."
|
||||
self.stopCompletion?(.undefinedError(errMsg))
|
||||
}
|
||||
pthread_kill(self.tunThreadId!, SIGUSR1)
|
||||
|
|
|
@ -120,7 +120,7 @@ void MacosRouteMonitor::handleRtmChange(const struct rt_msghdr* rtm,
|
|||
for (auto addr : addrlist) {
|
||||
list.append(addrToString(addr));
|
||||
}
|
||||
logger.debug() << "Route chagned by" << rtm->rtm_pid
|
||||
logger.debug() << "Route changed by" << rtm->rtm_pid
|
||||
<< QString("addrs(%1):").arg(rtm->rtm_addrs) << list.join(" ");
|
||||
}
|
||||
|
||||
|
@ -138,7 +138,7 @@ void MacosRouteMonitor::handleIfaceInfo(const struct if_msghdr* ifm,
|
|||
list.append(addrToString(addr));
|
||||
}
|
||||
logger.debug() << "Interface " << ifm->ifm_index
|
||||
<< "chagned flags:" << ifm->ifm_flags
|
||||
<< "changed flags:" << ifm->ifm_flags
|
||||
<< QString("addrs(%1):").arg(ifm->ifm_addrs) << list.join(" ");
|
||||
}
|
||||
|
||||
|
|
|
@ -50,7 +50,7 @@ void Ikev2Protocol::stop()
|
|||
void Ikev2Protocol::newConnectionStateEventReceived(UINT unMsg, tagRASCONNSTATE rasconnstate, DWORD dwError)
|
||||
{
|
||||
Q_UNUSED(unMsg);
|
||||
qDebug()<<"Recive the new event "<<static_cast<int>(rasconnstate);
|
||||
qDebug()<<"Receive the new event "<<static_cast<int>(rasconnstate);
|
||||
switch (rasconnstate)
|
||||
{
|
||||
case RASCS_OpenPort:
|
||||
|
|
|
@ -54,7 +54,7 @@ private:
|
|||
private:
|
||||
QJsonObject m_config;
|
||||
|
||||
//RAS functions and parametrs
|
||||
//RAS functions and parameters
|
||||
HRASCONN hRasConn{nullptr};
|
||||
bool create_new_vpn(const QString & vpn_name,
|
||||
const QString & serv_addr);
|
||||
|
|
|
@ -36,7 +36,7 @@ public:
|
|||
void cleanupBackendLogs();
|
||||
|
||||
signals:
|
||||
void newTransmitedDataCount(quint64 rxBytes, quint64 txBytes);
|
||||
void newTransmittedDataCount(quint64 rxBytes, quint64 txBytes);
|
||||
|
||||
protected slots:
|
||||
|
||||
|
|
|
@ -27,7 +27,7 @@ Proto currentProto = amnezia::Proto::Any;
|
|||
IOSVpnProtocol::IOSVpnProtocol(Proto proto, const QJsonObject &configuration, QObject* parent)
|
||||
: VpnProtocol(configuration, parent), m_protocol(proto)
|
||||
{
|
||||
connect(this, &IOSVpnProtocol::newTransmitedDataCount, this, &IOSVpnProtocol::setBytesChanged);
|
||||
connect(this, &IOSVpnProtocol::newTransmittedDataCount, this, &IOSVpnProtocol::setBytesChanged);
|
||||
}
|
||||
|
||||
IOSVpnProtocol* IOSVpnProtocol::instance() {
|
||||
|
@ -209,7 +209,7 @@ void IOSVpnProtocol::checkStatus()
|
|||
qDebug() << "ServerIpv4Gateway:" << QString::fromNSString(serverIpv4Gateway)
|
||||
<< "DeviceIpv4Address:" << QString::fromNSString(deviceIpv4Address)
|
||||
<< "RxBytes:" << rxBytes << "TxBytes:" << txBytes;
|
||||
emit newTransmitedDataCount(rxBytes, txBytes);
|
||||
emit newTransmittedDataCount(rxBytes, txBytes);
|
||||
}];
|
||||
}
|
||||
|
||||
|
|
|
@ -334,14 +334,14 @@ class XCodeprojPatcher
|
|||
def setup_target_gobridge(platform)
|
||||
target_gobridge = legacy_target = @project.new(Xcodeproj::Project::PBXLegacyTarget)
|
||||
|
||||
bridge_platofrm = platform == 'ios' ? 'iOS' : 'macOS'
|
||||
bridge_platform = platform == 'ios' ? 'iOS' : 'macOS'
|
||||
|
||||
target_gobridge.build_working_directory = platform == 'ios' ? '3rd/wireguard-apple/Sources/WireGuardKitGo' : 'macos/gobridge'
|
||||
target_gobridge.build_tool_path = 'make'
|
||||
target_gobridge.pass_build_settings_in_environment = '1'
|
||||
target_gobridge.build_arguments_string = '$(ACTION)'
|
||||
target_gobridge.name = "WireGuardGoBridge<#{bridge_platofrm}>"
|
||||
target_gobridge.product_name = "WireGuardGoBridge<#{bridge_platofrm}>"
|
||||
target_gobridge.name = "WireGuardGoBridge<#{bridge_platform}>"
|
||||
target_gobridge.product_name = "WireGuardGoBridge<#{bridge_platform}>"
|
||||
|
||||
@project.targets << target_gobridge
|
||||
@target_extension.add_dependency target_gobridge
|
||||
|
|
|
@ -403,7 +403,7 @@ Please note, this protocol still does not support export connection profile to m
|
|||
<location filename="../ui/mainwindow.ui" line="1388"/>
|
||||
<source>Optional.
|
||||
|
||||
We recommend to enable VPN mode "For selected sites" and add blocked sites you need to visit manually. If you will choose this option, you will need add every bloked site you want to visit to the access list. You may switch between modes later.
|
||||
We recommend to enable VPN mode "For selected sites" and add blocked sites you need to visit manually. If you will choose this option, you will need add every blocked site you want to visit to the access list. You may switch between modes later.
|
||||
|
||||
Please note, you should add addresses to the list after VPN connection established. You may add any domain, URL or IP address, it will be resolved to IP address.</source>
|
||||
<translation>Опционально.
|
||||
|
@ -582,7 +582,7 @@ OpenVPN over ShadowSocks</translation>
|
|||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="4302"/>
|
||||
<source>Secondray DNS server</source>
|
||||
<source>Secondary DNS server</source>
|
||||
<translation>Вторичный DNS сервер</translation>
|
||||
</message>
|
||||
<message>
|
||||
|
@ -1111,7 +1111,7 @@ This code does not include server credentials.</source>
|
|||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="1756"/>
|
||||
<source>VPN Protocol not choosen</source>
|
||||
<source>VPN Protocol not chosen</source>
|
||||
<translation>VPN протокол не выбран</translation>
|
||||
</message>
|
||||
<message>
|
||||
|
|
|
@ -93,7 +93,7 @@ void NotificationHandler::unsecuredNetworkNotification(const QString& networkNam
|
|||
|
||||
|
||||
QString title = tr("AmneziaVPN notification");
|
||||
QString message = tr("Unsucured network detected: ") + networkName;
|
||||
QString message = tr("Unsecured network detected: ") + networkName;
|
||||
|
||||
notifyInternal(UnsecuredNetwork, title, message, 2000);
|
||||
}
|
||||
|
|
|
@ -12,7 +12,7 @@ ServerConfiguringProgressLogic::ServerConfiguringProgressLogic(UiLogic *logic, Q
|
|||
m_labelWaitInfoVisible{true},
|
||||
m_labelWaitInfoText{tr("Please wait, configuring process may take up to 5 minutes")},
|
||||
m_progressBarVisible{true},
|
||||
m_progressBarMaximium{100},
|
||||
m_progressBarMaximum{100},
|
||||
m_progressBarTextVisible{true},
|
||||
m_progressBarText{tr("Configuring...")},
|
||||
m_labelServerBusyVisible{false},
|
||||
|
@ -46,8 +46,8 @@ ErrorCode ServerConfiguringProgressLogic::doInstallAction(const std::function<Er
|
|||
progress.getValueFunc = [this] (void) -> int {
|
||||
return progressBarValue();
|
||||
};
|
||||
progress.getMaximiumFunc = [this] (void) -> int {
|
||||
return progressBarMaximium();
|
||||
progress.getMaximumFunc = [this] (void) -> int {
|
||||
return progressBarMaximum();
|
||||
};
|
||||
|
||||
LabelFunc busyInfo;
|
||||
|
@ -149,7 +149,7 @@ ErrorCode ServerConfiguringProgressLogic::doInstallAction(const std::function<Er
|
|||
// just ui progressbar tweak
|
||||
timer.stop();
|
||||
|
||||
int remainingVal = progress.getMaximiumFunc() - progress.getValueFunc();
|
||||
int remainingVal = progress.getMaximumFunc() - progress.getValueFunc();
|
||||
|
||||
if (remainingVal > 0) {
|
||||
QTimer timer1;
|
||||
|
@ -157,7 +157,7 @@ ErrorCode ServerConfiguringProgressLogic::doInstallAction(const std::function<Er
|
|||
|
||||
connect(&timer1, &QTimer::timeout, [&](){
|
||||
progress.setValueFunc(progress.getValueFunc() + 1);
|
||||
if (progress.getValueFunc() >= progress.getMaximiumFunc()) {
|
||||
if (progress.getValueFunc() >= progress.getMaximumFunc()) {
|
||||
loop1.quit();
|
||||
}
|
||||
});
|
||||
|
|
|
@ -17,7 +17,7 @@ class ServerConfiguringProgressLogic : public PageLogicBase
|
|||
AUTO_PROPERTY(bool, labelWaitInfoVisible)
|
||||
AUTO_PROPERTY(QString, labelWaitInfoText)
|
||||
AUTO_PROPERTY(bool, progressBarVisible)
|
||||
AUTO_PROPERTY(int, progressBarMaximium)
|
||||
AUTO_PROPERTY(int, progressBarMaximum)
|
||||
AUTO_PROPERTY(bool, progressBarTextVisible)
|
||||
AUTO_PROPERTY(QString, progressBarText)
|
||||
AUTO_PROPERTY(bool, labelServerBusyVisible)
|
||||
|
@ -32,7 +32,7 @@ private:
|
|||
std::function<void(bool)> setVisibleFunc;
|
||||
std::function<void(int)> setValueFunc;
|
||||
std::function<int(void)> getValueFunc;
|
||||
std::function<int(void)> getMaximiumFunc;
|
||||
std::function<int(void)> getMaximumFunc;
|
||||
std::function<void(bool)> setTextVisibleFunc;
|
||||
std::function<void(const QString&)> setTextFunc;
|
||||
};
|
||||
|
|
|
@ -218,7 +218,7 @@ void VpnLogic::onConnect()
|
|||
}
|
||||
|
||||
if (container == DockerContainer::None) {
|
||||
set_labelErrorText(tr("VPN Protocol not choosen"));
|
||||
set_labelErrorText(tr("VPN Protocol not chosen"));
|
||||
set_pushButtonConnectChecked(false);
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -21,7 +21,7 @@ CloakLogic::CloakLogic(UiLogic *logic, QObject *parent):
|
|||
m_labelInfoVisible{true},
|
||||
m_labelInfoText{},
|
||||
m_progressBarResetValue{0},
|
||||
m_progressBarResetMaximium{100}
|
||||
m_progressBarResetMaximum{100}
|
||||
{
|
||||
|
||||
}
|
||||
|
@ -87,8 +87,8 @@ void CloakLogic::onPushButtonSaveClicked()
|
|||
progressBarFunc.getValueFunc = [this] (void) -> int {
|
||||
return progressBarResetValue();
|
||||
};
|
||||
progressBarFunc.getMaximiumFunc = [this] (void) -> int {
|
||||
return progressBarResetMaximium();
|
||||
progressBarFunc.getMaximumFunc = [this] (void) -> int {
|
||||
return progressBarResetMaximum();
|
||||
};
|
||||
progressBarFunc.setTextVisibleFunc = [this] (bool visible) -> void {
|
||||
set_progressBarTextVisible(visible);
|
||||
|
|
|
@ -19,7 +19,7 @@ class CloakLogic : public PageProtocolLogicBase
|
|||
AUTO_PROPERTY(bool, labelInfoVisible)
|
||||
AUTO_PROPERTY(QString, labelInfoText)
|
||||
AUTO_PROPERTY(int, progressBarResetValue)
|
||||
AUTO_PROPERTY(int, progressBarResetMaximium)
|
||||
AUTO_PROPERTY(int, progressBarResetMaximum)
|
||||
AUTO_PROPERTY(bool, progressBarTextVisible)
|
||||
AUTO_PROPERTY(QString, progressBarText)
|
||||
|
||||
|
|
|
@ -33,7 +33,7 @@ OpenVpnLogic::OpenVpnLogic(UiLogic *logic, QObject *parent):
|
|||
m_labelProtoOpenVpnInfoVisible{true},
|
||||
m_labelProtoOpenVpnInfoText{},
|
||||
m_progressBarResetValue{0},
|
||||
m_progressBarResetMaximium{100}
|
||||
m_progressBarResetMaximum{100}
|
||||
{
|
||||
|
||||
}
|
||||
|
@ -51,17 +51,17 @@ void OpenVpnLogic::updateProtocolPage(const QJsonObject &openvpnConfig, DockerCo
|
|||
set_lineEditSubnetText(openvpnConfig.value(config_key::subnet_address).
|
||||
toString(protocols::openvpn::defaultSubnetAddress));
|
||||
|
||||
QString trasnsport;
|
||||
QString transport;
|
||||
if (container == DockerContainer::ShadowSocks || container == DockerContainer::Cloak) {
|
||||
trasnsport = "tcp";
|
||||
transport = "tcp";
|
||||
set_radioButtonUdpEnabled(false);
|
||||
set_radioButtonTcpEnabled(false);
|
||||
} else {
|
||||
trasnsport = openvpnConfig.value(config_key::transport_proto).
|
||||
transport = openvpnConfig.value(config_key::transport_proto).
|
||||
toString(protocols::openvpn::defaultTransportProto);
|
||||
}
|
||||
set_radioButtonUdpChecked(trasnsport == protocols::openvpn::defaultTransportProto);
|
||||
set_radioButtonTcpChecked(trasnsport != protocols::openvpn::defaultTransportProto);
|
||||
set_radioButtonUdpChecked(transport == protocols::openvpn::defaultTransportProto);
|
||||
set_radioButtonTcpChecked(transport != protocols::openvpn::defaultTransportProto);
|
||||
|
||||
set_comboBoxVpnCipherText(openvpnConfig.value(config_key::cipher).
|
||||
toString(protocols::openvpn::defaultCipher));
|
||||
|
@ -137,8 +137,8 @@ void OpenVpnLogic::onPushButtonSaveClicked()
|
|||
progressBarFunc.getValueFunc = [this] (void) -> int {
|
||||
return progressBarResetValue();
|
||||
};
|
||||
progressBarFunc.getMaximiumFunc = [this] (void) -> int {
|
||||
return progressBarResetMaximium();
|
||||
progressBarFunc.getMaximumFunc = [this] (void) -> int {
|
||||
return progressBarResetMaximum();
|
||||
};
|
||||
progressBarFunc.setTextVisibleFunc = [this] (bool visible) -> void {
|
||||
set_progressBarTextVisible(visible);
|
||||
|
|
|
@ -33,7 +33,7 @@ class OpenVpnLogic : public PageProtocolLogicBase
|
|||
AUTO_PROPERTY(bool, labelProtoOpenVpnInfoVisible)
|
||||
AUTO_PROPERTY(QString, labelProtoOpenVpnInfoText)
|
||||
AUTO_PROPERTY(int, progressBarResetValue)
|
||||
AUTO_PROPERTY(int, progressBarResetMaximium)
|
||||
AUTO_PROPERTY(int, progressBarResetMaximum)
|
||||
AUTO_PROPERTY(bool, progressBarTextVisible)
|
||||
AUTO_PROPERTY(QString, progressBarText)
|
||||
|
||||
|
|
|
@ -19,7 +19,7 @@ ShadowSocksLogic::ShadowSocksLogic(UiLogic *logic, QObject *parent):
|
|||
m_labelInfoVisible{true},
|
||||
m_labelInfoText{},
|
||||
m_progressBarResetValue{0},
|
||||
m_progressBarResetMaximium{100}
|
||||
m_progressBarResetMaximum{100}
|
||||
{
|
||||
|
||||
}
|
||||
|
@ -79,8 +79,8 @@ void ShadowSocksLogic::onPushButtonSaveClicked()
|
|||
progressBarFunc.getValueFunc = [this] (void) -> int {
|
||||
return progressBarResetValue();
|
||||
};
|
||||
progressBarFunc.getMaximiumFunc = [this] (void) -> int {
|
||||
return progressBarResetMaximium();
|
||||
progressBarFunc.getMaximumFunc = [this] (void) -> int {
|
||||
return progressBarResetMaximum();
|
||||
};
|
||||
progressBarFunc.setTextVisibleFunc = [this] (bool visible) -> void {
|
||||
set_progressBarTextVisible(visible);
|
||||
|
|
|
@ -17,7 +17,7 @@ class ShadowSocksLogic : public PageProtocolLogicBase
|
|||
AUTO_PROPERTY(bool, labelInfoVisible)
|
||||
AUTO_PROPERTY(QString, labelInfoText)
|
||||
AUTO_PROPERTY(int, progressBarResetValue)
|
||||
AUTO_PROPERTY(int, progressBarResetMaximium)
|
||||
AUTO_PROPERTY(int, progressBarResetMaximum)
|
||||
AUTO_PROPERTY(bool, progressBarTextVisible)
|
||||
AUTO_PROPERTY(QString, progressBarText)
|
||||
|
||||
|
|
|
@ -77,7 +77,7 @@ PageBase {
|
|||
enabled: ServerConfiguringProgressLogic.pageEnabled
|
||||
anchors.fill: pb_cancel
|
||||
from: 0
|
||||
to: ServerConfiguringProgressLogic.progressBarMaximium
|
||||
to: ServerConfiguringProgressLogic.progressBarMaximum
|
||||
value: ServerConfiguringProgressLogic.progressBarValue
|
||||
visible: ServerConfiguringProgressLogic.progressBarVisible
|
||||
background: Rectangle {
|
||||
|
|
|
@ -37,7 +37,7 @@ PageBase {
|
|||
Layout.fillWidth: true
|
||||
verticalAlignment: Text.AlignTop
|
||||
text: qsTr('Optional.\n
|
||||
You can enable VPN mode "For selected sites" and add blocked sites you need to visit manually. If you will choose this option, you will need add every bloked site you want to visit to the access list. You may switch between modes later.\n\nPlease note, you should add addresses to the list after VPN connection established. You may add any domain, URL or IP address, it will be resolved to IP address.')
|
||||
You can enable VPN mode "For selected sites" and add blocked sites you need to visit manually. If you will choose this option, you will need add every blocked site you want to visit to the access list. You may switch between modes later.\n\nPlease note, you should add addresses to the list after VPN connection established. You may add any domain, URL or IP address, it will be resolved to IP address.')
|
||||
}
|
||||
|
||||
CheckBoxType {
|
||||
|
|
|
@ -133,7 +133,7 @@ PageProtocolBase {
|
|||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
anchors.fill: pb_save
|
||||
from: 0
|
||||
to: logic.progressBarResetMaximium
|
||||
to: logic.progressBarResetMaximum
|
||||
value: logic.progressBarResetValue
|
||||
background: Rectangle {
|
||||
implicitWidth: parent.width
|
||||
|
|
|
@ -393,7 +393,7 @@ PageProtocolBase {
|
|||
id: progress_save
|
||||
anchors.fill: pb_save
|
||||
from: 0
|
||||
to: logic.progressBarResetMaximium
|
||||
to: logic.progressBarResetMaximum
|
||||
value: logic.progressBarResetValue
|
||||
visible: logic.progressBarResetVisible
|
||||
background: Rectangle {
|
||||
|
|
|
@ -113,7 +113,7 @@ PageProtocolBase {
|
|||
id: progressBar_reset
|
||||
anchors.fill: pb_save
|
||||
from: 0
|
||||
to: logic.progressBarResetMaximium
|
||||
to: logic.progressBarResetMaximum
|
||||
value: logic.progressBarResetValue
|
||||
visible: logic.progressBarResetVisible
|
||||
background: Rectangle {
|
||||
|
|
|
@ -15,7 +15,7 @@ PageShareProtocolBase {
|
|||
|
||||
Caption {
|
||||
id: caption
|
||||
text: qsTr("Share SFTF settings")
|
||||
text: qsTr("Share SFTP settings")
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -124,7 +124,7 @@ Window {
|
|||
for (var i=0; i<folderModelPages.count; i++) {
|
||||
createPagesObjects(folderModelPages.get(i, "filePath"), PageType.Basic);
|
||||
}
|
||||
UiLogic.initalizeUiLogic()
|
||||
UiLogic.initializeUiLogic()
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -156,7 +156,7 @@ Window {
|
|||
|
||||
function createPagesObjects(file, type) {
|
||||
if (file.indexOf("Base") !== -1) return; // skip Base Pages
|
||||
//console.debug("Creating compenent " + file + " for " + type);
|
||||
//console.debug("Creating component " + file + " for " + type);
|
||||
|
||||
var c = Qt.createComponent("qrc" + file);
|
||||
|
||||
|
@ -178,7 +178,7 @@ Window {
|
|||
sharePages[obj.protocol] = obj
|
||||
}
|
||||
|
||||
// console.debug("Created compenent " + component.url + " for " + type);
|
||||
// console.debug("Created component " + component.url + " for " + type);
|
||||
}
|
||||
} else if (component.status === Component.Error) {
|
||||
console.debug("Error loading component:", component.errorString());
|
||||
|
|
|
@ -126,7 +126,7 @@ UiLogic::~UiLogic()
|
|||
qDebug() << "Application closed";
|
||||
}
|
||||
|
||||
void UiLogic::initalizeUiLogic()
|
||||
void UiLogic::initializeUiLogic()
|
||||
{
|
||||
#ifdef Q_OS_ANDROID
|
||||
connect(AndroidController::instance(), &AndroidController::initialized, [this](bool status, bool connected, const QDateTime& connectionDate) {
|
||||
|
@ -307,8 +307,8 @@ void UiLogic::installServer(QPair<DockerContainer, QJsonObject> &container)
|
|||
progressBarFunc.getValueFunc = [this] (void) -> int {
|
||||
return pageLogic<ServerConfiguringProgressLogic>()->progressBarValue();
|
||||
};
|
||||
progressBarFunc.getMaximiumFunc = [this] (void) -> int {
|
||||
return pageLogic<ServerConfiguringProgressLogic>()->progressBarMaximium();
|
||||
progressBarFunc.getMaximumFunc = [this] (void) -> int {
|
||||
return pageLogic<ServerConfiguringProgressLogic>()->progressBarMaximum();
|
||||
};
|
||||
progressBarFunc.setTextVisibleFunc = [this] (bool visible) -> void {
|
||||
pageLogic<ServerConfiguringProgressLogic>()->set_progressBarTextVisible(visible);
|
||||
|
|
|
@ -104,7 +104,7 @@ public:
|
|||
Q_INVOKABLE virtual void onUpdatePage() {} // UiLogic is set as logic class for some qml pages
|
||||
Q_INVOKABLE void onUpdateAllPages();
|
||||
|
||||
Q_INVOKABLE void initalizeUiLogic();
|
||||
Q_INVOKABLE void initializeUiLogic();
|
||||
Q_INVOKABLE void onCloseWindow();
|
||||
|
||||
Q_INVOKABLE QString containerName(int container);
|
||||
|
|
|
@ -120,9 +120,9 @@ QString Utils::getIPAddress(const QString& host)
|
|||
return host;
|
||||
}
|
||||
|
||||
QList<QHostAddress> adresses = QHostInfo::fromName(host).addresses();
|
||||
if (!adresses.isEmpty()) {
|
||||
return adresses.first().toString();
|
||||
QList<QHostAddress> addresses = QHostInfo::fromName(host).addresses();
|
||||
if (!addresses.isEmpty()) {
|
||||
return addresses.first().toString();
|
||||
}
|
||||
qDebug() << "Unable to resolve address for " << host;
|
||||
return "";
|
||||
|
|
|
@ -309,7 +309,7 @@ QJsonObject VpnConnection::createVpnConfiguration(int serverIndex,
|
|||
void VpnConnection::connectToVpn(int serverIndex,
|
||||
const ServerCredentials &credentials, DockerContainer container, const QJsonObject &containerConfig)
|
||||
{
|
||||
qDebug() << QString("СonnectToVpn, Server index is %1, container is %2, route mode is")
|
||||
qDebug() << QString("ConnectToVpn, Server index is %1, container is %2, route mode is")
|
||||
.arg(serverIndex).arg(ContainerProps::containerToString(container)) << m_settings->routeMode();
|
||||
|
||||
#if !defined (Q_OS_ANDROID) && !defined (Q_OS_IOS)
|
||||
|
@ -319,7 +319,7 @@ void VpnConnection::connectToVpn(int serverIndex,
|
|||
|
||||
if (!m_IpcClient->isSocketConnected()) {
|
||||
if (!IpcClient::init(m_IpcClient)) {
|
||||
qWarning() << "Error occured when init IPC client";
|
||||
qWarning() << "Error occurred when init IPC client";
|
||||
emit serviceIsNotReady();
|
||||
emit connectionStateChanged(VpnProtocol::Error);
|
||||
return;
|
||||
|
|
|
@ -20,7 +20,7 @@ APP_DOMAIN=org.amneziavpn.package
|
|||
OUT_APP_DIR=$BUILD_DIR/client
|
||||
BUNDLE_DIR=$OUT_APP_DIR/$APP_FILENAME
|
||||
|
||||
# Seacrh Qt
|
||||
# Search Qt
|
||||
if [ -z "${QT_VERSION+x}" ]; then
|
||||
QT_VERSION=6.4.1;
|
||||
QT_BIN_DIR=$HOME/Qt/$QT_VERSION/$ANDROID_CURRENT_ARCH/bin
|
||||
|
|
|
@ -24,7 +24,7 @@ BUNDLE_DIR=$OUT_APP_DIR/$APP_FILENAME
|
|||
PRO_FILE_PATH=$PROJECT_DIR/$APP_NAME.pro
|
||||
QMAKE_STASH_FILE=$PROJECT_DIR/.qmake_stash
|
||||
|
||||
# Seacrh Qt
|
||||
# Search Qt
|
||||
if [ -z "${QT_VERSION+x}" ]; then
|
||||
QT_VERSION=5.15.2;
|
||||
QIF_VERSION=4.1
|
||||
|
|
|
@ -33,7 +33,7 @@ INSTALLER_DATA_DIR=$PROJECT_DIR/deploy/installer/packages/$APP_DOMAIN/data
|
|||
PRO_FILE_PATH=$PROJECT_DIR/$APP_NAME.pro
|
||||
QMAKE_STASH_FILE=$PROJECT_DIR/.qmake_stash
|
||||
|
||||
# Seacrh Qt
|
||||
# Search Qt
|
||||
if [ -z "${QT_VERSION+x}" ]; then
|
||||
QT_VERSION=5.15.2
|
||||
if [ -f /opt/Qt/$QT_VERSION/gcc_64/bin/qmake ]; then
|
||||
|
|
|
@ -36,7 +36,7 @@ PRO_FILE_PATH=$PROJECT_DIR/$APP_NAME.pro
|
|||
QMAKE_STASH_FILE=$PROJECT_DIR/.qmake_stash
|
||||
DMG_FILENAME=$PROJECT_DIR/${APP_NAME}.dmg
|
||||
|
||||
# Seacrh Qt
|
||||
# Search Qt
|
||||
if [ -z "${QT_VERSION+x}" ]; then
|
||||
QT_VERSION=6.4.1;
|
||||
QIF_VERSION=4.1
|
||||
|
@ -102,7 +102,7 @@ if [ "${MAC_CERT_PW+x}" ]; then
|
|||
spctl -a -vvvv $BUNDLE_DIR || true
|
||||
|
||||
if [ "${NOTARIZE_APP+x}" ]; then
|
||||
echo "Notatizing App bundle..."
|
||||
echo "Notarizing App bundle..."
|
||||
/usr/bin/ditto -c -k --keepParent $BUNDLE_DIR $PROJECT_DIR/Bundle_to_notarize.zip
|
||||
xcrun altool --notarize-app -f $PROJECT_DIR/Bundle_to_notarize.zip -t osx --primary-bundle-id "$APP_DOMAIN" -u "$APPLE_DEV_EMAIL" -p $APPLE_DEV_PASSWORD
|
||||
rm $PROJECT_DIR/Bundle_to_notarize.zip
|
||||
|
@ -135,7 +135,7 @@ if [ "${MAC_CERT_PW+x}" ]; then
|
|||
/usr/bin/codesign --verify -vvvv $INSTALLER_BUNDLE_DIR || true
|
||||
|
||||
if [ "${NOTARIZE_APP+x}" ]; then
|
||||
echo "Notatizing installer bundle..."
|
||||
echo "Notarizing installer bundle..."
|
||||
/usr/bin/ditto -c -k --keepParent $INSTALLER_BUNDLE_DIR $PROJECT_DIR/Installer_bundle_to_notarize.zip
|
||||
xcrun altool --notarize-app -f $PROJECT_DIR/Installer_bundle_to_notarize.zip -t osx --primary-bundle-id "$APP_DOMAIN" -u "$APPLE_DEV_EMAIL" -p $APPLE_DEV_PASSWORD
|
||||
rm $PROJECT_DIR/Installer_bundle_to_notarize.zip
|
||||
|
@ -156,7 +156,7 @@ if [ "${MAC_CERT_PW+x}" ]; then
|
|||
/usr/bin/codesign --verify -vvvv $DMG_FILENAME || true
|
||||
|
||||
if [ "${NOTARIZE_APP+x}" ]; then
|
||||
echo "Notatizing DMG installer..."
|
||||
echo "Notarizing DMG installer..."
|
||||
xcrun altool --notarize-app -f $DMG_FILENAME -t osx --primary-bundle-id $APP_DOMAIN -u $APPLE_DEV_EMAIL -p $APPLE_DEV_PASSWORD
|
||||
sleep 600
|
||||
xcrun stapler staple $DMG_FILENAME
|
||||
|
|
|
@ -5,15 +5,15 @@
|
|||
#
|
||||
# ####################################################################
|
||||
#
|
||||
# LIB_PATH - are releative path to libraryes of a deployed distribution.
|
||||
# QML_PATH - are releative path to qml libraryes of a deployed distribution.
|
||||
# PLUGIN_PATH - are releative path to qt plugins of a deployed distribution.
|
||||
# BIN_PATH - are releative path to targets of a deployed distribution.
|
||||
# LIB_PATH - are relative path to libraries of a deployed distribution.
|
||||
# QML_PATH - are relative path to qml libraries of a deployed distribution.
|
||||
# PLUGIN_PATH - are relative path to qt plugins of a deployed distribution.
|
||||
# BIN_PATH - are relative path to targets of a deployed distribution.
|
||||
|
||||
# SYSTEM_LIB_PATH - are releative path to system libraryes of a deployed distribution.
|
||||
# SYSTEM_LIB_PATH - are relative path to system libraries of a deployed distribution.
|
||||
# BASE_NAME - are base name of the executable that will be launched after run this script.
|
||||
# CUSTOM_SCRIPT_BLOCK - This is code from the customScript option
|
||||
# RUN_COMMAND - This is command for run application. Requred BASE_DIR variable.
|
||||
# RUN_COMMAND - This is command for run application. Required BASE_DIR variable.
|
||||
#
|
||||
# ####################################################################
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
# Used snippets of resolvconf script by Thomas Hood <jdthood@yahoo.co.uk>
|
||||
# and Chris Hanson
|
||||
# Licensed under the GNU GPL. See /usr/share/common-licenses/GPL.
|
||||
# 07/2013 colin@daedrum.net Fixed intet name
|
||||
# 07/2013 colin@daedrum.net Fixed intent name
|
||||
# 05/2006 chlauber@bnc.ch
|
||||
#
|
||||
# Example envs set from openvpn:
|
||||
|
|
|
@ -5,15 +5,15 @@
|
|||
#
|
||||
# ####################################################################
|
||||
#
|
||||
# LIB_PATH - are releative path to libraryes of a deployed distribution.
|
||||
# QML_PATH - are releative path to qml libraryes of a deployed distribution.
|
||||
# PLUGIN_PATH - are releative path to qt plugins of a deployed distribution.
|
||||
# BIN_PATH - are releative path to targets of a deployed distribution.
|
||||
# LIB_PATH - are relative path to libraries of a deployed distribution.
|
||||
# QML_PATH - are relative path to qml libraries of a deployed distribution.
|
||||
# PLUGIN_PATH - are relative path to qt plugins of a deployed distribution.
|
||||
# BIN_PATH - are relative path to targets of a deployed distribution.
|
||||
|
||||
# SYSTEM_LIB_PATH - are releative path to system libraryes of a deployed distribution.
|
||||
# SYSTEM_LIB_PATH - are relative path to system libraries of a deployed distribution.
|
||||
# BASE_NAME - are base name of the executable that will be launched after run this script.
|
||||
# CUSTOM_SCRIPT_BLOCK - This is code from the customScript option
|
||||
# RUN_COMMAND - This is command for run application. Requred BASE_DIR variable.
|
||||
# RUN_COMMAND - This is command for run application. Required BASE_DIR variable.
|
||||
#
|
||||
# ####################################################################
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
# Mac name-resolution updater based on @cl's script here:
|
||||
# https://blog.netnerds.net/2011/10/openvpn-update-client-dns-on-mac-os-x-using-from-the-command-line/
|
||||
# Openvpn envar parsing taken from the script in debian's openvpn package.
|
||||
# Openvpn envvar parsing taken from the script in debian's openvpn package.
|
||||
# Smushed together and improved by @andrewgdotcom.
|
||||
|
||||
# Parses DHCP options from openvpn to update resolv.conf
|
||||
|
|
|
@ -52,9 +52,9 @@ function runningOnLinux()
|
|||
return ((installer.value("os") === "linux") || (installer.value("os") === "x11"));
|
||||
}
|
||||
|
||||
function sleep(miliseconds) {
|
||||
function sleep(milliseconds) {
|
||||
var currentTime = new Date().getTime();
|
||||
while (currentTime + miliseconds >= new Date().getTime()) {}
|
||||
while (currentTime + milliseconds >= new Date().getTime()) {}
|
||||
}
|
||||
|
||||
function raiseInstallerWindow()
|
||||
|
@ -85,13 +85,13 @@ function appProcessIsRunning()
|
|||
}
|
||||
}
|
||||
} else {
|
||||
return checkProccesIsRunning("pgrep -x '" + appName() + "'")
|
||||
return checkProcessIsRunning("pgrep -x '" + appName() + "'")
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
function checkProccesIsRunning(arg)
|
||||
function checkProcessIsRunning(arg)
|
||||
{
|
||||
var cmdArgs = ["-c", arg];
|
||||
var result = installer.execute("/bin/bash", cmdArgs);
|
||||
|
|
|
@ -136,7 +136,7 @@ bool IpcServer::copyWireguardConfig(const QString &sourcePath)
|
|||
}
|
||||
|
||||
if (!QFile::copy(sourcePath, wireguardConfigPath)) {
|
||||
qDebug() << "WireguardProtocol::WireguardProtocol error occured while copying wireguard config:";
|
||||
qDebug() << "WireguardProtocol::WireguardProtocol error occurred while copying wireguard config:";
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
@ -151,7 +151,7 @@ bool IpcServer::isWireguardRunning()
|
|||
QProcess checkWireguardStatusProcess;
|
||||
|
||||
connect(&checkWireguardStatusProcess, &QProcess::errorOccurred, this, [](QProcess::ProcessError error) {
|
||||
qDebug() << "WireguardProtocol::WireguardProtocol error occured while checking wireguard status: " << error;
|
||||
qDebug() << "WireguardProtocol::WireguardProtocol error occurred while checking wireguard status: " << error;
|
||||
});
|
||||
|
||||
checkWireguardStatusProcess.setProgram("/bin/wg");
|
||||
|
|
|
@ -285,7 +285,7 @@ bool TapController::removeDriver(const QString& tapInstanceId)
|
|||
tapInstallProc.waitForFinished();
|
||||
QString output = QString( tapInstallProc.readAll() );
|
||||
if (output.contains("were removed")) {
|
||||
qDebug() << "TAP device" << tapInstanceId << "suceccfully removed";
|
||||
qDebug() << "TAP device" << tapInstanceId << "successfully removed";
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
#define IPv6_DEBUG
|
||||
|
||||
//! The TapController class verifies Windows Tap Controller for existance on Windows platform.
|
||||
//! The TapController class verifies Windows Tap Controller for existence on Windows platform.
|
||||
|
||||
class TapController
|
||||
{
|
||||
|
|
|
@ -522,7 +522,7 @@ int QtServiceBasePrivate::run(bool asService, const QStringList &argList)
|
|||
You can retrieve the service's description, state, and startup
|
||||
type using the serviceDescription(), serviceFlags() and
|
||||
startupType() functions respectively. The service's state is
|
||||
decribed by the ServiceFlag enum. The mentioned properites can
|
||||
described by the ServiceFlag enum. The mentioned properties can
|
||||
also be set using the corresponding set functions. In addition you
|
||||
can retrieve the service's name using the serviceName() function.
|
||||
|
||||
|
@ -580,7 +580,7 @@ int QtServiceBasePrivate::run(bool asService, const QStringList &argList)
|
|||
\row \i -e \i -exec
|
||||
\i Execute the service as a standalone application (useful for debug purposes).
|
||||
This is a blocking call, the service will be executed like a normal application.
|
||||
In this mode you will not be able to communicate with the service from the contoller.
|
||||
In this mode you will not be able to communicate with the service from the controller.
|
||||
\row \i -t \i -terminate \i Stop the service.
|
||||
\row \i -p \i -pause \i Pause the service.
|
||||
\row \i -r \i -resume \i Resume a paused service.
|
||||
|
@ -736,7 +736,7 @@ void QtServiceBase::setStartupType(QtServiceController::StartupType type)
|
|||
}
|
||||
|
||||
/*!
|
||||
Returns the service's state which is decribed using the
|
||||
Returns the service's state which is described using the
|
||||
ServiceFlag enum.
|
||||
|
||||
\sa ServiceFlags, setServiceFlags()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue