
* Username if whoami returns an error Сommand to use home directory name if whoami returns error or is missing for prepare_host.sh. * Update check_user_in_sudo.sh Сommand to use home directory name if whoami returns error or is missing for check_user_in_sudo.sh. Checking server user permissions to use sudo using a package manager or using uname. Сhecking and redefining the system language. Checking requirements for sudo users or root in script. * Cases have been changed and added. Changed description of the “Server User Not In Sudo” case. Corrected the name and description of the "ServerPacketManagerError" case. Packet to Package. Adding a "SudoPackageIsNotPreinstalled" case. Adding a "ServerUserNotAllowedInSudoers" case. Adding a "ServerUserPasswordRequired" case. * Serves errors have been changed and added. Corrected the name of the "ServerPacketManagerError" error to "ServerPackageManagerError". Adding a "SudoPackageIsNotPreinstalled" error. Adding a "ServerUserNotAllowedInSudoers" error. Adding a "ServerUserPasswordRequired" error. * Return ServerPacketManagerError Return to the name "ServerPacketManagerError". * Added errors handling Added new errors' handling to serverController.cpp. Permission checks are also performed for the root user. * Update translations Updating translations for two existing server errors. * Myanmar translation update * Update for my_MM.ts * checking for not allowed Checking for "not allowed" in stdOut * Removed "not allowed" Removed check for "not allowed" in stdOut * Removed nested launch Removed nested launch via sudo * Returned nested launch Returned nested launch via sudo * All checks with sudo Both checks with sudo always run. * Moved removing timestamp sudo Removing the sudo timestamp is done every time. * Checking the user directory Checking the accessibility of the user's home directory * Polishing Изменение порядка обработки ошибок. * changing detection order change the order of detection of inconsistencies: 1. sudo not preinstalled. (if user != root) 2. user not in sudo or wheel group. (if user != root) 3. user's directory is not accessible. (for all) 4. user not allowed in sudoers. (for all) 5. user password required. (for all) * Packet to Package * chore: bump version (#1463) * fix for sh (#1462) Fix for servers where sh is used as default shell. * Username if whoami returns an error Сommand to use home directory name if whoami returns error or is missing for prepare_host.sh. * Update check_user_in_sudo.sh Сommand to use home directory name if whoami returns error or is missing for check_user_in_sudo.sh. Checking server user permissions to use sudo using a package manager or using uname. Сhecking and redefining the system language. Checking requirements for sudo users or root in script. * Cases have been changed and added. Changed description of the “Server User Not In Sudo” case. Corrected the name and description of the "ServerPacketManagerError" case. Packet to Package. Adding a "SudoPackageIsNotPreinstalled" case. Adding a "ServerUserNotAllowedInSudoers" case. Adding a "ServerUserPasswordRequired" case. * Serves errors have been changed and added. Corrected the name of the "ServerPacketManagerError" error to "ServerPackageManagerError". Adding a "SudoPackageIsNotPreinstalled" error. Adding a "ServerUserNotAllowedInSudoers" error. Adding a "ServerUserPasswordRequired" error. * Return ServerPacketManagerError Return to the name "ServerPacketManagerError". * Update translations Updating translations for two existing server errors. * Added errors handling Added new errors' handling to serverController.cpp. Permission checks are also performed for the root user. * Myanmar translation update * Update for my_MM.ts * checking for not allowed Checking for "not allowed" in stdOut * Removed "not allowed" Removed check for "not allowed" in stdOut * Removed nested launch Removed nested launch via sudo * Returned nested launch Returned nested launch via sudo * All checks with sudo Both checks with sudo always run. * Moved removing timestamp sudo Removing the sudo timestamp is done every time. * Checking the user directory Checking the accessibility of the user's home directory * Polishing Изменение порядка обработки ошибок. * changing detection order change the order of detection of inconsistencies: 1. sudo not preinstalled. (if user != root) 2. user not in sudo or wheel group. (if user != root) 3. user's directory is not accessible. (for all) 4. user not allowed in sudoers. (for all) 5. user password required. (for all) * Undoing unintended changes Undoing unintended changes. * Undoing unintended change Undoing unintended change. * not allowed to use sudo The user is not allowed to use sudo on this server. * Capital letters in the error Capital letters in the error description. --------- Co-authored-by: albexk <albexk@proton.me>
136 lines
3.6 KiB
C++
136 lines
3.6 KiB
C++
#ifndef DEFS_H
|
|
#define DEFS_H
|
|
|
|
#include <QMetaEnum>
|
|
#include <QObject>
|
|
|
|
namespace amnezia
|
|
{
|
|
struct ServerCredentials
|
|
{
|
|
QString hostName;
|
|
QString userName;
|
|
QString secretData;
|
|
int port = 22;
|
|
|
|
bool isValid() const
|
|
{
|
|
return !hostName.isEmpty() && !userName.isEmpty() && !secretData.isEmpty() && port > 0;
|
|
}
|
|
};
|
|
|
|
struct InstalledAppInfo {
|
|
QString appName;
|
|
QString packageName;
|
|
QString appPath;
|
|
|
|
bool operator==(const InstalledAppInfo& other) const {
|
|
if (!packageName.isEmpty()) {
|
|
return packageName == other.packageName;
|
|
} else {
|
|
return appPath == other.appPath;
|
|
}
|
|
}
|
|
};
|
|
|
|
namespace error_code_ns
|
|
{
|
|
Q_NAMESPACE
|
|
// TODO: change to enum class
|
|
enum ErrorCode {
|
|
// General error codes
|
|
NoError = 0,
|
|
UnknownError = 100,
|
|
InternalError = 101,
|
|
NotImplementedError = 102,
|
|
AmneziaServiceNotRunning = 103,
|
|
NotSupportedOnThisPlatform = 104,
|
|
|
|
// Server errors
|
|
ServerCheckFailed = 200,
|
|
ServerPortAlreadyAllocatedError = 201,
|
|
ServerContainerMissingError = 202,
|
|
ServerDockerFailedError = 203,
|
|
ServerCancelInstallation = 204,
|
|
ServerUserNotInSudo = 205,
|
|
ServerPacketManagerError = 206,
|
|
SudoPackageIsNotPreinstalled = 207,
|
|
ServerUserDirectoryNotAccessible = 208,
|
|
ServerUserNotAllowedInSudoers = 209,
|
|
ServerUserPasswordRequired = 210,
|
|
|
|
// Ssh connection errors
|
|
SshRequestDeniedError = 300,
|
|
SshInterruptedError = 301,
|
|
SshInternalError = 302,
|
|
SshPrivateKeyError = 303,
|
|
SshPrivateKeyFormatError = 304,
|
|
SshTimeoutError = 305,
|
|
|
|
// Ssh scp errors
|
|
SshScpFailureError = 400,
|
|
|
|
// Local errors
|
|
OpenVpnConfigMissing = 500,
|
|
OpenVpnManagementServerError = 501,
|
|
|
|
// Distro errors
|
|
OpenVpnExecutableMissing = 600,
|
|
ShadowSocksExecutableMissing = 601,
|
|
CloakExecutableMissing = 602,
|
|
AmneziaServiceConnectionFailed = 603,
|
|
ExecutableMissing = 604,
|
|
XrayExecutableMissing = 605,
|
|
Tun2SockExecutableMissing = 606,
|
|
|
|
// VPN errors
|
|
OpenVpnAdaptersInUseError = 700,
|
|
OpenVpnUnknownError = 701,
|
|
OpenVpnTapAdapterError = 702,
|
|
AddressPoolError = 703,
|
|
|
|
// 3rd party utils errors
|
|
OpenSslFailed = 800,
|
|
ShadowSocksExecutableCrashed = 801,
|
|
CloakExecutableCrashed = 802,
|
|
XrayExecutableCrashed = 803,
|
|
Tun2SockExecutableCrashed = 804,
|
|
|
|
// import and install errors
|
|
ImportInvalidConfigError = 900,
|
|
ImportOpenConfigError = 901,
|
|
NoInstalledContainersError = 902,
|
|
|
|
// Android errors
|
|
AndroidError = 1000,
|
|
|
|
// Api errors
|
|
ApiConfigDownloadError = 1100,
|
|
ApiConfigAlreadyAdded = 1101,
|
|
ApiConfigEmptyError = 1102,
|
|
ApiConfigTimeoutError = 1103,
|
|
ApiConfigSslError = 1104,
|
|
ApiMissingAgwPublicKey = 1105,
|
|
ApiConfigDecryptionError = 1106,
|
|
ApiServicesMissingError = 1107,
|
|
ApiConfigLimitError = 1108,
|
|
ApiNotFoundError = 1109,
|
|
|
|
// QFile errors
|
|
OpenError = 1200,
|
|
ReadError = 1201,
|
|
PermissionsError = 1202,
|
|
UnspecifiedError = 1203,
|
|
FatalError = 1204,
|
|
AbortError = 1205
|
|
};
|
|
Q_ENUM_NS(ErrorCode)
|
|
}
|
|
|
|
using ErrorCode = error_code_ns::ErrorCode;
|
|
|
|
} // namespace amnezia
|
|
|
|
Q_DECLARE_METATYPE(amnezia::ErrorCode)
|
|
|
|
#endif // DEFS_H
|