Spelling fixed
This commit is contained in:
Josh Soref 2023-04-11 09:50:44 -04:00 committed by GitHub
parent a5e5c3d941
commit 7351fe9633
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
69 changed files with 141 additions and 141 deletions

View file

@ -87,7 +87,7 @@ Error 1
Add a user defined variable to both AmneziaVPN and WireGuardNetworkExtension targets' build settings with 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`. 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 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. 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! That's it you should be ready to compile the project from QT Creator!
### Development flow ### 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>`. 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 ## License
GPL v.3 GPL v.3

View file

@ -364,7 +364,7 @@ if(IOS)
enable_language(OBJCXX) enable_language(OBJCXX)
enable_language(Swift) enable_language(Swift)
#disbale in cicd #disable in cicd
include(cmake/osxtools.cmake) include(cmake/osxtools.cmake)
# set(CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY TRUE) # 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) 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} set_target_properties(${PROJECT}
PROPERTIES XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER "org.amnezia.${PROJECT}" PROPERTIES XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER "org.amnezia.${PROJECT}"
XCODE_ATTRIBUTE_TARGETED_DEVICE_FAMILY "1" XCODE_ATTRIBUTE_TARGETED_DEVICE_FAMILY "1"

View file

@ -261,7 +261,7 @@ object BaseService {
fun stopRunner(restart: Boolean = false, msg: String? = null) { fun stopRunner(restart: Boolean = false, msg: String? = null) {
if (data.state == State.Stopping) return if (data.state == State.Stopping) return
// channge the state // change the state
data.changeState(State.Stopping) data.changeState(State.Stopping)
GlobalScope.launch(Dispatchers.Main.immediate) { GlobalScope.launch(Dispatchers.Main.immediate) {
data.connectingJob?.cancelAndJoin() // ensure stop connecting first data.connectingJob?.cancelAndJoin() // ensure stop connecting first

View file

@ -30,7 +30,7 @@ object Key {
const val id = "profileId" const val id = "profileId"
const val name = "profileName" const val name = "profileName"
const val individual = "Proxyed" const val individual = "Proxied"
const val serviceMode = "serviceMode" const val serviceMode = "serviceMode"
const val modeProxy = "proxy" const val modeProxy = "proxy"

View file

@ -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 * 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 { 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 * <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 * 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. * have magnitude less than Integer.MAX_VALUE.
*/ */
static void copyConditional(long[] a, long[] b, int icopy) { static void copyConditional(long[] a, long[] b, int icopy) {

View file

@ -27,7 +27,7 @@ object NotificationUtil {
* Parcel - Gets called from AndroidController.cpp * Parcel - Gets called from AndroidController.cpp
*/ */
fun update(data: Parcel) { 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 buffer = data.createByteArray()
val json = buffer?.let { String(it) } val json = buffer?.let { String(it) }
val content = JSONObject(json) val content = JSONObject(json)

View file

@ -35,10 +35,10 @@ class OpenVPNThreadv3(var service: VPNService): ClientAPI_OpenVPNClient(), Runna
private var bytesOutIndex = -1 private var bytesOutIndex = -1
init { init {
findConfigIndicies() findConfigIndices()
} }
private fun findConfigIndicies() { private fun findConfigIndices() {
val n: Int = stats_n() val n: Int = stats_n()
for (i in 0 until n) { for (i in 0 until n) {

View file

@ -29,7 +29,7 @@ object Prefs {
return sharedPreferences return sharedPreferences
} catch (e: Exception) { } catch (e: Exception) {
Log.e("Android-Prefs", "Getting Encryption Storage failed, plaintext fallback") 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)
} }
} }
} }

View file

@ -11,14 +11,14 @@ import android.util.Log as nativeLog
/* /*
* Drop in replacement for android.util.Log * 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 { class Log {
val LOG_MAX_FILE_SIZE = 204800 val LOG_MAX_FILE_SIZE = 204800
private var file: File private var file: File
private constructor(context: Context) { private constructor(context: Context) {
val tempDIR = context.cacheDir 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) { if (file.length() > LOG_MAX_FILE_SIZE) {
file.writeText("") file.writeText("")
} }
@ -46,7 +46,7 @@ class Log {
if (!BuildConfig.DEBUG) { return; } if (!BuildConfig.DEBUG) { return; }
nativeLog.e(tag, message) 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?) { fun sensitive(tag: String, message: String?) {
if (!BuildConfig.DEBUG) { return; } if (!BuildConfig.DEBUG) { return; }
if (message == null) { return; } if (message == null) { return; }

View file

@ -548,7 +548,7 @@ class VPNService : BaseVpnService(), LocalDnsService.Interface {
* Create a Wireguard [Config] from a [json] string - * Create a Wireguard [Config] from a [json] string -
* The [json] will be created in AndroidVpnProtocol.cpp * 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 confBuilder = Config.Builder()
val wireguardConfigData = obj.getJSONObject("wireguard_config_data") val wireguardConfigData = obj.getJSONObject("wireguard_config_data")
val config = parseConfigData(wireguardConfigData.getString("config")) val config = parseConfigData(wireguardConfigData.getString("config"))
@ -697,7 +697,7 @@ class VPNService : BaseVpnService(), LocalDnsService.Interface {
} }
private fun startWireGuard() { private fun startWireGuard() {
val wireguard_conf = buildWireugardConfig(mConfig!!) val wireguard_conf = buildWireguardConfig(mConfig!!)
Log.i(tag, "startWireGuard: wireguard_conf : $wireguard_conf") Log.i(tag, "startWireGuard: wireguard_conf : $wireguard_conf")
if (currentTunnelHandle != -1) { if (currentTunnelHandle != -1) {
Log.e(tag, "Tunnel already up") Log.e(tag, "Tunnel already up")

View file

@ -50,7 +50,7 @@ class VPNServiceBinder(service: VPNService) : Binder() {
when (code) { when (code) {
ACTIONS.activate -> { ACTIONS.activate -> {
try { 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 // [data] is here a json containing the wireguard/openvpn conf
val buffer = data.createByteArray() val buffer = data.createByteArray()
val json = buffer?.let { String(it) } val json = buffer?.let { String(it) }

View file

@ -114,7 +114,7 @@ class VPNActivity : org.qtproject.qt.android.bindings.QtActivity() {
// QT will always attempt to read the clipboard if content is there. // QT will always attempt to read the clipboard if content is there.
// since we have no use of the clipboard in android 10+ // since we have no use of the clipboard in android 10+
// we _can_ return null // 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 null
} else { } else {
super.getSystemService(name) super.getSystemService(name)
@ -259,13 +259,13 @@ class VPNActivity : org.qtproject.qt.android.bindings.QtActivity() {
private val ACTION_REGISTER_LISTENER = 3 private val ACTION_REGISTER_LISTENER = 3
private val ACTION_RESUME_ACTIVATE = 7 private val ACTION_RESUME_ACTIVATE = 7
private val ACTION_IMPORT_CONFIG = 11 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 EVENT_DISCONNECTED = 2
private val UI_EVENT_QR_CODE_RECEIVED = 0 private val UI_EVENT_QR_CODE_RECEIVED = 0
fun onPermissionRequest(code: Int, data: Parcel?) { fun onPermissionRequest(code: Int, data: Parcel?) {
if (code != EVENT_PERMISSION_REQURED) { if (code != EVENT_PERMISSION_REQUIRED) {
return return
} }

View file

@ -13,7 +13,7 @@ endif()
if(CODE_SIGN_IDENTITY) if(CODE_SIGN_IDENTITY)
find_program(CODESIGN_BIN NAMES codesign) find_program(CODESIGN_BIN NAMES codesign)
if(NOT CODESIGN_BIN) 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() endif()
set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY ${CODE_SIGN_IDENTITY}) set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY ${CODE_SIGN_IDENTITY})
endif() endif()

View file

@ -31,7 +31,7 @@ public:
QString &processConfigWithLocalSettings(int serverIndex, DockerContainer container, Proto proto, QString &config); QString &processConfigWithLocalSettings(int serverIndex, DockerContainer container, Proto proto, QString &config);
QString &processConfigWithExportSettings(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, void updateContainerConfigAfterInstallation(DockerContainer container,
QJsonObject &containerConfig, const QString &stdOut); QJsonObject &containerConfig, const QString &stdOut);

View file

@ -71,7 +71,7 @@ WireguardConfigurator::ConnectionData WireguardConfigurator::prepareWireguardCon
ErrorCode e = ErrorCode::NoError; 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 nextIpNumber;
{ {
QString script = QString("cat %1 | grep AllowedIPs").arg(amnezia::protocols::wireguard::serverConfigPath); QString script = QString("cat %1 | grep AllowedIPs").arg(amnezia::protocols::wireguard::serverConfigPath);

View file

@ -1,5 +1,5 @@
#ifndef CONTAIERNS_DEFS_H #ifndef CONTAINERS_DEFS_H
#define CONTAIERNS_DEFS_H #define CONTAINERS_DEFS_H
#include <QObject> #include <QObject>
#include <QQmlEngine> #include <QQmlEngine>
@ -75,4 +75,4 @@ static void declareQmlContainerEnum() {
QDebug operator<<(QDebug debug, const amnezia::DockerContainer &c); QDebug operator<<(QDebug debug, const amnezia::DockerContainer &c);
#endif // CONTAIERNS_DEFS_H #endif // CONTAINERS_DEFS_H

View file

@ -104,8 +104,8 @@ QSharedPointer<PrivilegedProcess> IpcClient::CreatePrivilegedProcess()
pd->localSocket->connectToServer(amnezia::getIpcProcessUrl(pid)); pd->localSocket->connectToServer(amnezia::getIpcProcessUrl(pid));
pd->localSocket->waitForConnected(); pd->localSocket->waitForConnected();
auto proccessReplica = QSharedPointer<PrivilegedProcess>(pd->ipcProcess); auto processReplica = QSharedPointer<PrivilegedProcess>(pd->ipcProcess);
return proccessReplica; return processReplica;
} }

View file

@ -453,10 +453,10 @@ ErrorCode ServerController::setupContainer(const ServerCredentials &credentials,
ErrorCode ServerController::updateContainer(const ServerCredentials &credentials, DockerContainer container, ErrorCode ServerController::updateContainer(const ServerCredentials &credentials, DockerContainer container,
const QJsonObject &oldConfig, QJsonObject &newConfig) const QJsonObject &oldConfig, QJsonObject &newConfig)
{ {
bool reinstallRequred = isReinstallContainerRequred(container, oldConfig, newConfig); bool reinstallRequired = isReinstallContainerRequired(container, oldConfig, newConfig);
qDebug() << "ServerController::updateContainer for container" << container << "reinstall required is" << reinstallRequred; qDebug() << "ServerController::updateContainer for container" << container << "reinstall required is" << reinstallRequired;
if (reinstallRequred) { if (reinstallRequired) {
return setupContainer(credentials, container, newConfig, true); return setupContainer(credentials, container, newConfig, true);
} }
else { else {
@ -490,7 +490,7 @@ QJsonObject ServerController::createContainerInitialConfig(DockerContainer conta
return config; 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); Proto mainProto = ContainerProps::defaultProtocol(container);

View file

@ -42,7 +42,7 @@ public:
// create initial config - generate passwords, etc // create initial config - generate passwords, etc
QJsonObject createContainerInitialConfig(DockerContainer container, int port, TransportProto tp); 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); ErrorCode checkOpenVpnServer(DockerContainer container, const ServerCredentials &credentials);

View file

@ -1,6 +1,6 @@
# Autogenerated by fastlane # 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-run_tests_firebase_testlab'
#gem 'fastlane-plugin-firebase_app_distribution' #gem 'fastlane-plugin-firebase_app_distribution'

View file

@ -157,7 +157,7 @@ void Logger::clearServiceLogs()
if (!m_IpcClient->isSocketConnected()) { if (!m_IpcClient->isSocketConnected()) {
if (!IpcClient::init(m_IpcClient)) { if (!IpcClient::init(m_IpcClient)) {
qWarning() << "Error occured when init IPC client"; qWarning() << "Error occurred when init IPC client";
return; return;
} }
} }
@ -167,7 +167,7 @@ void Logger::clearServiceLogs()
m_IpcClient->Interface()->cleanUp(); m_IpcClient->Interface()->cleanUp();
} }
else { else {
qWarning() << "Error occured cleaning up service logs"; qWarning() << "Error occurred cleaning up service logs";
} }
#endif #endif
} }

View file

@ -57,7 +57,7 @@ void ManagementServer::onNewConnection()
void ManagementServer::onSocketError(QAbstractSocket::SocketError socketError) void ManagementServer::onSocketError(QAbstractSocket::SocketError socketError)
{ {
Q_UNUSED(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() void ManagementServer::onSocketDisconnected()

View file

@ -297,7 +297,7 @@ void AndroidController::startActivityForResult(JNIEnv *env, jobject, jobject int
[](int receiverRequestCode, int resultCode, [](int receiverRequestCode, int resultCode,
const QJniObject& data) { const QJniObject& data) {
// Currently this function just used in // 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 // we're getting is if the User gave us the
// Vpn.bind permission. In case of NO we should // Vpn.bind permission. In case of NO we should
// abort. // abort.

View file

@ -17,7 +17,7 @@ enum ServiceAction {
ACTION_ACTIVATE = 1, ACTION_ACTIVATE = 1,
// Deactivate the vpn. Body is empty // Deactivate the vpn. Body is empty
ACTION_DEACTIVATE = 2, 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, ACTION_REGISTERLISTENER = 3,
// Requests an EVENT_STATISTIC_UPDATE to be send // Requests an EVENT_STATISTIC_UPDATE to be send
ACTION_REQUEST_STATISTIC = 4, ACTION_REQUEST_STATISTIC = 4,
@ -40,14 +40,14 @@ typedef enum ServiceAction ServiceAction;
// Event Types that will be Dispatched after registration // Event Types that will be Dispatched after registration
enum ServiceEvents { enum ServiceEvents {
// The Service has Accecpted our Binder // The Service has Accepted our Binder
// Responds with the current status of the vpn. // Responds with the current status of the vpn.
EVENT_INIT = 0, EVENT_INIT = 0,
// WG-Go has enabled the adapter (empty response) // WG-Go has enabled the adapter (empty response)
EVENT_CONNECTED = 1, EVENT_CONNECTED = 1,
// WG-Go has disabled the adapter (empty response) // WG-Go has disabled the adapter (empty response)
EVENT_DISCONNECTED = 2, EVENT_DISCONNECTED = 2,
// Contains the Current transfered bytes to endpoint x. // Contains the Current transferred bytes to endpoint x.
EVENT_STATISTIC_UPDATE = 3, EVENT_STATISTIC_UPDATE = 3,
EVENT_BACKEND_LOGS = 4, EVENT_BACKEND_LOGS = 4,
// An Error happened during activation // An Error happened during activation

View file

@ -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. // 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]; _screen = [UIScreen.mainScreen snapshotViewAfterScreenUpdates: false];
UIBlurEffect *blurEffect = [UIBlurEffect effectWithStyle: UIBlurEffectStyleDark]; UIBlurEffect *blurEffect = [UIBlurEffect effectWithStyle: UIBlurEffectStyleDark];
UIVisualEffectView *blurBackround = [[UIVisualEffectView alloc] initWithEffect: blurEffect]; UIVisualEffectView *blurBackground = [[UIVisualEffectView alloc] initWithEffect: blurEffect];
[_screen addSubview: blurBackround]; [_screen addSubview: blurBackground];
blurBackround.frame = _screen.frame; blurBackground.frame = _screen.frame;
UIWindow *_window = UIApplication.sharedApplication.keyWindow; UIWindow *_window = UIApplication.sharedApplication.keyWindow;
[_window addSubview: _screen]; [_window addSubview: _screen];
} }

View file

@ -130,7 +130,7 @@ Logger logger(LOG_IAP, "IOSIAPHandler");
logger.debug() << "transaction deferred"; logger.debug() << "transaction deferred";
break; break;
default: default:
logger.warning() << "transaction unknwon state"; logger.warning() << "transaction unknown state";
break; break;
} }
} }

View file

@ -428,7 +428,7 @@ class PacketTunnelProvider: NEPacketTunnelProvider {
let password = ssConfig[Constants.ssPasswordKey] as? String else { let password = ssConfig[Constants.ssPasswordKey] as? String else {
self.ssCompletion?(0, NSError(domain: Bundle.main.bundleIdentifier ?? "unknown", self.ssCompletion?(0, NSError(domain: Bundle.main.bundleIdentifier ?? "unknown",
code: 100, code: 100,
userInfo: [NSLocalizedDescriptionKey: "Cannot asign profile params for ss in tunnel"])) userInfo: [NSLocalizedDescriptionKey: "Cannot assign profile params for ss in tunnel"]))
return nil return nil
} }
var insettings: [String: Any] = .init() 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: "Start reading packets to connection")
wg_log(.error, message: "Connection is \(session != nil ? "not null" : "null")") wg_log(.error, message: "Connection is \(session != nil ? "not null" : "null")")
packetFlow.readPackets { [weak self] packets, protocols in 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 } guard let `self` = self else { return }
self.session?.writeMultipleDatagrams(packets, completionHandler: { _ in self.session?.writeMultipleDatagrams(packets, completionHandler: { _ in
self.processQueue.async { self.processQueue.async {
@ -662,7 +662,7 @@ class PacketTunnelProvider: NEPacketTunnelProvider {
session?.setReadHandler({ ssdata, error in session?.setReadHandler({ ssdata, error in
wg_log(.error, message: "Packets are \(ssdata != nil ? "not null" : "null"), error: \(error?.localizedDescription ?? "none")") wg_log(.error, message: "Packets are \(ssdata != nil ? "not null" : "null"), error: \(error?.localizedDescription ?? "none")")
guard error == nil, let packets = ssdata else { return } 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)]) self.packetFlow.writePackets(packets, withProtocols: [NSNumber(value: AF_INET)])
}, maxDatagrams: Int.max) }, maxDatagrams: Int.max)

View file

@ -166,7 +166,7 @@ class TunProvider: NSObject {
dispatchQueue.async { dispatchQueue.async {
let success = leaf_shutdown(self.tunId) let success = leaf_shutdown(self.tunId)
if !success { 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)) self.stopCompletion?(.undefinedError(errMsg))
} }
pthread_kill(self.tunThreadId!, SIGUSR1) pthread_kill(self.tunThreadId!, SIGUSR1)

View file

@ -120,7 +120,7 @@ void MacosRouteMonitor::handleRtmChange(const struct rt_msghdr* rtm,
for (auto addr : addrlist) { for (auto addr : addrlist) {
list.append(addrToString(addr)); 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(" "); << 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)); list.append(addrToString(addr));
} }
logger.debug() << "Interface " << ifm->ifm_index 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(" "); << QString("addrs(%1):").arg(ifm->ifm_addrs) << list.join(" ");
} }

View file

@ -50,7 +50,7 @@ void Ikev2Protocol::stop()
void Ikev2Protocol::newConnectionStateEventReceived(UINT unMsg, tagRASCONNSTATE rasconnstate, DWORD dwError) void Ikev2Protocol::newConnectionStateEventReceived(UINT unMsg, tagRASCONNSTATE rasconnstate, DWORD dwError)
{ {
Q_UNUSED(unMsg); Q_UNUSED(unMsg);
qDebug()<<"Recive the new event "<<static_cast<int>(rasconnstate); qDebug()<<"Receive the new event "<<static_cast<int>(rasconnstate);
switch (rasconnstate) switch (rasconnstate)
{ {
case RASCS_OpenPort: case RASCS_OpenPort:

View file

@ -54,7 +54,7 @@ private:
private: private:
QJsonObject m_config; QJsonObject m_config;
//RAS functions and parametrs //RAS functions and parameters
HRASCONN hRasConn{nullptr}; HRASCONN hRasConn{nullptr};
bool create_new_vpn(const QString & vpn_name, bool create_new_vpn(const QString & vpn_name,
const QString & serv_addr); const QString & serv_addr);

View file

@ -36,7 +36,7 @@ public:
void cleanupBackendLogs(); void cleanupBackendLogs();
signals: signals:
void newTransmitedDataCount(quint64 rxBytes, quint64 txBytes); void newTransmittedDataCount(quint64 rxBytes, quint64 txBytes);
protected slots: protected slots:

View file

@ -27,7 +27,7 @@ Proto currentProto = amnezia::Proto::Any;
IOSVpnProtocol::IOSVpnProtocol(Proto proto, const QJsonObject &configuration, QObject* parent) IOSVpnProtocol::IOSVpnProtocol(Proto proto, const QJsonObject &configuration, QObject* parent)
: VpnProtocol(configuration, parent), m_protocol(proto) : VpnProtocol(configuration, parent), m_protocol(proto)
{ {
connect(this, &IOSVpnProtocol::newTransmitedDataCount, this, &IOSVpnProtocol::setBytesChanged); connect(this, &IOSVpnProtocol::newTransmittedDataCount, this, &IOSVpnProtocol::setBytesChanged);
} }
IOSVpnProtocol* IOSVpnProtocol::instance() { IOSVpnProtocol* IOSVpnProtocol::instance() {
@ -209,7 +209,7 @@ void IOSVpnProtocol::checkStatus()
qDebug() << "ServerIpv4Gateway:" << QString::fromNSString(serverIpv4Gateway) qDebug() << "ServerIpv4Gateway:" << QString::fromNSString(serverIpv4Gateway)
<< "DeviceIpv4Address:" << QString::fromNSString(deviceIpv4Address) << "DeviceIpv4Address:" << QString::fromNSString(deviceIpv4Address)
<< "RxBytes:" << rxBytes << "TxBytes:" << txBytes; << "RxBytes:" << rxBytes << "TxBytes:" << txBytes;
emit newTransmitedDataCount(rxBytes, txBytes); emit newTransmittedDataCount(rxBytes, txBytes);
}]; }];
} }

View file

@ -334,14 +334,14 @@ class XCodeprojPatcher
def setup_target_gobridge(platform) def setup_target_gobridge(platform)
target_gobridge = legacy_target = @project.new(Xcodeproj::Project::PBXLegacyTarget) 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_working_directory = platform == 'ios' ? '3rd/wireguard-apple/Sources/WireGuardKitGo' : 'macos/gobridge'
target_gobridge.build_tool_path = 'make' target_gobridge.build_tool_path = 'make'
target_gobridge.pass_build_settings_in_environment = '1' target_gobridge.pass_build_settings_in_environment = '1'
target_gobridge.build_arguments_string = '$(ACTION)' target_gobridge.build_arguments_string = '$(ACTION)'
target_gobridge.name = "WireGuardGoBridge<#{bridge_platofrm}>" target_gobridge.name = "WireGuardGoBridge<#{bridge_platform}>"
target_gobridge.product_name = "WireGuardGoBridge<#{bridge_platofrm}>" target_gobridge.product_name = "WireGuardGoBridge<#{bridge_platform}>"
@project.targets << target_gobridge @project.targets << target_gobridge
@target_extension.add_dependency target_gobridge @target_extension.add_dependency target_gobridge

View file

@ -403,7 +403,7 @@ Please note, this protocol still does not support export connection profile to m
<location filename="../ui/mainwindow.ui" line="1388"/> <location filename="../ui/mainwindow.ui" line="1388"/>
<source>Optional. <source>Optional.
We recommend to enable VPN mode &quot;For selected sites&quot; 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 &quot;For selected sites&quot; 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> 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>Опционально. <translation>Опционально.
@ -582,7 +582,7 @@ OpenVPN over ShadowSocks</translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="4302"/> <location filename="../ui/mainwindow.ui" line="4302"/>
<source>Secondray DNS server</source> <source>Secondary DNS server</source>
<translation>Вторичный DNS сервер</translation> <translation>Вторичный DNS сервер</translation>
</message> </message>
<message> <message>
@ -1111,7 +1111,7 @@ This code does not include server credentials.</source>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.cpp" line="1756"/> <location filename="../ui/mainwindow.cpp" line="1756"/>
<source>VPN Protocol not choosen</source> <source>VPN Protocol not chosen</source>
<translation>VPN протокол не выбран</translation> <translation>VPN протокол не выбран</translation>
</message> </message>
<message> <message>

View file

@ -93,7 +93,7 @@ void NotificationHandler::unsecuredNetworkNotification(const QString& networkNam
QString title = tr("AmneziaVPN notification"); QString title = tr("AmneziaVPN notification");
QString message = tr("Unsucured network detected: ") + networkName; QString message = tr("Unsecured network detected: ") + networkName;
notifyInternal(UnsecuredNetwork, title, message, 2000); notifyInternal(UnsecuredNetwork, title, message, 2000);
} }

View file

@ -12,7 +12,7 @@ ServerConfiguringProgressLogic::ServerConfiguringProgressLogic(UiLogic *logic, Q
m_labelWaitInfoVisible{true}, m_labelWaitInfoVisible{true},
m_labelWaitInfoText{tr("Please wait, configuring process may take up to 5 minutes")}, m_labelWaitInfoText{tr("Please wait, configuring process may take up to 5 minutes")},
m_progressBarVisible{true}, m_progressBarVisible{true},
m_progressBarMaximium{100}, m_progressBarMaximum{100},
m_progressBarTextVisible{true}, m_progressBarTextVisible{true},
m_progressBarText{tr("Configuring...")}, m_progressBarText{tr("Configuring...")},
m_labelServerBusyVisible{false}, m_labelServerBusyVisible{false},
@ -46,8 +46,8 @@ ErrorCode ServerConfiguringProgressLogic::doInstallAction(const std::function<Er
progress.getValueFunc = [this] (void) -> int { progress.getValueFunc = [this] (void) -> int {
return progressBarValue(); return progressBarValue();
}; };
progress.getMaximiumFunc = [this] (void) -> int { progress.getMaximumFunc = [this] (void) -> int {
return progressBarMaximium(); return progressBarMaximum();
}; };
LabelFunc busyInfo; LabelFunc busyInfo;
@ -149,7 +149,7 @@ ErrorCode ServerConfiguringProgressLogic::doInstallAction(const std::function<Er
// just ui progressbar tweak // just ui progressbar tweak
timer.stop(); timer.stop();
int remainingVal = progress.getMaximiumFunc() - progress.getValueFunc(); int remainingVal = progress.getMaximumFunc() - progress.getValueFunc();
if (remainingVal > 0) { if (remainingVal > 0) {
QTimer timer1; QTimer timer1;
@ -157,7 +157,7 @@ ErrorCode ServerConfiguringProgressLogic::doInstallAction(const std::function<Er
connect(&timer1, &QTimer::timeout, [&](){ connect(&timer1, &QTimer::timeout, [&](){
progress.setValueFunc(progress.getValueFunc() + 1); progress.setValueFunc(progress.getValueFunc() + 1);
if (progress.getValueFunc() >= progress.getMaximiumFunc()) { if (progress.getValueFunc() >= progress.getMaximumFunc()) {
loop1.quit(); loop1.quit();
} }
}); });

View file

@ -17,7 +17,7 @@ class ServerConfiguringProgressLogic : public PageLogicBase
AUTO_PROPERTY(bool, labelWaitInfoVisible) AUTO_PROPERTY(bool, labelWaitInfoVisible)
AUTO_PROPERTY(QString, labelWaitInfoText) AUTO_PROPERTY(QString, labelWaitInfoText)
AUTO_PROPERTY(bool, progressBarVisible) AUTO_PROPERTY(bool, progressBarVisible)
AUTO_PROPERTY(int, progressBarMaximium) AUTO_PROPERTY(int, progressBarMaximum)
AUTO_PROPERTY(bool, progressBarTextVisible) AUTO_PROPERTY(bool, progressBarTextVisible)
AUTO_PROPERTY(QString, progressBarText) AUTO_PROPERTY(QString, progressBarText)
AUTO_PROPERTY(bool, labelServerBusyVisible) AUTO_PROPERTY(bool, labelServerBusyVisible)
@ -32,7 +32,7 @@ private:
std::function<void(bool)> setVisibleFunc; std::function<void(bool)> setVisibleFunc;
std::function<void(int)> setValueFunc; std::function<void(int)> setValueFunc;
std::function<int(void)> getValueFunc; std::function<int(void)> getValueFunc;
std::function<int(void)> getMaximiumFunc; std::function<int(void)> getMaximumFunc;
std::function<void(bool)> setTextVisibleFunc; std::function<void(bool)> setTextVisibleFunc;
std::function<void(const QString&)> setTextFunc; std::function<void(const QString&)> setTextFunc;
}; };

View file

@ -218,7 +218,7 @@ void VpnLogic::onConnect()
} }
if (container == DockerContainer::None) { if (container == DockerContainer::None) {
set_labelErrorText(tr("VPN Protocol not choosen")); set_labelErrorText(tr("VPN Protocol not chosen"));
set_pushButtonConnectChecked(false); set_pushButtonConnectChecked(false);
return; return;
} }

View file

@ -21,7 +21,7 @@ CloakLogic::CloakLogic(UiLogic *logic, QObject *parent):
m_labelInfoVisible{true}, m_labelInfoVisible{true},
m_labelInfoText{}, m_labelInfoText{},
m_progressBarResetValue{0}, m_progressBarResetValue{0},
m_progressBarResetMaximium{100} m_progressBarResetMaximum{100}
{ {
} }
@ -87,8 +87,8 @@ void CloakLogic::onPushButtonSaveClicked()
progressBarFunc.getValueFunc = [this] (void) -> int { progressBarFunc.getValueFunc = [this] (void) -> int {
return progressBarResetValue(); return progressBarResetValue();
}; };
progressBarFunc.getMaximiumFunc = [this] (void) -> int { progressBarFunc.getMaximumFunc = [this] (void) -> int {
return progressBarResetMaximium(); return progressBarResetMaximum();
}; };
progressBarFunc.setTextVisibleFunc = [this] (bool visible) -> void { progressBarFunc.setTextVisibleFunc = [this] (bool visible) -> void {
set_progressBarTextVisible(visible); set_progressBarTextVisible(visible);

View file

@ -19,7 +19,7 @@ class CloakLogic : public PageProtocolLogicBase
AUTO_PROPERTY(bool, labelInfoVisible) AUTO_PROPERTY(bool, labelInfoVisible)
AUTO_PROPERTY(QString, labelInfoText) AUTO_PROPERTY(QString, labelInfoText)
AUTO_PROPERTY(int, progressBarResetValue) AUTO_PROPERTY(int, progressBarResetValue)
AUTO_PROPERTY(int, progressBarResetMaximium) AUTO_PROPERTY(int, progressBarResetMaximum)
AUTO_PROPERTY(bool, progressBarTextVisible) AUTO_PROPERTY(bool, progressBarTextVisible)
AUTO_PROPERTY(QString, progressBarText) AUTO_PROPERTY(QString, progressBarText)

View file

@ -33,7 +33,7 @@ OpenVpnLogic::OpenVpnLogic(UiLogic *logic, QObject *parent):
m_labelProtoOpenVpnInfoVisible{true}, m_labelProtoOpenVpnInfoVisible{true},
m_labelProtoOpenVpnInfoText{}, m_labelProtoOpenVpnInfoText{},
m_progressBarResetValue{0}, 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). set_lineEditSubnetText(openvpnConfig.value(config_key::subnet_address).
toString(protocols::openvpn::defaultSubnetAddress)); toString(protocols::openvpn::defaultSubnetAddress));
QString trasnsport; QString transport;
if (container == DockerContainer::ShadowSocks || container == DockerContainer::Cloak) { if (container == DockerContainer::ShadowSocks || container == DockerContainer::Cloak) {
trasnsport = "tcp"; transport = "tcp";
set_radioButtonUdpEnabled(false); set_radioButtonUdpEnabled(false);
set_radioButtonTcpEnabled(false); set_radioButtonTcpEnabled(false);
} else { } else {
trasnsport = openvpnConfig.value(config_key::transport_proto). transport = openvpnConfig.value(config_key::transport_proto).
toString(protocols::openvpn::defaultTransportProto); toString(protocols::openvpn::defaultTransportProto);
} }
set_radioButtonUdpChecked(trasnsport == protocols::openvpn::defaultTransportProto); set_radioButtonUdpChecked(transport == protocols::openvpn::defaultTransportProto);
set_radioButtonTcpChecked(trasnsport != protocols::openvpn::defaultTransportProto); set_radioButtonTcpChecked(transport != protocols::openvpn::defaultTransportProto);
set_comboBoxVpnCipherText(openvpnConfig.value(config_key::cipher). set_comboBoxVpnCipherText(openvpnConfig.value(config_key::cipher).
toString(protocols::openvpn::defaultCipher)); toString(protocols::openvpn::defaultCipher));
@ -137,8 +137,8 @@ void OpenVpnLogic::onPushButtonSaveClicked()
progressBarFunc.getValueFunc = [this] (void) -> int { progressBarFunc.getValueFunc = [this] (void) -> int {
return progressBarResetValue(); return progressBarResetValue();
}; };
progressBarFunc.getMaximiumFunc = [this] (void) -> int { progressBarFunc.getMaximumFunc = [this] (void) -> int {
return progressBarResetMaximium(); return progressBarResetMaximum();
}; };
progressBarFunc.setTextVisibleFunc = [this] (bool visible) -> void { progressBarFunc.setTextVisibleFunc = [this] (bool visible) -> void {
set_progressBarTextVisible(visible); set_progressBarTextVisible(visible);

View file

@ -33,7 +33,7 @@ class OpenVpnLogic : public PageProtocolLogicBase
AUTO_PROPERTY(bool, labelProtoOpenVpnInfoVisible) AUTO_PROPERTY(bool, labelProtoOpenVpnInfoVisible)
AUTO_PROPERTY(QString, labelProtoOpenVpnInfoText) AUTO_PROPERTY(QString, labelProtoOpenVpnInfoText)
AUTO_PROPERTY(int, progressBarResetValue) AUTO_PROPERTY(int, progressBarResetValue)
AUTO_PROPERTY(int, progressBarResetMaximium) AUTO_PROPERTY(int, progressBarResetMaximum)
AUTO_PROPERTY(bool, progressBarTextVisible) AUTO_PROPERTY(bool, progressBarTextVisible)
AUTO_PROPERTY(QString, progressBarText) AUTO_PROPERTY(QString, progressBarText)

View file

@ -19,7 +19,7 @@ ShadowSocksLogic::ShadowSocksLogic(UiLogic *logic, QObject *parent):
m_labelInfoVisible{true}, m_labelInfoVisible{true},
m_labelInfoText{}, m_labelInfoText{},
m_progressBarResetValue{0}, m_progressBarResetValue{0},
m_progressBarResetMaximium{100} m_progressBarResetMaximum{100}
{ {
} }
@ -79,8 +79,8 @@ void ShadowSocksLogic::onPushButtonSaveClicked()
progressBarFunc.getValueFunc = [this] (void) -> int { progressBarFunc.getValueFunc = [this] (void) -> int {
return progressBarResetValue(); return progressBarResetValue();
}; };
progressBarFunc.getMaximiumFunc = [this] (void) -> int { progressBarFunc.getMaximumFunc = [this] (void) -> int {
return progressBarResetMaximium(); return progressBarResetMaximum();
}; };
progressBarFunc.setTextVisibleFunc = [this] (bool visible) -> void { progressBarFunc.setTextVisibleFunc = [this] (bool visible) -> void {
set_progressBarTextVisible(visible); set_progressBarTextVisible(visible);

View file

@ -17,7 +17,7 @@ class ShadowSocksLogic : public PageProtocolLogicBase
AUTO_PROPERTY(bool, labelInfoVisible) AUTO_PROPERTY(bool, labelInfoVisible)
AUTO_PROPERTY(QString, labelInfoText) AUTO_PROPERTY(QString, labelInfoText)
AUTO_PROPERTY(int, progressBarResetValue) AUTO_PROPERTY(int, progressBarResetValue)
AUTO_PROPERTY(int, progressBarResetMaximium) AUTO_PROPERTY(int, progressBarResetMaximum)
AUTO_PROPERTY(bool, progressBarTextVisible) AUTO_PROPERTY(bool, progressBarTextVisible)
AUTO_PROPERTY(QString, progressBarText) AUTO_PROPERTY(QString, progressBarText)

View file

@ -77,7 +77,7 @@ PageBase {
enabled: ServerConfiguringProgressLogic.pageEnabled enabled: ServerConfiguringProgressLogic.pageEnabled
anchors.fill: pb_cancel anchors.fill: pb_cancel
from: 0 from: 0
to: ServerConfiguringProgressLogic.progressBarMaximium to: ServerConfiguringProgressLogic.progressBarMaximum
value: ServerConfiguringProgressLogic.progressBarValue value: ServerConfiguringProgressLogic.progressBarValue
visible: ServerConfiguringProgressLogic.progressBarVisible visible: ServerConfiguringProgressLogic.progressBarVisible
background: Rectangle { background: Rectangle {

View file

@ -37,7 +37,7 @@ PageBase {
Layout.fillWidth: true Layout.fillWidth: true
verticalAlignment: Text.AlignTop verticalAlignment: Text.AlignTop
text: qsTr('Optional.\n 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 { CheckBoxType {

View file

@ -133,7 +133,7 @@ PageProtocolBase {
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
anchors.fill: pb_save anchors.fill: pb_save
from: 0 from: 0
to: logic.progressBarResetMaximium to: logic.progressBarResetMaximum
value: logic.progressBarResetValue value: logic.progressBarResetValue
background: Rectangle { background: Rectangle {
implicitWidth: parent.width implicitWidth: parent.width

View file

@ -393,7 +393,7 @@ PageProtocolBase {
id: progress_save id: progress_save
anchors.fill: pb_save anchors.fill: pb_save
from: 0 from: 0
to: logic.progressBarResetMaximium to: logic.progressBarResetMaximum
value: logic.progressBarResetValue value: logic.progressBarResetValue
visible: logic.progressBarResetVisible visible: logic.progressBarResetVisible
background: Rectangle { background: Rectangle {

View file

@ -113,7 +113,7 @@ PageProtocolBase {
id: progressBar_reset id: progressBar_reset
anchors.fill: pb_save anchors.fill: pb_save
from: 0 from: 0
to: logic.progressBarResetMaximium to: logic.progressBarResetMaximum
value: logic.progressBarResetValue value: logic.progressBarResetValue
visible: logic.progressBarResetVisible visible: logic.progressBarResetVisible
background: Rectangle { background: Rectangle {

View file

@ -15,7 +15,7 @@ PageShareProtocolBase {
Caption { Caption {
id: caption id: caption
text: qsTr("Share SFTF settings") text: qsTr("Share SFTP settings")
} }
} }

View file

@ -124,7 +124,7 @@ Window {
for (var i=0; i<folderModelPages.count; i++) { for (var i=0; i<folderModelPages.count; i++) {
createPagesObjects(folderModelPages.get(i, "filePath"), PageType.Basic); createPagesObjects(folderModelPages.get(i, "filePath"), PageType.Basic);
} }
UiLogic.initalizeUiLogic() UiLogic.initializeUiLogic()
} }
} }
@ -156,7 +156,7 @@ Window {
function createPagesObjects(file, type) { function createPagesObjects(file, type) {
if (file.indexOf("Base") !== -1) return; // skip Base Pages 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); var c = Qt.createComponent("qrc" + file);
@ -178,7 +178,7 @@ Window {
sharePages[obj.protocol] = obj 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) { } else if (component.status === Component.Error) {
console.debug("Error loading component:", component.errorString()); console.debug("Error loading component:", component.errorString());

View file

@ -126,7 +126,7 @@ UiLogic::~UiLogic()
qDebug() << "Application closed"; qDebug() << "Application closed";
} }
void UiLogic::initalizeUiLogic() void UiLogic::initializeUiLogic()
{ {
#ifdef Q_OS_ANDROID #ifdef Q_OS_ANDROID
connect(AndroidController::instance(), &AndroidController::initialized, [this](bool status, bool connected, const QDateTime& connectionDate) { 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 { progressBarFunc.getValueFunc = [this] (void) -> int {
return pageLogic<ServerConfiguringProgressLogic>()->progressBarValue(); return pageLogic<ServerConfiguringProgressLogic>()->progressBarValue();
}; };
progressBarFunc.getMaximiumFunc = [this] (void) -> int { progressBarFunc.getMaximumFunc = [this] (void) -> int {
return pageLogic<ServerConfiguringProgressLogic>()->progressBarMaximium(); return pageLogic<ServerConfiguringProgressLogic>()->progressBarMaximum();
}; };
progressBarFunc.setTextVisibleFunc = [this] (bool visible) -> void { progressBarFunc.setTextVisibleFunc = [this] (bool visible) -> void {
pageLogic<ServerConfiguringProgressLogic>()->set_progressBarTextVisible(visible); pageLogic<ServerConfiguringProgressLogic>()->set_progressBarTextVisible(visible);

View file

@ -104,7 +104,7 @@ public:
Q_INVOKABLE virtual void onUpdatePage() {} // UiLogic is set as logic class for some qml pages Q_INVOKABLE virtual void onUpdatePage() {} // UiLogic is set as logic class for some qml pages
Q_INVOKABLE void onUpdateAllPages(); Q_INVOKABLE void onUpdateAllPages();
Q_INVOKABLE void initalizeUiLogic(); Q_INVOKABLE void initializeUiLogic();
Q_INVOKABLE void onCloseWindow(); Q_INVOKABLE void onCloseWindow();
Q_INVOKABLE QString containerName(int container); Q_INVOKABLE QString containerName(int container);

View file

@ -120,9 +120,9 @@ QString Utils::getIPAddress(const QString& host)
return host; return host;
} }
QList<QHostAddress> adresses = QHostInfo::fromName(host).addresses(); QList<QHostAddress> addresses = QHostInfo::fromName(host).addresses();
if (!adresses.isEmpty()) { if (!addresses.isEmpty()) {
return adresses.first().toString(); return addresses.first().toString();
} }
qDebug() << "Unable to resolve address for " << host; qDebug() << "Unable to resolve address for " << host;
return ""; return "";

View file

@ -309,7 +309,7 @@ QJsonObject VpnConnection::createVpnConfiguration(int serverIndex,
void VpnConnection::connectToVpn(int serverIndex, void VpnConnection::connectToVpn(int serverIndex,
const ServerCredentials &credentials, DockerContainer container, const QJsonObject &containerConfig) 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(); .arg(serverIndex).arg(ContainerProps::containerToString(container)) << m_settings->routeMode();
#if !defined (Q_OS_ANDROID) && !defined (Q_OS_IOS) #if !defined (Q_OS_ANDROID) && !defined (Q_OS_IOS)
@ -319,7 +319,7 @@ void VpnConnection::connectToVpn(int serverIndex,
if (!m_IpcClient->isSocketConnected()) { if (!m_IpcClient->isSocketConnected()) {
if (!IpcClient::init(m_IpcClient)) { if (!IpcClient::init(m_IpcClient)) {
qWarning() << "Error occured when init IPC client"; qWarning() << "Error occurred when init IPC client";
emit serviceIsNotReady(); emit serviceIsNotReady();
emit connectionStateChanged(VpnProtocol::Error); emit connectionStateChanged(VpnProtocol::Error);
return; return;

View file

@ -20,7 +20,7 @@ APP_DOMAIN=org.amneziavpn.package
OUT_APP_DIR=$BUILD_DIR/client OUT_APP_DIR=$BUILD_DIR/client
BUNDLE_DIR=$OUT_APP_DIR/$APP_FILENAME BUNDLE_DIR=$OUT_APP_DIR/$APP_FILENAME
# Seacrh Qt # Search Qt
if [ -z "${QT_VERSION+x}" ]; then if [ -z "${QT_VERSION+x}" ]; then
QT_VERSION=6.4.1; QT_VERSION=6.4.1;
QT_BIN_DIR=$HOME/Qt/$QT_VERSION/$ANDROID_CURRENT_ARCH/bin QT_BIN_DIR=$HOME/Qt/$QT_VERSION/$ANDROID_CURRENT_ARCH/bin

View file

@ -24,7 +24,7 @@ BUNDLE_DIR=$OUT_APP_DIR/$APP_FILENAME
PRO_FILE_PATH=$PROJECT_DIR/$APP_NAME.pro PRO_FILE_PATH=$PROJECT_DIR/$APP_NAME.pro
QMAKE_STASH_FILE=$PROJECT_DIR/.qmake_stash QMAKE_STASH_FILE=$PROJECT_DIR/.qmake_stash
# Seacrh Qt # Search Qt
if [ -z "${QT_VERSION+x}" ]; then if [ -z "${QT_VERSION+x}" ]; then
QT_VERSION=5.15.2; QT_VERSION=5.15.2;
QIF_VERSION=4.1 QIF_VERSION=4.1

View file

@ -33,7 +33,7 @@ INSTALLER_DATA_DIR=$PROJECT_DIR/deploy/installer/packages/$APP_DOMAIN/data
PRO_FILE_PATH=$PROJECT_DIR/$APP_NAME.pro PRO_FILE_PATH=$PROJECT_DIR/$APP_NAME.pro
QMAKE_STASH_FILE=$PROJECT_DIR/.qmake_stash QMAKE_STASH_FILE=$PROJECT_DIR/.qmake_stash
# Seacrh Qt # Search Qt
if [ -z "${QT_VERSION+x}" ]; then if [ -z "${QT_VERSION+x}" ]; then
QT_VERSION=5.15.2 QT_VERSION=5.15.2
if [ -f /opt/Qt/$QT_VERSION/gcc_64/bin/qmake ]; then if [ -f /opt/Qt/$QT_VERSION/gcc_64/bin/qmake ]; then

View file

@ -36,7 +36,7 @@ PRO_FILE_PATH=$PROJECT_DIR/$APP_NAME.pro
QMAKE_STASH_FILE=$PROJECT_DIR/.qmake_stash QMAKE_STASH_FILE=$PROJECT_DIR/.qmake_stash
DMG_FILENAME=$PROJECT_DIR/${APP_NAME}.dmg DMG_FILENAME=$PROJECT_DIR/${APP_NAME}.dmg
# Seacrh Qt # Search Qt
if [ -z "${QT_VERSION+x}" ]; then if [ -z "${QT_VERSION+x}" ]; then
QT_VERSION=6.4.1; QT_VERSION=6.4.1;
QIF_VERSION=4.1 QIF_VERSION=4.1
@ -102,7 +102,7 @@ if [ "${MAC_CERT_PW+x}" ]; then
spctl -a -vvvv $BUNDLE_DIR || true spctl -a -vvvv $BUNDLE_DIR || true
if [ "${NOTARIZE_APP+x}" ]; then 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 /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 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 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 /usr/bin/codesign --verify -vvvv $INSTALLER_BUNDLE_DIR || true
if [ "${NOTARIZE_APP+x}" ]; then 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 /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 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 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 /usr/bin/codesign --verify -vvvv $DMG_FILENAME || true
if [ "${NOTARIZE_APP+x}" ]; then 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 xcrun altool --notarize-app -f $DMG_FILENAME -t osx --primary-bundle-id $APP_DOMAIN -u $APPLE_DEV_EMAIL -p $APPLE_DEV_PASSWORD
sleep 600 sleep 600
xcrun stapler staple $DMG_FILENAME xcrun stapler staple $DMG_FILENAME

View file

@ -5,15 +5,15 @@
# #
# #################################################################### # ####################################################################
# #
# LIB_PATH - are releative path to libraryes of a deployed distribution. # LIB_PATH - are relative path to libraries of a deployed distribution.
# QML_PATH - are releative path to qml libraryes of a deployed distribution. # QML_PATH - are relative path to qml libraries of a deployed distribution.
# PLUGIN_PATH - are releative path to qt plugins of a deployed distribution. # PLUGIN_PATH - are relative path to qt plugins of a deployed distribution.
# BIN_PATH - are releative path to targets 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. # 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 # 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.
# #
# #################################################################### # ####################################################################

View file

@ -8,7 +8,7 @@
# Used snippets of resolvconf script by Thomas Hood <jdthood@yahoo.co.uk> # Used snippets of resolvconf script by Thomas Hood <jdthood@yahoo.co.uk>
# and Chris Hanson # and Chris Hanson
# Licensed under the GNU GPL. See /usr/share/common-licenses/GPL. # 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 # 05/2006 chlauber@bnc.ch
# #
# Example envs set from openvpn: # Example envs set from openvpn:

View file

@ -5,15 +5,15 @@
# #
# #################################################################### # ####################################################################
# #
# LIB_PATH - are releative path to libraryes of a deployed distribution. # LIB_PATH - are relative path to libraries of a deployed distribution.
# QML_PATH - are releative path to qml libraryes of a deployed distribution. # QML_PATH - are relative path to qml libraries of a deployed distribution.
# PLUGIN_PATH - are releative path to qt plugins of a deployed distribution. # PLUGIN_PATH - are relative path to qt plugins of a deployed distribution.
# BIN_PATH - are releative path to targets 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. # 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 # 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.
# #
# #################################################################### # ####################################################################

View file

@ -2,7 +2,7 @@
# Mac name-resolution updater based on @cl's script here: # 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/ # 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. # Smushed together and improved by @andrewgdotcom.
# Parses DHCP options from openvpn to update resolv.conf # Parses DHCP options from openvpn to update resolv.conf

View file

@ -52,9 +52,9 @@ function runningOnLinux()
return ((installer.value("os") === "linux") || (installer.value("os") === "x11")); return ((installer.value("os") === "linux") || (installer.value("os") === "x11"));
} }
function sleep(miliseconds) { function sleep(milliseconds) {
var currentTime = new Date().getTime(); var currentTime = new Date().getTime();
while (currentTime + miliseconds >= new Date().getTime()) {} while (currentTime + milliseconds >= new Date().getTime()) {}
} }
function raiseInstallerWindow() function raiseInstallerWindow()
@ -85,13 +85,13 @@ function appProcessIsRunning()
} }
} }
} else { } else {
return checkProccesIsRunning("pgrep -x '" + appName() + "'") return checkProcessIsRunning("pgrep -x '" + appName() + "'")
} }
return false; return false;
} }
function checkProccesIsRunning(arg) function checkProcessIsRunning(arg)
{ {
var cmdArgs = ["-c", arg]; var cmdArgs = ["-c", arg];
var result = installer.execute("/bin/bash", cmdArgs); var result = installer.execute("/bin/bash", cmdArgs);

View file

@ -136,7 +136,7 @@ bool IpcServer::copyWireguardConfig(const QString &sourcePath)
} }
if (!QFile::copy(sourcePath, wireguardConfigPath)) { 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 false;
} }
return true; return true;
@ -151,7 +151,7 @@ bool IpcServer::isWireguardRunning()
QProcess checkWireguardStatusProcess; QProcess checkWireguardStatusProcess;
connect(&checkWireguardStatusProcess, &QProcess::errorOccurred, this, [](QProcess::ProcessError error) { 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"); checkWireguardStatusProcess.setProgram("/bin/wg");

View file

@ -285,7 +285,7 @@ bool TapController::removeDriver(const QString& tapInstanceId)
tapInstallProc.waitForFinished(); tapInstallProc.waitForFinished();
QString output = QString( tapInstallProc.readAll() ); QString output = QString( tapInstallProc.readAll() );
if (output.contains("were removed")) { if (output.contains("were removed")) {
qDebug() << "TAP device" << tapInstanceId << "suceccfully removed"; qDebug() << "TAP device" << tapInstanceId << "successfully removed";
return true; return true;
} }
else { else {

View file

@ -7,7 +7,7 @@
#define IPv6_DEBUG #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 class TapController
{ {

View file

@ -522,7 +522,7 @@ int QtServiceBasePrivate::run(bool asService, const QStringList &argList)
You can retrieve the service's description, state, and startup You can retrieve the service's description, state, and startup
type using the serviceDescription(), serviceFlags() and type using the serviceDescription(), serviceFlags() and
startupType() functions respectively. The service's state is 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 also be set using the corresponding set functions. In addition you
can retrieve the service's name using the serviceName() function. 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 \row \i -e \i -exec
\i Execute the service as a standalone application (useful for debug purposes). \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. 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 -t \i -terminate \i Stop the service.
\row \i -p \i -pause \i Pause the service. \row \i -p \i -pause \i Pause the service.
\row \i -r \i -resume \i Resume a paused 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. ServiceFlag enum.
\sa ServiceFlags, setServiceFlags() \sa ServiceFlags, setServiceFlags()