Browse Source

qt: newer options added; not tested

pull/1560/head
user 4 years ago
parent
commit
17f5bcbd1c
  1. 12
      qt/i2pd_qt/TunnelConfig.cpp
  2. 26
      qt/i2pd_qt/TunnelConfig.h
  3. 119
      qt/i2pd_qt/TunnelPane.cpp
  4. 63
      qt/i2pd_qt/TunnelPane.h
  5. 15
      qt/i2pd_qt/generalsettingswidget.ui
  6. 3
      qt/i2pd_qt/i2pd_qt.pro
  7. 17
      qt/i2pd_qt/mainwindow.cpp
  8. 36
      qt/i2pd_qt/mainwindow.h

12
qt/i2pd_qt/TunnelConfig.cpp

@ -24,6 +24,18 @@ void TunnelConfig::saveI2CPParametersToStringStream(std::stringstream& out) {
if (!i2cpParameters.getExplicitPeers().isEmpty()) //todo #947 if (!i2cpParameters.getExplicitPeers().isEmpty()) //todo #947
out << i2p::client::I2CP_PARAM_EXPLICIT_PEERS << "=" out << i2p::client::I2CP_PARAM_EXPLICIT_PEERS << "="
<< i2cpParameters.getExplicitPeers().toStdString() << "\n"; << i2cpParameters.getExplicitPeers().toStdString() << "\n";
out << i2p::client::I2CP_PARAM_LEASESET_AUTH_TYPE << "="
<< i2cpParameters.get_i2cp_leaseSetAuthType().toStdString() << "\n";
out << i2p::client::I2CP_PARAM_LEASESET_ENCRYPTION_TYPE << "="
<< i2cpParameters.get_i2cp_leaseSetEncType().toStdString() << "\n";
out << i2p::client::I2CP_PARAM_LEASESET_PRIV_KEY << "="
<< i2cpParameters.get_i2cp_leaseSetPrivKey().toStdString() << "\n";
out << i2p::client::I2CP_PARAM_LEASESET_TYPE << "="
<< i2cpParameters.get_i2cp_leaseSetType().toStdString() << "\n";
out << i2p::client::I2CP_PARAM_STREAMING_ANSWER_PINGS << "="
<< (i2cpParameters.get_i2p_streaming_answerPings() ? "true" : "false") << "\n";
out << i2p::client::I2CP_PARAM_STREAMING_INITIAL_ACK_DELAY << "="
<< i2cpParameters.get_i2p_streaming_initialAckDelay().toStdString() << "\n";
out << "\n"; out << "\n";
} }

26
qt/i2pd_qt/TunnelConfig.h

@ -16,25 +16,49 @@ class I2CPParameters{
QString outbound_quantity; //number of outbound tunnels. 5 by default QString outbound_quantity; //number of outbound tunnels. 5 by default
QString crypto_tagsToSend; //number of ElGamal/AES tags to send. 40 by default; too low value may cause problems with tunnel building QString crypto_tagsToSend; //number of ElGamal/AES tags to send. 40 by default; too low value may cause problems with tunnel building
QString explicitPeers; //list of comma-separated b64 addresses of peers to use, default: unset QString explicitPeers; //list of comma-separated b64 addresses of peers to use, default: unset
QString i2p_streaming_initialAckDelay; //i2p.streaming.initialAckDelay -- milliseconds to wait before sending Ack. 200 by default
bool i2p_streaming_answerPings; //i2p.streaming.answerPings -- enable sending pongs. true by default
QString i2cp_leaseSetType; //i2cp.leaseSetType -- type of LeaseSet to be sent. 1, 3 or 5. 1 by default
QString i2cp_leaseSetEncType; //i2cp.leaseSetEncType -- comma separated encryption types to be used in LeaseSet type 3 or 5. Identity's type by default
QString i2cp_leaseSetPrivKey; //i2cp.leaseSetPrivKey -- decryption key for encrypted LeaseSet in base64. PSK or private DH
QString i2cp_leaseSetAuthType; //i2cp.leaseSetAuthType -- authentication type for encrypted LeaseSet. 0 - no authentication(default), 1 - DH, 2 - PSK
public: public:
I2CPParameters(): inbound_length(), I2CPParameters(): inbound_length(),
outbound_length(), outbound_length(),
inbound_quantity(), inbound_quantity(),
outbound_quantity(), outbound_quantity(),
crypto_tagsToSend(), crypto_tagsToSend(),
explicitPeers() {} explicitPeers(),
i2p_streaming_initialAckDelay(),
i2p_streaming_answerPings(true),
i2cp_leaseSetType(),
i2cp_leaseSetEncType(),
i2cp_leaseSetPrivKey(),
i2cp_leaseSetAuthType() {}
const QString& getInbound_length(){return inbound_length;} const QString& getInbound_length(){return inbound_length;}
const QString& getOutbound_length(){return outbound_length;} const QString& getOutbound_length(){return outbound_length;}
const QString& getInbound_quantity(){return inbound_quantity;} const QString& getInbound_quantity(){return inbound_quantity;}
const QString& getOutbound_quantity(){return outbound_quantity;} const QString& getOutbound_quantity(){return outbound_quantity;}
const QString& getCrypto_tagsToSend(){return crypto_tagsToSend;} const QString& getCrypto_tagsToSend(){return crypto_tagsToSend;}
const QString& getExplicitPeers(){return explicitPeers;} const QString& getExplicitPeers(){return explicitPeers;}
const QString& get_i2p_streaming_initialAckDelay(){return i2p_streaming_initialAckDelay;}
bool get_i2p_streaming_answerPings(){return i2p_streaming_answerPings;}
const QString& get_i2cp_leaseSetType(){return i2cp_leaseSetType;}
const QString& get_i2cp_leaseSetEncType(){return i2cp_leaseSetEncType;}
const QString& get_i2cp_leaseSetPrivKey(){return i2cp_leaseSetPrivKey;}
const QString& get_i2cp_leaseSetAuthType(){return i2cp_leaseSetAuthType;}
void setInbound_length(QString inbound_length_){inbound_length=inbound_length_;} void setInbound_length(QString inbound_length_){inbound_length=inbound_length_;}
void setOutbound_length(QString outbound_length_){outbound_length=outbound_length_;} void setOutbound_length(QString outbound_length_){outbound_length=outbound_length_;}
void setInbound_quantity(QString inbound_quantity_){inbound_quantity=inbound_quantity_;} void setInbound_quantity(QString inbound_quantity_){inbound_quantity=inbound_quantity_;}
void setOutbound_quantity(QString outbound_quantity_){outbound_quantity=outbound_quantity_;} void setOutbound_quantity(QString outbound_quantity_){outbound_quantity=outbound_quantity_;}
void setCrypto_tagsToSend(QString crypto_tagsToSend_){crypto_tagsToSend=crypto_tagsToSend_;} void setCrypto_tagsToSend(QString crypto_tagsToSend_){crypto_tagsToSend=crypto_tagsToSend_;}
void setExplicitPeers(QString explicitPeers_){explicitPeers=explicitPeers_;} void setExplicitPeers(QString explicitPeers_){explicitPeers=explicitPeers_;}
void set_i2p_streaming_initialAckDelay(QString i2p_streaming_initialAckDelay_){i2p_streaming_initialAckDelay=i2p_streaming_initialAckDelay_;}
void set_i2p_streaming_answerPings(bool i2p_streaming_answerPings_){i2p_streaming_answerPings=i2p_streaming_answerPings_;}
void set_i2cp_leaseSetType(QString i2cp_leaseSetType_){i2cp_leaseSetType=i2cp_leaseSetType_;}
void set_i2cp_leaseSetEncType(QString i2cp_leaseSetEncType_){i2cp_leaseSetEncType=i2cp_leaseSetEncType_;}
void set_i2cp_leaseSetPrivKey(QString i2cp_leaseSetPrivKey_){i2cp_leaseSetPrivKey=i2cp_leaseSetPrivKey_;}
void set_i2cp_leaseSetAuthType(QString i2cp_leaseSetAuthType_){i2cp_leaseSetAuthType=i2cp_leaseSetAuthType_;}
}; };

119
qt/i2pd_qt/TunnelPane.cpp

@ -187,30 +187,149 @@ void TunnelPane::appendControlsForI2CPParameters(I2CPParameters& i2cpParameters,
{ {
//explicitPeers -- list of comma-separated b64 addresses of peers to use, default: unset //explicitPeers -- list of comma-separated b64 addresses of peers to use, default: unset
const QString& value=i2cpParameters.getExplicitPeers();
QHBoxLayout *horizontalLayout_2 = new QHBoxLayout();
horizontalLayout_2->setObjectName(QStringLiteral("horizontalLayout_2"));
QLabel *_Label;
explicitPeersLabel = _Label = new QLabel(gridLayoutWidget_2);
_Label->setObjectName(QStringLiteral("_Label"));
horizontalLayout_2->addWidget(_Label);
QLineEdit *_LineEdit;
explicitPeersLineEdit = _LineEdit = new QLineEdit(gridLayoutWidget_2);
_LineEdit->setObjectName(QStringLiteral("_LineEdit"));
_LineEdit->setText(value);
_LineEdit->setMaximumWidth(80);
QObject::connect(_LineEdit, SIGNAL(textChanged(const QString &)),
this, SLOT(updated()));
horizontalLayout_2->addWidget(_LineEdit);
QSpacerItem * horizontalSpacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
horizontalLayout_2->addItem(horizontalSpacer);
tunnelGridLayout->addLayout(horizontalLayout_2);
} }
{ {
//i2p.streaming.initialAckDelay -- milliseconds to wait before sending Ack. 200 by default //i2p.streaming.initialAckDelay -- milliseconds to wait before sending Ack. 200 by default
const QString& value=i2cpParameters.get_i2p_streaming_initialAckDelay();
QHBoxLayout *horizontalLayout_2 = new QHBoxLayout();
horizontalLayout_2->setObjectName(QStringLiteral("horizontalLayout_2"));
QLabel *_Label;
i2p_streaming_initialAckDelayLabel = _Label = new QLabel(gridLayoutWidget_2);
_Label->setObjectName(QStringLiteral("_Label"));
horizontalLayout_2->addWidget(_Label);
QLineEdit *_LineEdit;
i2p_streaming_initialAckDelayLineEdit = _LineEdit = new QLineEdit(gridLayoutWidget_2);
_LineEdit->setObjectName(QStringLiteral("_LineEdit"));
_LineEdit->setText(value);
_LineEdit->setMaximumWidth(80);
QObject::connect(_LineEdit, SIGNAL(textChanged(const QString &)),
this, SLOT(updated()));
horizontalLayout_2->addWidget(_LineEdit);
QSpacerItem * horizontalSpacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
horizontalLayout_2->addItem(horizontalSpacer);
tunnelGridLayout->addLayout(horizontalLayout_2);
} }
{ {
//i2p.streaming.answerPings -- enable sending pongs. true by default //i2p.streaming.answerPings -- enable sending pongs. true by default
const bool value=i2cpParameters.get_i2p_streaming_answerPings();
QHBoxLayout *horizontalLayout_2 = new QHBoxLayout();
horizontalLayout_2->setObjectName(QStringLiteral("horizontalLayout_2"));
QCheckBox *_CheckBox;
i2p_streaming_answerPingsCheckBox = _CheckBox = new QCheckBox(gridLayoutWidget_2);
_CheckBox->setObjectName(QStringLiteral("_CheckBox"));
horizontalLayout_2->addWidget(_CheckBox);
_CheckBox->setChecked(value);
QObject::connect(_CheckBox, SIGNAL(toggled(bool)),
this, SLOT(updated()));
tunnelGridLayout->addLayout(horizontalLayout_2);
} }
{ {
//i2cp.leaseSetType -- type of LeaseSet to be sent. 1, 3 or 5. 1 by default //i2cp.leaseSetType -- type of LeaseSet to be sent. 1, 3 or 5. 1 by default
const QString& value=i2cpParameters.get_i2cp_leaseSetType();
QHBoxLayout *horizontalLayout_2 = new QHBoxLayout();
horizontalLayout_2->setObjectName(QStringLiteral("horizontalLayout_2"));
QLabel *_Label;
i2cp_leaseSetTypeLabel = _Label = new QLabel(gridLayoutWidget_2);
_Label->setObjectName(QStringLiteral("_Label"));
horizontalLayout_2->addWidget(_Label);
QLineEdit *_LineEdit;
i2cp_leaseSetTypeLineEdit = _LineEdit = new QLineEdit(gridLayoutWidget_2);
_LineEdit->setObjectName(QStringLiteral("_LineEdit"));
_LineEdit->setText(value);
_LineEdit->setMaximumWidth(80);
QObject::connect(_LineEdit, SIGNAL(textChanged(const QString &)),
this, SLOT(updated()));
horizontalLayout_2->addWidget(_LineEdit);
QSpacerItem * horizontalSpacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
horizontalLayout_2->addItem(horizontalSpacer);
tunnelGridLayout->addLayout(horizontalLayout_2);
} }
{ {
//i2cp.leaseSetEncType -- comma separated encryption types to be used in LeaseSet type 3 or 5. Identity's type by default //i2cp.leaseSetEncType -- comma separated encryption types to be used in LeaseSet type 3 or 5. Identity's type by default
const QString& value=i2cpParameters.get_i2cp_leaseSetEncType();
QHBoxLayout *horizontalLayout_2 = new QHBoxLayout();
horizontalLayout_2->setObjectName(QStringLiteral("horizontalLayout_2"));
QLabel *_Label;
i2cp_leaseSetEncTypeLabel = _Label = new QLabel(gridLayoutWidget_2);
_Label->setObjectName(QStringLiteral("_Label"));
horizontalLayout_2->addWidget(_Label);
QLineEdit *_LineEdit;
i2cp_leaseSetEncTypeLineEdit = _LineEdit = new QLineEdit(gridLayoutWidget_2);
_LineEdit->setObjectName(QStringLiteral("_LineEdit"));
_LineEdit->setText(value);
_LineEdit->setMaximumWidth(80);
QObject::connect(_LineEdit, SIGNAL(textChanged(const QString &)),
this, SLOT(updated()));
horizontalLayout_2->addWidget(_LineEdit);
QSpacerItem * horizontalSpacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
horizontalLayout_2->addItem(horizontalSpacer);
tunnelGridLayout->addLayout(horizontalLayout_2);
} }
{ {
//i2cp.leaseSetPrivKey -- decryption key for encrypted LeaseSet in base64. PSK or private DH //i2cp.leaseSetPrivKey -- decryption key for encrypted LeaseSet in base64. PSK or private DH
const QString& value=i2cpParameters.get_i2cp_leaseSetPrivKey();
QHBoxLayout *horizontalLayout_2 = new QHBoxLayout();
horizontalLayout_2->setObjectName(QStringLiteral("horizontalLayout_2"));
QLabel *_Label;
i2cp_leaseSetPrivKeyLabel = _Label = new QLabel(gridLayoutWidget_2);
_Label->setObjectName(QStringLiteral("_Label"));
horizontalLayout_2->addWidget(_Label);
QLineEdit *_LineEdit;
i2cp_leaseSetPrivKeyLineEdit = _LineEdit = new QLineEdit(gridLayoutWidget_2);
_LineEdit->setObjectName(QStringLiteral("_LineEdit"));
_LineEdit->setText(value);
_LineEdit->setMaximumWidth(80);
QObject::connect(_LineEdit, SIGNAL(textChanged(const QString &)),
this, SLOT(updated()));
horizontalLayout_2->addWidget(_LineEdit);
QSpacerItem * horizontalSpacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
horizontalLayout_2->addItem(horizontalSpacer);
tunnelGridLayout->addLayout(horizontalLayout_2);
} }
{ {
//i2cp.leaseSetAuthType -- authentication type for encrypted LeaseSet. 0 - no authentication(default), 1 - DH, 2 - PSK //i2cp.leaseSetAuthType -- authentication type for encrypted LeaseSet. 0 - no authentication(default), 1 - DH, 2 - PSK
const QString& value=i2cpParameters.get_i2cp_leaseSetAuthType();
QHBoxLayout *horizontalLayout_2 = new QHBoxLayout();
horizontalLayout_2->setObjectName(QStringLiteral("horizontalLayout_2"));
QLabel *_Label;
i2cp_leaseSetAuthTypeLabel = _Label = new QLabel(gridLayoutWidget_2);
_Label->setObjectName(QStringLiteral("_Label"));
horizontalLayout_2->addWidget(_Label);
QLineEdit *_LineEdit;
i2cp_leaseSetAuthTypeLineEdit = _LineEdit = new QLineEdit(gridLayoutWidget_2);
_LineEdit->setObjectName(QStringLiteral("_LineEdit"));
_LineEdit->setText(value);
_LineEdit->setMaximumWidth(80);
QObject::connect(_LineEdit, SIGNAL(textChanged(const QString &)),
this, SLOT(updated()));
horizontalLayout_2->addWidget(_LineEdit);
QSpacerItem * horizontalSpacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
horizontalLayout_2->addItem(horizontalSpacer);
tunnelGridLayout->addLayout(horizontalLayout_2);
} }
retranslateI2CPParameters(); retranslateI2CPParameters();

63
qt/i2pd_qt/TunnelPane.h

@ -11,6 +11,7 @@
#include "QLineEdit" #include "QLineEdit"
#include "QGroupBox" #include "QGroupBox"
#include "QVBoxLayout" #include "QVBoxLayout"
#include "QCheckBox"
#include "TunnelConfig.h" #include "TunnelConfig.h"
@ -89,6 +90,27 @@ protected:
QLabel * crypto_tagsToSendLabel; QLabel * crypto_tagsToSendLabel;
QLineEdit * crypto_tagsToSendLineEdit; QLineEdit * crypto_tagsToSendLineEdit;
QLabel * explicitPeersLabel;
QLineEdit * explicitPeersLineEdit;
QLabel * i2p_streaming_initialAckDelayLabel;
QLineEdit * i2p_streaming_initialAckDelayLineEdit;
QCheckBox * i2p_streaming_answerPingsCheckBox;
QLabel * i2cp_leaseSetTypeLabel;
QLineEdit * i2cp_leaseSetTypeLineEdit;
QLabel * i2cp_leaseSetEncTypeLabel;
QLineEdit * i2cp_leaseSetEncTypeLineEdit;
QLabel * i2cp_leaseSetPrivKeyLabel;
QLineEdit * i2cp_leaseSetPrivKeyLineEdit;
QLabel * i2cp_leaseSetAuthTypeLabel;
QLineEdit * i2cp_leaseSetAuthTypeLineEdit;
QString readTunnelTypeComboboxData(); QString readTunnelTypeComboboxData();
//should be created by factory //should be created by factory
@ -105,6 +127,12 @@ public:
i2cpParams.setOutbound_length(outbound_lengthLineEdit->text()); i2cpParams.setOutbound_length(outbound_lengthLineEdit->text());
i2cpParams.setOutbound_quantity(outbound_quantityLineEdit->text()); i2cpParams.setOutbound_quantity(outbound_quantityLineEdit->text());
i2cpParams.setCrypto_tagsToSend(crypto_tagsToSendLineEdit->text()); i2cpParams.setCrypto_tagsToSend(crypto_tagsToSendLineEdit->text());
i2cpParams.set_i2cp_leaseSetAuthType(i2cp_leaseSetAuthTypeLineEdit->text());
i2cpParams.set_i2cp_leaseSetEncType(i2cp_leaseSetEncTypeLineEdit->text());
i2cpParams.set_i2cp_leaseSetPrivKey(i2cp_leaseSetPrivKeyLineEdit->text());
i2cpParams.set_i2cp_leaseSetType(i2cp_leaseSetTypeLineEdit->text());
i2cpParams.set_i2p_streaming_answerPings(i2p_streaming_answerPingsCheckBox->isChecked());
i2cpParams.set_i2p_streaming_initialAckDelay(i2p_streaming_initialAckDelayLineEdit->text());
return true; return true;
} }
protected: protected:
@ -133,34 +161,13 @@ private:
inbound_quantityLabel->setText(QApplication::translate("tunForm", "Number of inbound tunnels:", 0));; inbound_quantityLabel->setText(QApplication::translate("tunForm", "Number of inbound tunnels:", 0));;
outbound_quantityLabel->setText(QApplication::translate("tunForm", "Number of outbound tunnels:", 0));; outbound_quantityLabel->setText(QApplication::translate("tunForm", "Number of outbound tunnels:", 0));;
crypto_tagsToSendLabel->setText(QApplication::translate("tunForm", "Number of ElGamal/AES tags to send:", 0));; crypto_tagsToSendLabel->setText(QApplication::translate("tunForm", "Number of ElGamal/AES tags to send:", 0));;
explicitPeersLabel->setText(QApplication::translate("tunForm", "List of comma-separated b64 addresses of peers to use:", 0));;
{ i2p_streaming_initialAckDelayLabel->setText(QApplication::translate("tunForm", "Milliseconds to wait before sending Ack:", 0));
//explicitPeers -- list of comma-separated b64 addresses of peers to use, default: unset i2p_streaming_answerPingsCheckBox->setText(QApplication::translate("tunForm", "Enable sending pongs", 0));
} i2cp_leaseSetTypeLabel->setText(QApplication::translate("tunForm", "Type of LeaseSet to be sent. 1, 3 or 5:", 0));
i2cp_leaseSetEncTypeLabel->setText(QApplication::translate("tunForm", "Comma-separated encryption types to be used in LeaseSet type 3 or 5:", 0));
{ i2cp_leaseSetPrivKeyLabel->setText(QApplication::translate("tunForm", "Decryption key for encrypted LeaseSet in base64. PSK or private DH:", 0));
//i2p.streaming.initialAckDelay -- milliseconds to wait before sending Ack. 200 by default i2cp_leaseSetAuthTypeLabel->setText(QApplication::translate("tunForm", "Authentication type for encrypted LeaseSet. 0 - no authentication (default), 1 - DH, 2 - PSK:", 0));
}
{
//i2p.streaming.answerPings -- enable sending pongs. true by default
}
{
//i2cp.leaseSetType -- type of LeaseSet to be sent. 1, 3 or 5. 1 by default
}
{
//i2cp.leaseSetEncType -- comma separated encryption types to be used in LeaseSet type 3 or 5. Identity's type by default
}
{
//i2cp.leaseSetPrivKey -- decryption key for encrypted LeaseSet in base64. PSK or private DH
}
{
//i2cp.leaseSetAuthType -- authentication type for encrypted LeaseSet. 0 - no authentication(default), 1 - DH, 2 - PSK
}
} }
}; };

15
qt/i2pd_qt/generalsettingswidget.ui

@ -25,7 +25,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>679</width> <width>679</width>
<height>4151</height> <height>4178</height>
</rect> </rect>
</property> </property>
<layout class="QVBoxLayout" name="settingsContentsQVBoxLayout"> <layout class="QVBoxLayout" name="settingsContentsQVBoxLayout">
@ -464,13 +464,13 @@
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>0</width> <width>0</width>
<height>390</height> <height>417</height>
</size> </size>
</property> </property>
<property name="maximumSize"> <property name="maximumSize">
<size> <size>
<width>16777215</width> <width>16777215</width>
<height>390</height> <height>417</height>
</size> </size>
</property> </property>
<property name="title"> <property name="title">
@ -482,7 +482,7 @@
<x>0</x> <x>0</x>
<y>20</y> <y>20</y>
<width>661</width> <width>661</width>
<height>368</height> <height>397</height>
</rect> </rect>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout_11"> <layout class="QVBoxLayout" name="verticalLayout_11">
@ -528,6 +528,13 @@
</property> </property>
</widget> </widget>
</item> </item>
<item>
<widget class="QCheckBox" name="reservedrange_checkbox">
<property name="text">
<string>Check remote RI for being in blacklist of reserved IP ranges</string>
</property>
</widget>
</item>
<item> <item>
<layout class="QHBoxLayout" name="horizontalLayout_9"> <layout class="QHBoxLayout" name="horizontalLayout_9">
<item> <item>

3
qt/i2pd_qt/i2pd_qt.pro

@ -4,7 +4,8 @@ greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = i2pd_qt TARGET = i2pd_qt
TEMPLATE = app TEMPLATE = app
QMAKE_CXXFLAGS *= -std=c++11 -Wno-unused-parameter -Wno-maybe-uninitialized QMAKE_CXXFLAGS *= -Wno-unused-parameter -Wno-maybe-uninitialized
CONFIG += strict_c++ c++11
DEFINES += USE_UPNP DEFINES += USE_UPNP

17
qt/i2pd_qt/mainwindow.cpp

@ -190,6 +190,7 @@ MainWindow::MainWindow(std::shared_ptr<std::iostream> logStream_, QWidget *paren
initStringBox( OPTION("","family",[]{return "";}), uiSettings->familyLineEdit); initStringBox( OPTION("","family",[]{return "";}), uiSettings->familyLineEdit);
initIntegerBox( OPTION("","netid",[]{return "2";}), uiSettings->netIdLineEdit, tr("NetID")); initIntegerBox( OPTION("","netid",[]{return "2";}), uiSettings->netIdLineEdit, tr("NetID"));
initCheckBox( OPTION("","ssu",[]{return "true";}), uiSettings->ssuCheckBox);//Enable SSU transport protocol (use UDP). true by default initCheckBox( OPTION("","ssu",[]{return "true";}), uiSettings->ssuCheckBox);//Enable SSU transport protocol (use UDP). true by default
initCheckBox( OPTION("","reservedrange",[]{return "true";}), uiSettings->reservedrange_checkbox);
#ifdef Q_OS_WIN #ifdef Q_OS_WIN
initNonGUIOption( OPTION("","svcctl",[]{return "";})); initNonGUIOption( OPTION("","svcctl",[]{return "";}));
@ -205,22 +206,22 @@ MainWindow::MainWindow(std::shared_ptr<std::iostream> logStream_, QWidget *paren
initCheckBox( OPTION("http","auth",[]{return "";}), uiSettings->webconsoleBasicAuthCheckBox); initCheckBox( OPTION("http","auth",[]{return "";}), uiSettings->webconsoleBasicAuthCheckBox);
initStringBox( OPTION("http","user",[]{return "i2pd";}), uiSettings->webconsoleUserNameLineEditBasicAuth); initStringBox( OPTION("http","user",[]{return "i2pd";}), uiSettings->webconsoleUserNameLineEditBasicAuth);
initStringBox( OPTION("http","pass",[]{return "";}), uiSettings->webconsolePasswordLineEditBasicAuth); initStringBox( OPTION("http","pass",[]{return "";}), uiSettings->webconsolePasswordLineEditBasicAuth);
initCheckBox( OPTION("http","strictheaders",[]{return "true";}), uiSettings->httpStrictHeadersCheckBox);//TODO add option Enable strict host checking on WebUI. true by default initCheckBox( OPTION("http","strictheaders",[]{return "true";}), uiSettings->httpStrictHeadersCheckBox);//Enable strict host checking on WebUI. true by default
initStringBox( OPTION("http","hostname",[]{return "localhost";}), uiSettings->httpHostnameLineEdit);//TODO add option Expected hostname for WebUI (default: localhost) initStringBox( OPTION("http","hostname",[]{return "localhost";}), uiSettings->httpHostnameLineEdit);//Expected hostname for WebUI (default: localhost)
initCheckBox( OPTION("httpproxy","enabled",[]{return "";}), uiSettings->httpProxyEnabledCheckBox); initCheckBox( OPTION("httpproxy","enabled",[]{return "";}), uiSettings->httpProxyEnabledCheckBox);
initIPAddressBox( OPTION("httpproxy","address",[]{return "";}), uiSettings->httpProxyAddressLineEdit, tr("HTTP proxy -> IP address")); initIPAddressBox( OPTION("httpproxy","address",[]{return "";}), uiSettings->httpProxyAddressLineEdit, tr("HTTP proxy -> IP address"));
initTCPPortBox( OPTION("httpproxy","port",[]{return "4444";}), uiSettings->httpProxyPortLineEdit, tr("HTTP proxy -> Port")); initTCPPortBox( OPTION("httpproxy","port",[]{return "4444";}), uiSettings->httpProxyPortLineEdit, tr("HTTP proxy -> Port"));
initCheckBox( OPTION("httpproxy","addresshelper",[]{return "true";}), uiSettings->httpProxyAddressHelperCheckBox);//TODO add option Enable address helper (jump). true by default initCheckBox( OPTION("httpproxy","addresshelper",[]{return "true";}), uiSettings->httpProxyAddressHelperCheckBox);//Enable address helper (jump). true by default
initFileChooser( OPTION("httpproxy","keys",[]{return "";}), uiSettings->httpProxyKeyFileLineEdit, uiSettings->httpProxyKeyFilePushButton); initFileChooser( OPTION("httpproxy","keys",[]{return "";}), uiSettings->httpProxyKeyFileLineEdit, uiSettings->httpProxyKeyFilePushButton);
initSignatureTypeCombobox(OPTION("httpproxy","signaturetype",[]{return "7";}), uiSettings->comboBox_httpPorxySignatureType); initSignatureTypeCombobox(OPTION("httpproxy","signaturetype",[]{return "7";}), uiSettings->comboBox_httpPorxySignatureType);
initStringBox( OPTION("httpproxy","inbound.length",[]{return "3";}), uiSettings->httpProxyInboundTunnelsLenLineEdit); initStringBox( OPTION("httpproxy","inbound.length",[]{return "3";}), uiSettings->httpProxyInboundTunnelsLenLineEdit);
initStringBox( OPTION("httpproxy","inbound.quantity",[]{return "5";}), uiSettings->httpProxyInboundTunnQuantityLineEdit); initStringBox( OPTION("httpproxy","inbound.quantity",[]{return "5";}), uiSettings->httpProxyInboundTunnQuantityLineEdit);
initStringBox( OPTION("httpproxy","outbound.length",[]{return "3";}), uiSettings->httpProxyOutBoundTunnLenLineEdit); initStringBox( OPTION("httpproxy","outbound.length",[]{return "3";}), uiSettings->httpProxyOutBoundTunnLenLineEdit);
initStringBox( OPTION("httpproxy","outbound.quantity",[]{return "5";}), uiSettings->httpProxyOutboundTunnQuantityLineEdit); initStringBox( OPTION("httpproxy","outbound.quantity",[]{return "5";}), uiSettings->httpProxyOutboundTunnQuantityLineEdit);
initStringBox( OPTION("httpproxy","outproxy",[]{return "";}), uiSettings->httpProxyOutproxyLineEdit);//TODO add option HTTP proxy upstream out proxy url (like http://false.i2p) initStringBox( OPTION("httpproxy","outproxy",[]{return "";}), uiSettings->httpProxyOutproxyLineEdit);//HTTP proxy upstream out proxy url (like http://false.i2p)
initStringBox( OPTION("httpproxy","i2cp.leaseSetType",[]{return "1";}), uiSettings->httpProxyI2cpLeaseSetTypeLineEdit);//TODO add option Type of LeaseSet to be sent. 1, 3 or 5. 1 by default initStringBox( OPTION("httpproxy","i2cp.leaseSetType",[]{return "1";}), uiSettings->httpProxyI2cpLeaseSetTypeLineEdit);//Type of LeaseSet to be sent. 1, 3 or 5. 1 by default
initStringBox( OPTION("httpproxy","i2cp.leaseSetEncType",[]{return "";}), uiSettings->httpProxyI2cpLeaseSetEncTypeLineEdit);//TODO add option Comma separated encryption types to be used in LeaseSet type 3 or 5 initStringBox( OPTION("httpproxy","i2cp.leaseSetEncType",[]{return "";}), uiSettings->httpProxyI2cpLeaseSetEncTypeLineEdit);//Comma separated encryption types to be used in LeaseSet type 3 or 5
initCheckBox( OPTION("socksproxy","enabled",[]{return "";}), uiSettings->socksProxyEnabledCheckBox); initCheckBox( OPTION("socksproxy","enabled",[]{return "";}), uiSettings->socksProxyEnabledCheckBox);
initIPAddressBox( OPTION("socksproxy","address",[]{return "";}), uiSettings->socksProxyAddressLineEdit, tr("Socks proxy -> IP address")); initIPAddressBox( OPTION("socksproxy","address",[]{return "";}), uiSettings->socksProxyAddressLineEdit, tr("Socks proxy -> IP address"));
@ -233,8 +234,8 @@ MainWindow::MainWindow(std::shared_ptr<std::iostream> logStream_, QWidget *paren
initStringBox( OPTION("socksproxy","outbound.quantity",[]{return "";}), uiSettings->socksProxyOutboundTunnQuantityLineEdit); initStringBox( OPTION("socksproxy","outbound.quantity",[]{return "";}), uiSettings->socksProxyOutboundTunnQuantityLineEdit);
initIPAddressBox( OPTION("socksproxy","outproxy",[]{return "";}), uiSettings->outproxyAddressLineEdit, tr("Socks proxy -> Outproxy address")); initIPAddressBox( OPTION("socksproxy","outproxy",[]{return "";}), uiSettings->outproxyAddressLineEdit, tr("Socks proxy -> Outproxy address"));
initTCPPortBox( OPTION("socksproxy","outproxyport",[]{return "";}), uiSettings->outproxyPortLineEdit, tr("Socks proxy -> Outproxy port")); initTCPPortBox( OPTION("socksproxy","outproxyport",[]{return "";}), uiSettings->outproxyPortLineEdit, tr("Socks proxy -> Outproxy port"));
initStringBox( OPTION("socksproxy","i2cp.leaseSetType",[]{return "1";}), uiSettings->socksProxyI2cpLeaseSetTypeLineEdit);//TODO add option Type of LeaseSet to be sent. 1, 3 or 5. 1 by default initStringBox( OPTION("socksproxy","i2cp.leaseSetType",[]{return "1";}), uiSettings->socksProxyI2cpLeaseSetTypeLineEdit);//Type of LeaseSet to be sent. 1, 3 or 5. 1 by default
initStringBox( OPTION("socksproxy","i2cp.leaseSetEncType",[]{return "";}), uiSettings->socksProxyI2cpLeaseSetEncTypeLineEdit);//TODO add option Comma separated encryption types to be used in LeaseSet type 3 or 5 initStringBox( OPTION("socksproxy","i2cp.leaseSetEncType",[]{return "";}), uiSettings->socksProxyI2cpLeaseSetEncTypeLineEdit);//Comma separated encryption types to be used in LeaseSet type 3 or 5
initCheckBox( OPTION("sam","enabled",[]{return "false";}), uiSettings->samEnabledCheckBox); initCheckBox( OPTION("sam","enabled",[]{return "false";}), uiSettings->samEnabledCheckBox);
initIPAddressBox( OPTION("sam","address",[]{return "";}), uiSettings->samAddressLineEdit, tr("SAM -> IP address")); initIPAddressBox( OPTION("sam","address",[]{return "";}), uiSettings->samAddressLineEdit, tr("SAM -> IP address"));

36
qt/i2pd_qt/mainwindow.h

@ -545,6 +545,18 @@ private:
void deleteTunnelForms(); void deleteTunnelForms();
void deleteTunnelFromUI(std::string tunnelName, TunnelConfig* cnf); void deleteTunnelFromUI(std::string tunnelName, TunnelConfig* cnf);
template<typename Section>
std::string GetI2CPOption (const Section& section, const std::string& name, const std::string& value) const
{
return section.second.get (boost::property_tree::ptree::path_type (name, '/'), value);
}
template<typename Section>
std::string GetI2CPOption (const Section& section, const std::string& name, const char* value) const
{
return section.second.get (boost::property_tree::ptree::path_type (name, '/'), std::string (value));
}
template<typename Section, typename Type> template<typename Section, typename Type>
std::string GetI2CPOption (const Section& section, const std::string& name, const Type& value) const std::string GetI2CPOption (const Section& section, const std::string& name, const Type& value) const
{ {
@ -565,6 +577,19 @@ private:
param.setOutbound_quantity(QString(_OUTBOUND_TUNNELS_QUANTITY.c_str())); param.setOutbound_quantity(QString(_OUTBOUND_TUNNELS_QUANTITY.c_str()));
std::string _TAGS_TO_SEND = options[I2CP_PARAM_TAGS_TO_SEND] = GetI2CPOption (section, I2CP_PARAM_TAGS_TO_SEND, DEFAULT_TAGS_TO_SEND); std::string _TAGS_TO_SEND = options[I2CP_PARAM_TAGS_TO_SEND] = GetI2CPOption (section, I2CP_PARAM_TAGS_TO_SEND, DEFAULT_TAGS_TO_SEND);
param.setCrypto_tagsToSend(QString(_TAGS_TO_SEND.c_str())); param.setCrypto_tagsToSend(QString(_TAGS_TO_SEND.c_str()));
std::string _i2cp_leaseSetAuthType = options[I2CP_PARAM_LEASESET_AUTH_TYPE] = GetI2CPOption (section, I2CP_PARAM_LEASESET_AUTH_TYPE, 0);
param.set_i2cp_leaseSetAuthType(QString(_i2cp_leaseSetAuthType.c_str()));
const char DEFAULT_LEASESET_ENCRYPTION_TYPE[] = "";
std::string _i2cp_leaseSetEncType = options[I2CP_PARAM_LEASESET_ENCRYPTION_TYPE] = GetI2CPOption (section, I2CP_PARAM_LEASESET_ENCRYPTION_TYPE, DEFAULT_LEASESET_ENCRYPTION_TYPE);//todo Identity's type by default
param.set_i2cp_leaseSetEncType(QString(_i2cp_leaseSetEncType.c_str()));
std::string _i2cp_leaseSetPrivKey = options[I2CP_PARAM_LEASESET_PRIV_KEY] = GetI2CPOption (section, I2CP_PARAM_LEASESET_PRIV_KEY, "");
param.set_i2cp_leaseSetPrivKey(QString(_i2cp_leaseSetPrivKey.c_str()));
std::string _i2cp_leaseSetType = options[I2CP_PARAM_LEASESET_TYPE] = GetI2CPOption (section, I2CP_PARAM_LEASESET_TYPE, DEFAULT_LEASESET_TYPE);
param.set_i2cp_leaseSetType(QString(_i2cp_leaseSetType.c_str()));
std::string _i2p_streaming_answerPings= options[I2CP_PARAM_STREAMING_ANSWER_PINGS] = GetI2CPOption (section, I2CP_PARAM_STREAMING_ANSWER_PINGS, DEFAULT_ANSWER_PINGS);
param.set_i2p_streaming_answerPings((_i2p_streaming_answerPings.compare("true")==0)||(_i2p_streaming_answerPings.compare("yes")==0));
std::string _i2p_streaming_initialAckDelay = options[I2CP_PARAM_STREAMING_INITIAL_ACK_DELAY] = GetI2CPOption (section, I2CP_PARAM_STREAMING_INITIAL_ACK_DELAY, DEFAULT_INITIAL_ACK_DELAY);
param.set_i2p_streaming_initialAckDelay(QString(_i2p_streaming_initialAckDelay.c_str()));
options[I2CP_PARAM_MIN_TUNNEL_LATENCY] = GetI2CPOption(section, I2CP_PARAM_MIN_TUNNEL_LATENCY, DEFAULT_MIN_TUNNEL_LATENCY);//TODO include into param options[I2CP_PARAM_MIN_TUNNEL_LATENCY] = GetI2CPOption(section, I2CP_PARAM_MIN_TUNNEL_LATENCY, DEFAULT_MIN_TUNNEL_LATENCY);//TODO include into param
options[I2CP_PARAM_MAX_TUNNEL_LATENCY] = GetI2CPOption(section, I2CP_PARAM_MAX_TUNNEL_LATENCY, DEFAULT_MAX_TUNNEL_LATENCY);//TODO include into param options[I2CP_PARAM_MAX_TUNNEL_LATENCY] = GetI2CPOption(section, I2CP_PARAM_MAX_TUNNEL_LATENCY, DEFAULT_MAX_TUNNEL_LATENCY);//TODO include into param
} }
@ -582,6 +607,17 @@ private:
param.setOutbound_quantity(QString::number(_OUTBOUND_TUNNELS_QUANTITY)); param.setOutbound_quantity(QString::number(_OUTBOUND_TUNNELS_QUANTITY));
const int _TAGS_TO_SEND = DEFAULT_TAGS_TO_SEND; const int _TAGS_TO_SEND = DEFAULT_TAGS_TO_SEND;
param.setCrypto_tagsToSend(QString::number(_TAGS_TO_SEND)); param.setCrypto_tagsToSend(QString::number(_TAGS_TO_SEND));
const int _i2cp_leaseSetAuthType = 0;
param.set_i2cp_leaseSetAuthType(QString::number(_i2cp_leaseSetAuthType));
const QString _i2cp_leaseSetEncType = "0,4"; //todo Identity's type by default
param.set_i2cp_leaseSetEncType(_i2cp_leaseSetEncType);
param.set_i2cp_leaseSetPrivKey("");
const int _i2cp_leaseSetType = DEFAULT_LEASESET_TYPE;
param.set_i2cp_leaseSetType(QString::number(_i2cp_leaseSetType));
bool _i2p_streaming_answerPings= DEFAULT_ANSWER_PINGS;
param.set_i2p_streaming_answerPings(_i2p_streaming_answerPings);
const int _i2p_streaming_initialAckDelay = DEFAULT_INITIAL_ACK_DELAY;
param.set_i2p_streaming_initialAckDelay(QString::number(_i2p_streaming_initialAckDelay));
} }

Loading…
Cancel
Save