diff --git a/client/server_scripts/awg/configure_container.sh b/client/server_scripts/awg/configure_container.sh index 2000c965..06209ce8 100644 --- a/client/server_scripts/awg/configure_container.sh +++ b/client/server_scripts/awg/configure_container.sh @@ -23,4 +23,14 @@ H1 = $INIT_PACKET_MAGIC_HEADER H2 = $RESPONSE_PACKET_MAGIC_HEADER H3 = $UNDERLOAD_PACKET_MAGIC_HEADER H4 = $TRANSPORT_PACKET_MAGIC_HEADER +I1 = $I1 +I2 = $I2 +I3 = $I3 +I4 = $I4 +I5 = $I5 +J1 = $J1 +J2 = $J2 +J3 = $J3 +Itime = $I_TIME + EOF diff --git a/client/server_scripts/awg/template.conf b/client/server_scripts/awg/template.conf index 79932806..b452990b 100644 --- a/client/server_scripts/awg/template.conf +++ b/client/server_scripts/awg/template.conf @@ -11,6 +11,15 @@ H1 = $INIT_PACKET_MAGIC_HEADER H2 = $RESPONSE_PACKET_MAGIC_HEADER H3 = $UNDERLOAD_PACKET_MAGIC_HEADER H4 = $TRANSPORT_PACKET_MAGIC_HEADER +I1 = $I1 +I2 = $I2 +I3 = $I3 +I4 = $I4 +I5 = $I5 +J1 = $J1 +J2 = $J2 +J3 = $J3 +Itime = $I_TIME [Peer] PublicKey = $WIREGUARD_SERVER_PUBLIC_KEY diff --git a/client/ui/qml/Pages2/PageProtocolAwgClientSettings.qml b/client/ui/qml/Pages2/PageProtocolAwgClientSettings.qml index b8cf5f93..24dd60a9 100644 --- a/client/ui/qml/Pages2/PageProtocolAwgClientSettings.qml +++ b/client/ui/qml/Pages2/PageProtocolAwgClientSettings.qml @@ -171,7 +171,6 @@ PageType { } checkEmptyText: true - } Header2TextType { @@ -257,6 +256,105 @@ PageType { headerText: "H4 - Transport packet magic header" textField.text: serverTransportPacketMagicHeader } + + TextFieldWithHeaderType { + id: i1JunkPacketTextField + Layout.fillWidth: true + Layout.topMargin: 16 + + enabled: false + + headerText: "I1 - First special junk packet" + textField.text: serverI1JunkPacket + } + + TextFieldWithHeaderType { + id: i2JunkPacketTextField + Layout.fillWidth: true + Layout.topMargin: 16 + + enabled: false + + headerText: "I2 - Second special junk packet" + textField.text: serverI2JunkPacket + } + + TextFieldWithHeaderType { + id: i3JunkPacketTextField + Layout.fillWidth: true + Layout.topMargin: 16 + + enabled: false + + headerText: "I3 - Third special junk packet" + textField.text: serverI3JunkPacket + } + + TextFieldWithHeaderType { + id: i4JunkPacketTextField + Layout.fillWidth: true + Layout.topMargin: 16 + + enabled: false + + headerText: "I4 - Fourth special junk packet" + textField.text: serverI4JunkPacket + } + + TextFieldWithHeaderType { + id: i5JunkPacketTextField + Layout.fillWidth: true + Layout.topMargin: 16 + + enabled: false + + headerText: "I5 - Fifth special junk packet" + textField.text: serverI5JunkPacket + } + + TextFieldWithHeaderType { + id: j1JunkPacketTextField + Layout.fillWidth: true + Layout.topMargin: 16 + + enabled: false + + headerText: "J1 - First controlled junk packet" + textField.text: serverJ1JunkPacket + } + + TextFieldWithHeaderType { + id: j2JunkPacketTextField + Layout.fillWidth: true + Layout.topMargin: 16 + + enabled: false + + headerText: "J2 - Second controlled junk packet" + textField.text: serverJ2JunkPacket + } + + TextFieldWithHeaderType { + id: j3JunkPacketTextField + Layout.fillWidth: true + Layout.topMargin: 16 + + enabled: false + + headerText: "J3 - Third controlled junk packet" + textField.text: serverJ3JunkPacket + } + + TextFieldWithHeaderType { + id: iTimeTextField + Layout.fillWidth: true + Layout.topMargin: 16 + + enabled: false + + headerText: "Itime - Special handshake timeout" + textField.text: serverSepciaHandshaketIntervalTime + } } } } diff --git a/client/ui/qml/Pages2/PageProtocolAwgSettings.qml b/client/ui/qml/Pages2/PageProtocolAwgSettings.qml index e8fd2b94..93455f97 100644 --- a/client/ui/qml/Pages2/PageProtocolAwgSettings.qml +++ b/client/ui/qml/Pages2/PageProtocolAwgSettings.qml @@ -280,6 +280,24 @@ PageType { checkEmptyText: true } + TextFieldWithHeaderType { + id: underloadPacketMagicHeaderTextField + Layout.fillWidth: true + Layout.topMargin: 16 + + headerText: qsTr("H3 - Underload packet magic header") + textField.text: serverUnderloadPacketMagicHeader + textField.validator: IntValidator { bottom: 0 } + + textField.onEditingFinished: { + if (textField.text !== serverUnderloadPacketMagicHeader) { + serverUnderloadPacketMagicHeader = textField.text + } + } + + checkEmptyText: true + } + TextFieldWithHeaderType { id: transportPacketMagicHeaderTextField Layout.fillWidth: true @@ -299,23 +317,173 @@ PageType { } TextFieldWithHeaderType { - id: underloadPacketMagicHeaderTextField + id: I1JunkPacketTextField Layout.fillWidth: true Layout.topMargin: 16 - headerText: qsTr("H3 - Underload packet magic header") - textField.text: serverUnderloadPacketMagicHeader + headerText: qsTr("I1 - First special junk packet") + textField.text: serverI1JunkPacket textField.validator: IntValidator { bottom: 0 } textField.onEditingFinished: { - if (textField.text !== serverUnderloadPacketMagicHeader) { - serverUnderloadPacketMagicHeader = textField.text + if (textField.text !== serverI1JunkPacket) { + serverI1JunkPacket = textField.text } } checkEmptyText: true } + TextFieldWithHeaderType { + id: I2JunkPacketTextField + Layout.fillWidth: true + Layout.topMargin: 16 + + headerText: qsTr("I2 - Second special junk packet") + textField.text: serverI2JunkPacket + textField.validator: IntValidator { bottom: 0 } + + textField.onEditingFinished: { + if (textField.text !== serverI2JunkPacket) { + serverI2JunkPacket = textField.text + } + } + + checkEmptyText: true + } + + TextFieldWithHeaderType { + id: I3JunkPacketTextField + Layout.fillWidth: true + Layout.topMargin: 16 + + headerText: qsTr("I3 - Third special junk packet") + textField.text: serverI3JunkPacket + textField.validator: IntValidator { bottom: 0 } + + textField.onEditingFinished: { + if (textField.text !== serverI3JunkPacket) { + serverI3JunkPacket = textField.text + } + } + + checkEmptyText: true + } + + TextFieldWithHeaderType { + id: I4JunkPacketTextField + Layout.fillWidth: true + Layout.topMargin: 16 + + headerText: qsTr("I4 - Fourth special junk packet") + textField.text: serverI4JunkPacket + textField.validator: IntValidator { bottom: 0 } + + textField.onEditingFinished: { + if (textField.text !== serverI4JunkPacket) { + serverI4JunkPacket = textField.text + } + } + + checkEmptyText: true + } + + TextFieldWithHeaderType { + id: I5JunkPacketTextField + Layout.fillWidth: true + Layout.topMargin: 16 + + headerText: qsTr("I5 - Fifth special junk packet") + textField.text: serverI5JunkPacket + textField.validator: IntValidator { bottom: 0 } + + textField.onEditingFinished: { + if (textField.text !== serverI5JunkPacket) { + serverI5JunkPacket = textField.text + } + } + + checkEmptyText: true + } + + TextFieldWithHeaderType { + id: J1JunkPacketTextField + Layout.fillWidth: true + Layout.topMargin: 16 + + headerText: qsTr("J1 - First controlled junk packet") + textField.text: serverJ1JunkPacket + textField.validator: IntValidator { bottom: 0 } + + textField.onEditingFinished: { + if (textField.text !== serverJ1JunkPacket) { + serverJ1JunkPacket = textField.text + } + } + + checkEmptyText: true + } + + TextFieldWithHeaderType { + id: J2JunkPacketTextField + Layout.fillWidth: true + Layout.topMargin: 16 + + headerText: qsTr("J2 - Second controlled junk packet") + textField.text: serverJ2JunkPacket + textField.validator: IntValidator { bottom: 0 } + + textField.onEditingFinished: { + if (textField.text !== serverJ2JunkPacket) { + serverJ2JunkPacket = textField.text + } + } + + checkEmptyText: true + } + + TextFieldWithHeaderType { + id: J3JunkPacketTextField + Layout.fillWidth: true + Layout.topMargin: 16 + + headerText: qsTr("J3 - Third controlled junk packet") + textField.text: serverJ3JunkPacket + textField.validator: IntValidator { bottom: 0 } + + textField.onEditingFinished: { + if (textField.text !== serverJ3JunkPacket) { + serverJ3JunkPacket = textField.text + } + } + + checkEmptyText: true + } + + TextFieldWithHeaderType { + id: ItimeTextField + Layout.fillWidth: true + Layout.topMargin: 16 + + headerText: qsTr("Itime - Special handshake timeout") + textField.text: serverSepciaHandshaketIntervalTime + textField.validator: IntValidator { bottom: 0 } + + textField.onEditingFinished: { + if (textField.text !== serverSepcialHandshakeIntervalTime) { + serverSepcialHandshakeIntervalTime = textField.text + } + } + + checkEmptyText: true + + onActiveFocusChanged: { + if(activeFocus) { + listview.positionViewAtEnd() + } + } + } + BasicButtonType { id: saveRestartButton @@ -332,6 +500,15 @@ PageType { junkPacketMaxSizeTextField.errorText === "" && junkPacketMinSizeTextField.errorText === "" && junkPacketCountTextField.errorText === "" && + I1JunkPacketTextField.errorText === "" && + I2JunkPacketTextField.errorText === "" && + I3JunkPacketTextField.errorText === "" && + I4JunkPacketTextField.errorText === "" && + I5JunkPacketTextField.errorText === "" && + J1JunkPacketTextField.errorText === "" && + J2JunkPacketTextField.errorText === "" && + J3JunkPacketTextField.errorText === "" && + ItimeTextField.errorText === "" && portTextField.errorText === "" && vpnAddressSubnetTextField.errorText === ""