added a check that S1 + messageInitiationSize should not be equal to S2 + messageResponseSize (#754)
This commit is contained in:
parent
af90065d2e
commit
98e6358fd3
4 changed files with 42 additions and 5 deletions
|
@ -89,14 +89,20 @@ void InstallController::install(DockerContainer container, int port, TransportPr
|
||||||
QString junkPacketCount = QString::number(QRandomGenerator::global()->bounded(3, 10));
|
QString junkPacketCount = QString::number(QRandomGenerator::global()->bounded(3, 10));
|
||||||
QString junkPacketMinSize = QString::number(50);
|
QString junkPacketMinSize = QString::number(50);
|
||||||
QString junkPacketMaxSize = QString::number(1000);
|
QString junkPacketMaxSize = QString::number(1000);
|
||||||
QString initPacketJunkSize = QString::number(QRandomGenerator::global()->bounded(15, 150));
|
|
||||||
QString responsePacketJunkSize = QString::number(QRandomGenerator::global()->bounded(15, 150));
|
int s1 = QRandomGenerator::global()->bounded(15, 150);
|
||||||
|
int s2 = QRandomGenerator::global()->bounded(15, 150);
|
||||||
|
while (s1 + AwgConstant::messageInitiationSize == s2 + AwgConstant::messageResponseSize) {
|
||||||
|
s2 = QRandomGenerator::global()->bounded(15, 150);
|
||||||
|
}
|
||||||
|
|
||||||
|
QString initPacketJunkSize = QString::number(s1);
|
||||||
|
QString responsePacketJunkSize = QString::number(s2);
|
||||||
|
|
||||||
QSet<QString> headersValue;
|
QSet<QString> headersValue;
|
||||||
while (headersValue.size() != 4) {
|
while (headersValue.size() != 4) {
|
||||||
|
|
||||||
auto max = (std::numeric_limits<qint32>::max)();
|
auto max = (std::numeric_limits<qint32>::max)();
|
||||||
headersValue.insert(QString::number(QRandomGenerator::global()->bounded(1, max)));
|
headersValue.insert(QString::number(QRandomGenerator::global()->bounded(5, max)));
|
||||||
}
|
}
|
||||||
|
|
||||||
auto headersValueList = headersValue.values();
|
auto headersValueList = headersValue.values();
|
||||||
|
|
|
@ -129,6 +129,16 @@ QJsonObject AwgConfigModel::getConfig()
|
||||||
return m_fullConfig;
|
return m_fullConfig;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool AwgConfigModel::isHeadersEqual(const QString &h1, const QString &h2, const QString &h3, const QString &h4)
|
||||||
|
{
|
||||||
|
return (h1 == h2) || (h1 == h3) || (h1 == h4) || (h2 == h3) || (h2 == h4) || (h3 == h4);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool AwgConfigModel::isPacketSizeEqual(const int s1, const int s2)
|
||||||
|
{
|
||||||
|
return (AwgConstant::messageInitiationSize + s1 == AwgConstant::messageResponseSize + s2);
|
||||||
|
}
|
||||||
|
|
||||||
QHash<int, QByteArray> AwgConfigModel::roleNames() const
|
QHash<int, QByteArray> AwgConfigModel::roleNames() const
|
||||||
{
|
{
|
||||||
QHash<int, QByteArray> roles;
|
QHash<int, QByteArray> roles;
|
||||||
|
|
|
@ -6,6 +6,11 @@
|
||||||
|
|
||||||
#include "containers/containers_defs.h"
|
#include "containers/containers_defs.h"
|
||||||
|
|
||||||
|
namespace AwgConstant {
|
||||||
|
const int messageInitiationSize = 148;
|
||||||
|
const int messageResponseSize = 92;
|
||||||
|
}
|
||||||
|
|
||||||
struct AwgConfig
|
struct AwgConfig
|
||||||
{
|
{
|
||||||
AwgConfig(const QJsonObject &jsonConfig);
|
AwgConfig(const QJsonObject &jsonConfig);
|
||||||
|
@ -57,6 +62,9 @@ public slots:
|
||||||
void updateModel(const QJsonObject &config);
|
void updateModel(const QJsonObject &config);
|
||||||
QJsonObject getConfig();
|
QJsonObject getConfig();
|
||||||
|
|
||||||
|
bool isHeadersEqual(const QString &h1, const QString &h2, const QString &h3, const QString &h4);
|
||||||
|
bool isPacketSizeEqual(const int s1, const int s2);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
QHash<int, QByteArray> roleNames() const override;
|
QHash<int, QByteArray> roleNames() const override;
|
||||||
|
|
||||||
|
|
|
@ -136,7 +136,6 @@ PageType {
|
||||||
textField.validator: IntValidator { bottom: 0 }
|
textField.validator: IntValidator { bottom: 0 }
|
||||||
|
|
||||||
textField.onEditingFinished: {
|
textField.onEditingFinished: {
|
||||||
console.log("1")
|
|
||||||
if (textFieldText === "") {
|
if (textFieldText === "") {
|
||||||
textFieldText = "0"
|
textFieldText = "0"
|
||||||
}
|
}
|
||||||
|
@ -332,6 +331,20 @@ PageType {
|
||||||
text: qsTr("Save")
|
text: qsTr("Save")
|
||||||
|
|
||||||
onClicked: {
|
onClicked: {
|
||||||
|
if (AwgConfigModel.isHeadersEqual(underloadPacketMagicHeaderTextField.textField.text,
|
||||||
|
transportPacketMagicHeaderTextField.textField.text,
|
||||||
|
responsePacketMagicHeaderTextField.textField.text,
|
||||||
|
initPacketMagicHeaderTextField.textField.text)) {
|
||||||
|
PageController.showErrorMessage(qsTr("The values of the H1-H4 fields must be unique"))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if (AwgConfigModel.isPacketSizeEqual(parseInt(initPacketJunkSizeTextField.textField.text),
|
||||||
|
parseInt(responsePacketJunkSizeTextField.textField.text))) {
|
||||||
|
PageController.showErrorMessage(qsTr("The value of the field S1 + message initiation size (148) must not equal S2 + message response size (92)"))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
var headerText = qsTr("Save settings?")
|
var headerText = qsTr("Save settings?")
|
||||||
var descriptionText = qsTr("All users with whom you shared a connection with will no longer be able to connect to it.")
|
var descriptionText = qsTr("All users with whom you shared a connection with will no longer be able to connect to it.")
|
||||||
var yesButtonText = qsTr("Continue")
|
var yesButtonText = qsTr("Continue")
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue