mirror of
https://github.com/PurpleI2P/i2pd.git
synced 2025-04-28 11:47:48 +02:00
I2P -> .NET
This commit is contained in:
parent
f176f1909b
commit
fdb0ce6703
272 changed files with 5702 additions and 8931 deletions
6
qt/i2pd_qt/.gitignore
vendored
6
qt/i2pd_qt/.gitignore
vendored
|
@ -1,9 +1,9 @@
|
|||
i2pd_qt.pro.user*
|
||||
dotnet_qt.pro.user*
|
||||
moc_*
|
||||
ui_*
|
||||
qrc_*
|
||||
i2pd_qt
|
||||
dotnet_qt
|
||||
Makefile*
|
||||
*.stash
|
||||
object_script.*
|
||||
i2pd_qt_plugin_import.cpp
|
||||
dotnet_qt_plugin_import.cpp
|
|
@ -32,11 +32,11 @@ int ClientTunnelPane::appendClientTunnelForm(
|
|||
|
||||
QComboBox *tunnelTypeComboBox = new QComboBox(gridLayoutWidget_2);
|
||||
tunnelTypeComboBox->setObjectName(QStringLiteral("tunnelTypeComboBox"));
|
||||
tunnelTypeComboBox->addItem("Client", i2p::client::I2P_TUNNELS_SECTION_TYPE_CLIENT);
|
||||
tunnelTypeComboBox->addItem("Socks", i2p::client::I2P_TUNNELS_SECTION_TYPE_SOCKS);
|
||||
tunnelTypeComboBox->addItem("Websocks", i2p::client::I2P_TUNNELS_SECTION_TYPE_WEBSOCKS);
|
||||
tunnelTypeComboBox->addItem("HTTP Proxy", i2p::client::I2P_TUNNELS_SECTION_TYPE_HTTPPROXY);
|
||||
tunnelTypeComboBox->addItem("UDP Client", i2p::client::I2P_TUNNELS_SECTION_TYPE_UDPCLIENT);
|
||||
tunnelTypeComboBox->addItem("Client", dotnet::client::DOTNET_TUNNELS_SECTION_TYPE_CLIENT);
|
||||
tunnelTypeComboBox->addItem("Socks", dotnet::client::DOTNET_TUNNELS_SECTION_TYPE_SOCKS);
|
||||
tunnelTypeComboBox->addItem("Websocks", dotnet::client::DOTNET_TUNNELS_SECTION_TYPE_WEBSOCKS);
|
||||
tunnelTypeComboBox->addItem("HTTP Proxy", dotnet::client::DOTNET_TUNNELS_SECTION_TYPE_HTTPPROXY);
|
||||
tunnelTypeComboBox->addItem("UDP Client", dotnet::client::DOTNET_TUNNELS_SECTION_TYPE_UDPCLIENT);
|
||||
|
||||
int h=(7+4)*60;
|
||||
gridLayoutWidget_2->setGeometry(QRect(0, 0, 561, h));
|
||||
|
@ -45,15 +45,15 @@ int ClientTunnelPane::appendClientTunnelForm(
|
|||
{
|
||||
const QString& type = tunnelConfig->getType();
|
||||
int index=0;
|
||||
if(type==i2p::client::I2P_TUNNELS_SECTION_TYPE_CLIENT)tunnelTypeComboBox->setCurrentIndex(index);
|
||||
if(type==dotnet::client::DOTNET_TUNNELS_SECTION_TYPE_CLIENT)tunnelTypeComboBox->setCurrentIndex(index);
|
||||
++index;
|
||||
if(type==i2p::client::I2P_TUNNELS_SECTION_TYPE_SOCKS)tunnelTypeComboBox->setCurrentIndex(index);
|
||||
if(type==dotnet::client::DOTNET_TUNNELS_SECTION_TYPE_SOCKS)tunnelTypeComboBox->setCurrentIndex(index);
|
||||
++index;
|
||||
if(type==i2p::client::I2P_TUNNELS_SECTION_TYPE_WEBSOCKS)tunnelTypeComboBox->setCurrentIndex(index);
|
||||
if(type==dotnet::client::DOTNET_TUNNELS_SECTION_TYPE_WEBSOCKS)tunnelTypeComboBox->setCurrentIndex(index);
|
||||
++index;
|
||||
if(type==i2p::client::I2P_TUNNELS_SECTION_TYPE_HTTPPROXY)tunnelTypeComboBox->setCurrentIndex(index);
|
||||
if(type==dotnet::client::DOTNET_TUNNELS_SECTION_TYPE_HTTPPROXY)tunnelTypeComboBox->setCurrentIndex(index);
|
||||
++index;
|
||||
if(type==i2p::client::I2P_TUNNELS_SECTION_TYPE_UDPCLIENT)tunnelTypeComboBox->setCurrentIndex(index);
|
||||
if(type==dotnet::client::DOTNET_TUNNELS_SECTION_TYPE_UDPCLIENT)tunnelTypeComboBox->setCurrentIndex(index);
|
||||
++index;
|
||||
}
|
||||
|
||||
|
@ -148,7 +148,7 @@ int ClientTunnelPane::appendClientTunnelForm(
|
|||
|
||||
/*
|
||||
int destinationPort;
|
||||
i2p::data::SigningKeyType sigType;
|
||||
dotnet::data::SigningKeyType sigType;
|
||||
*/
|
||||
{
|
||||
int destinationPort = tunnelConfig->getdestinationPort();
|
||||
|
@ -169,7 +169,7 @@ int ClientTunnelPane::appendClientTunnelForm(
|
|||
tunnelGridLayout->addLayout(horizontalLayout_2);
|
||||
}
|
||||
{
|
||||
i2p::data::SigningKeyType sigType = tunnelConfig->getsigType();
|
||||
dotnet::data::SigningKeyType sigType = tunnelConfig->getsigType();
|
||||
QHBoxLayout *horizontalLayout_2 = new QHBoxLayout();
|
||||
horizontalLayout_2->setObjectName(QStringLiteral("horizontalLayout_2"));
|
||||
ui.sigTypeLabel = new QLabel(gridLayoutWidget_2);
|
||||
|
@ -188,8 +188,8 @@ int ClientTunnelPane::appendClientTunnelForm(
|
|||
tunnelGridLayout->addLayout(horizontalLayout_2);
|
||||
}
|
||||
{
|
||||
I2CPParameters& i2cpParameters = tunnelConfig->getI2cpParameters();
|
||||
appendControlsForI2CPParameters(i2cpParameters, gridIndex);
|
||||
DNCPParameters& dncpParameters = tunnelConfig->getI2cpParameters();
|
||||
appendControlsForDNCPParameters(dncpParameters, gridIndex);
|
||||
}
|
||||
|
||||
retranslateClientTunnelForm(ui);
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
#include <QMutexLocker>
|
||||
#include <QThread>
|
||||
|
||||
namespace i2p
|
||||
namespace dotnet
|
||||
{
|
||||
namespace qt
|
||||
{
|
||||
|
@ -167,8 +167,8 @@ namespace qt
|
|||
w.show ();
|
||||
|
||||
{
|
||||
i2p::qt::Controller daemonQtController(daemon);
|
||||
w.setI2PController(&daemonQtController);
|
||||
dotnet::qt::Controller daemonQtController(daemon);
|
||||
w.setDotNetController(&daemonQtController);
|
||||
LogPrint(eLogDebug, "Starting the daemon...");
|
||||
emit daemonQtController.startDaemon();
|
||||
//daemon.start ();
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
#include <QMutex>
|
||||
#include <QMessageBox>
|
||||
|
||||
namespace i2p
|
||||
namespace dotnet
|
||||
{
|
||||
namespace qt
|
||||
{
|
||||
|
|
|
@ -22,10 +22,10 @@ int ServerTunnelPane::appendServerTunnelForm(
|
|||
|
||||
QComboBox *tunnelTypeComboBox = new QComboBox(gridLayoutWidget_2);
|
||||
tunnelTypeComboBox->setObjectName(QStringLiteral("tunnelTypeComboBox"));
|
||||
tunnelTypeComboBox->addItem("Server", i2p::client::I2P_TUNNELS_SECTION_TYPE_SERVER);
|
||||
tunnelTypeComboBox->addItem("HTTP", i2p::client::I2P_TUNNELS_SECTION_TYPE_HTTP);
|
||||
tunnelTypeComboBox->addItem("IRC", i2p::client::I2P_TUNNELS_SECTION_TYPE_IRC);
|
||||
tunnelTypeComboBox->addItem("UDP Server", i2p::client::I2P_TUNNELS_SECTION_TYPE_UDPSERVER);
|
||||
tunnelTypeComboBox->addItem("Server", dotnet::client::DOTNET_TUNNELS_SECTION_TYPE_SERVER);
|
||||
tunnelTypeComboBox->addItem("HTTP", dotnet::client::DOTNET_TUNNELS_SECTION_TYPE_HTTP);
|
||||
tunnelTypeComboBox->addItem("IRC", dotnet::client::DOTNET_TUNNELS_SECTION_TYPE_IRC);
|
||||
tunnelTypeComboBox->addItem("UDP Server", dotnet::client::DOTNET_TUNNELS_SECTION_TYPE_UDPSERVER);
|
||||
|
||||
int h=19*60;
|
||||
gridLayoutWidget_2->setGeometry(QRect(0, 0, 561, h));
|
||||
|
@ -34,13 +34,13 @@ int ServerTunnelPane::appendServerTunnelForm(
|
|||
{
|
||||
const QString& type = tunnelConfig->getType();
|
||||
int index=0;
|
||||
if(type==i2p::client::I2P_TUNNELS_SECTION_TYPE_SERVER)tunnelTypeComboBox->setCurrentIndex(index);
|
||||
if(type==dotnet::client::DOTNET_TUNNELS_SECTION_TYPE_SERVER)tunnelTypeComboBox->setCurrentIndex(index);
|
||||
++index;
|
||||
if(type==i2p::client::I2P_TUNNELS_SECTION_TYPE_HTTP)tunnelTypeComboBox->setCurrentIndex(index);
|
||||
if(type==dotnet::client::DOTNET_TUNNELS_SECTION_TYPE_HTTP)tunnelTypeComboBox->setCurrentIndex(index);
|
||||
++index;
|
||||
if(type==i2p::client::I2P_TUNNELS_SECTION_TYPE_IRC)tunnelTypeComboBox->setCurrentIndex(index);
|
||||
if(type==dotnet::client::DOTNET_TUNNELS_SECTION_TYPE_IRC)tunnelTypeComboBox->setCurrentIndex(index);
|
||||
++index;
|
||||
if(type==i2p::client::I2P_TUNNELS_SECTION_TYPE_UDPSERVER)tunnelTypeComboBox->setCurrentIndex(index);
|
||||
if(type==dotnet::client::DOTNET_TUNNELS_SECTION_TYPE_UDPSERVER)tunnelTypeComboBox->setCurrentIndex(index);
|
||||
++index;
|
||||
}
|
||||
|
||||
|
@ -186,7 +186,7 @@ int ServerTunnelPane::appendServerTunnelForm(
|
|||
tunnelGridLayout->addLayout(horizontalLayout_2);
|
||||
}
|
||||
{
|
||||
i2p::data::SigningKeyType sigType = tunnelConfig->getsigType();
|
||||
dotnet::data::SigningKeyType sigType = tunnelConfig->getsigType();
|
||||
QHBoxLayout *horizontalLayout_2 = new QHBoxLayout();
|
||||
horizontalLayout_2->setObjectName(QStringLiteral("horizontalLayout_2"));
|
||||
ui.sigTypeLabel = new QLabel(gridLayoutWidget_2);
|
||||
|
@ -236,8 +236,8 @@ int ServerTunnelPane::appendServerTunnelForm(
|
|||
tunnelGridLayout->addLayout(horizontalLayout_2);
|
||||
}
|
||||
{
|
||||
I2CPParameters& i2cpParameters = tunnelConfig->getI2cpParameters();
|
||||
appendControlsForI2CPParameters(i2cpParameters, gridIndex);
|
||||
DNCPParameters& dncpParameters = tunnelConfig->getI2cpParameters();
|
||||
appendControlsForDNCPParameters(dncpParameters, gridIndex);
|
||||
}
|
||||
|
||||
retranslateServerTunnelForm(ui);
|
||||
|
|
|
@ -24,7 +24,7 @@ public:
|
|||
|
||||
static void fillComboBox(QComboBox* signatureTypeCombobox, uint16_t selectedSigType) {
|
||||
/*
|
||||
<orignal> https://geti2p.net/spec/common-structures#certificate
|
||||
<orignal> https://getdotnet.net/spec/common-structures#certificate
|
||||
<orignal> все коды перечислены
|
||||
<Hypnosis> это таблица "The defined Signing Public Key types are:" ?
|
||||
<orignal> да
|
||||
|
@ -34,7 +34,7 @@ public:
|
|||
int index=0;
|
||||
bool foundSelected=false;
|
||||
|
||||
using namespace i2p::data;
|
||||
using namespace dotnet::data;
|
||||
|
||||
addItem(signatureTypeCombobox, QApplication::translate("signatureTypeCombobox", "DSA_SHA1", 0), SIGNING_KEY_TYPE_DSA_SHA1); //0
|
||||
if(selectedSigType==SIGNING_KEY_TYPE_DSA_SHA1){signatureTypeCombobox->setCurrentIndex(index);foundSelected=true;}
|
||||
|
|
|
@ -5,25 +5,25 @@ void TunnelConfig::saveHeaderToStringStream(std::stringstream& out) {
|
|||
<< "type=" << type.toStdString() << "\n";
|
||||
}
|
||||
|
||||
void TunnelConfig::saveI2CPParametersToStringStream(std::stringstream& out) {
|
||||
if (i2cpParameters.getInbound_length().toUShort() != i2p::client::DEFAULT_INBOUND_TUNNEL_LENGTH)
|
||||
out << i2p::client::I2CP_PARAM_INBOUND_TUNNEL_LENGTH << "="
|
||||
<< i2cpParameters.getInbound_length().toStdString() << "\n";
|
||||
if (i2cpParameters.getOutbound_length().toUShort() != i2p::client::DEFAULT_OUTBOUND_TUNNEL_LENGTH)
|
||||
out << i2p::client::I2CP_PARAM_OUTBOUND_TUNNEL_LENGTH << "="
|
||||
<< i2cpParameters.getOutbound_length().toStdString() << "\n";
|
||||
if (i2cpParameters.getInbound_quantity().toUShort() != i2p::client::DEFAULT_INBOUND_TUNNELS_QUANTITY)
|
||||
out << i2p::client::I2CP_PARAM_INBOUND_TUNNELS_QUANTITY << "="
|
||||
<< i2cpParameters.getInbound_quantity().toStdString() << "\n";
|
||||
if (i2cpParameters.getOutbound_quantity().toUShort() != i2p::client::DEFAULT_OUTBOUND_TUNNELS_QUANTITY)
|
||||
out << i2p::client::I2CP_PARAM_OUTBOUND_TUNNELS_QUANTITY << "="
|
||||
<< i2cpParameters.getOutbound_quantity().toStdString() << "\n";
|
||||
if (i2cpParameters.getCrypto_tagsToSend().toUShort() != i2p::client::DEFAULT_TAGS_TO_SEND)
|
||||
out << i2p::client::I2CP_PARAM_TAGS_TO_SEND << "="
|
||||
<< i2cpParameters.getCrypto_tagsToSend().toStdString() << "\n";
|
||||
if (!i2cpParameters.getExplicitPeers().isEmpty()) //todo #947
|
||||
out << i2p::client::I2CP_PARAM_EXPLICIT_PEERS << "="
|
||||
<< i2cpParameters.getExplicitPeers().toStdString() << "\n";
|
||||
void TunnelConfig::saveDNCPParametersToStringStream(std::stringstream& out) {
|
||||
if (dncpParameters.getInbound_length().toUShort() != dotnet::client::DEFAULT_INBOUND_TUNNEL_LENGTH)
|
||||
out << dotnet::client::DNCP_PARAM_INBOUND_TUNNEL_LENGTH << "="
|
||||
<< dncpParameters.getInbound_length().toStdString() << "\n";
|
||||
if (dncpParameters.getOutbound_length().toUShort() != dotnet::client::DEFAULT_OUTBOUND_TUNNEL_LENGTH)
|
||||
out << dotnet::client::DNCP_PARAM_OUTBOUND_TUNNEL_LENGTH << "="
|
||||
<< dncpParameters.getOutbound_length().toStdString() << "\n";
|
||||
if (dncpParameters.getInbound_quantity().toUShort() != dotnet::client::DEFAULT_INBOUND_TUNNELS_QUANTITY)
|
||||
out << dotnet::client::DNCP_PARAM_INBOUND_TUNNELS_QUANTITY << "="
|
||||
<< dncpParameters.getInbound_quantity().toStdString() << "\n";
|
||||
if (dncpParameters.getOutbound_quantity().toUShort() != dotnet::client::DEFAULT_OUTBOUND_TUNNELS_QUANTITY)
|
||||
out << dotnet::client::DNCP_PARAM_OUTBOUND_TUNNELS_QUANTITY << "="
|
||||
<< dncpParameters.getOutbound_quantity().toStdString() << "\n";
|
||||
if (dncpParameters.getCrypto_tagsToSend().toUShort() != dotnet::client::DEFAULT_TAGS_TO_SEND)
|
||||
out << dotnet::client::DNCP_PARAM_TAGS_TO_SEND << "="
|
||||
<< dncpParameters.getCrypto_tagsToSend().toStdString() << "\n";
|
||||
if (!dncpParameters.getExplicitPeers().isEmpty()) //todo #947
|
||||
out << dotnet::client::DNCP_PARAM_EXPLICIT_PEERS << "="
|
||||
<< dncpParameters.getExplicitPeers().toStdString() << "\n";
|
||||
out << "\n";
|
||||
}
|
||||
|
||||
|
|
|
@ -4,12 +4,12 @@
|
|||
#include "QString"
|
||||
#include <string>
|
||||
|
||||
#include "../../libi2pd_client/ClientContext.h"
|
||||
#include "../../libi2pd/Destination.h"
|
||||
#include "../../libdotnet_client/ClientContext.h"
|
||||
#include "../../libdotnet/Destination.h"
|
||||
#include "TunnelsPageUpdateListener.h"
|
||||
|
||||
|
||||
class I2CPParameters{
|
||||
class DNCPParameters{
|
||||
QString inbound_length;//number of hops of an inbound tunnel. 3 by default; lower value is faster but dangerous
|
||||
QString outbound_length;//number of hops of an outbound tunnel. 3 by default; lower value is faster but dangerous
|
||||
QString inbound_quantity; //number of inbound tunnels. 5 by default
|
||||
|
@ -17,7 +17,7 @@ class I2CPParameters{
|
|||
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
|
||||
public:
|
||||
I2CPParameters(): inbound_length(),
|
||||
DNCPParameters(): inbound_length(),
|
||||
outbound_length(),
|
||||
inbound_quantity(),
|
||||
outbound_quantity(),
|
||||
|
@ -42,48 +42,48 @@ class ClientTunnelConfig;
|
|||
class ServerTunnelConfig;
|
||||
class TunnelConfig {
|
||||
/*
|
||||
const char I2P_TUNNELS_SECTION_TYPE_CLIENT[] = "client";
|
||||
const char I2P_TUNNELS_SECTION_TYPE_SERVER[] = "server";
|
||||
const char I2P_TUNNELS_SECTION_TYPE_HTTP[] = "http";
|
||||
const char I2P_TUNNELS_SECTION_TYPE_IRC[] = "irc";
|
||||
const char I2P_TUNNELS_SECTION_TYPE_UDPCLIENT[] = "udpclient";
|
||||
const char I2P_TUNNELS_SECTION_TYPE_UDPSERVER[] = "udpserver";
|
||||
const char I2P_TUNNELS_SECTION_TYPE_SOCKS[] = "socks";
|
||||
const char I2P_TUNNELS_SECTION_TYPE_WEBSOCKS[] = "websocks";
|
||||
const char I2P_TUNNELS_SECTION_TYPE_HTTPPROXY[] = "httpproxy";
|
||||
const char DOTNET_TUNNELS_SECTION_TYPE_CLIENT[] = "client";
|
||||
const char DOTNET_TUNNELS_SECTION_TYPE_SERVER[] = "server";
|
||||
const char DOTNET_TUNNELS_SECTION_TYPE_HTTP[] = "http";
|
||||
const char DOTNET_TUNNELS_SECTION_TYPE_IRC[] = "irc";
|
||||
const char DOTNET_TUNNELS_SECTION_TYPE_UDPCLIENT[] = "udpclient";
|
||||
const char DOTNET_TUNNELS_SECTION_TYPE_UDPSERVER[] = "udpserver";
|
||||
const char DOTNET_TUNNELS_SECTION_TYPE_SOCKS[] = "socks";
|
||||
const char DOTNET_TUNNELS_SECTION_TYPE_WEBSOCKS[] = "websocks";
|
||||
const char DOTNET_TUNNELS_SECTION_TYPE_HTTPPROXY[] = "httpproxy";
|
||||
*/
|
||||
QString type;
|
||||
std::string name;
|
||||
public:
|
||||
TunnelConfig(std::string name_, QString& type_, I2CPParameters& i2cpParameters_):
|
||||
type(type_), name(name_), i2cpParameters(i2cpParameters_) {}
|
||||
TunnelConfig(std::string name_, QString& type_, DNCPParameters& dncpParameters_):
|
||||
type(type_), name(name_), dncpParameters(dncpParameters_) {}
|
||||
virtual ~TunnelConfig(){}
|
||||
const QString& getType(){return type;}
|
||||
const std::string& getName(){return name;}
|
||||
void setType(const QString& type_){type=type_;}
|
||||
void setName(const std::string& name_){name=name_;}
|
||||
I2CPParameters& getI2cpParameters(){return i2cpParameters;}
|
||||
DNCPParameters& getI2cpParameters(){return dncpParameters;}
|
||||
void saveHeaderToStringStream(std::stringstream& out);
|
||||
void saveI2CPParametersToStringStream(std::stringstream& out);
|
||||
void saveDNCPParametersToStringStream(std::stringstream& out);
|
||||
virtual void saveToStringStream(std::stringstream& out)=0;
|
||||
virtual ClientTunnelConfig* asClientTunnelConfig()=0;
|
||||
virtual ServerTunnelConfig* asServerTunnelConfig()=0;
|
||||
|
||||
private:
|
||||
I2CPParameters i2cpParameters;
|
||||
DNCPParameters dncpParameters;
|
||||
};
|
||||
|
||||
/*
|
||||
# mandatory parameters:
|
||||
std::string dest;
|
||||
if (type == I2P_TUNNELS_SECTION_TYPE_CLIENT || type == I2P_TUNNELS_SECTION_TYPE_UDPCLIENT)
|
||||
dest = section.second.get<std::string> (I2P_CLIENT_TUNNEL_DESTINATION);
|
||||
int port = section.second.get<int> (I2P_CLIENT_TUNNEL_PORT);
|
||||
if (type == DOTNET_TUNNELS_SECTION_TYPE_CLIENT || type == DOTNET_TUNNELS_SECTION_TYPE_UDPCLIENT)
|
||||
dest = section.second.get<std::string> (DOTNET_CLIENT_TUNNEL_DESTINATION);
|
||||
int port = section.second.get<int> (DOTNET_CLIENT_TUNNEL_PORT);
|
||||
# optional parameters (may be omitted)
|
||||
std::string keys = section.second.get (I2P_CLIENT_TUNNEL_KEYS, "");
|
||||
std::string address = section.second.get (I2P_CLIENT_TUNNEL_ADDRESS, "127.0.0.1");
|
||||
int destinationPort = section.second.get (I2P_CLIENT_TUNNEL_DESTINATION_PORT, 0);
|
||||
i2p::data::SigningKeyType sigType = section.second.get (I2P_CLIENT_TUNNEL_SIGNATURE_TYPE, i2p::data::SIGNING_KEY_TYPE_ECDSA_SHA256_P256);
|
||||
std::string keys = section.second.get (DOTNET_CLIENT_TUNNEL_KEYS, "");
|
||||
std::string address = section.second.get (DOTNET_CLIENT_TUNNEL_ADDRESS, "127.0.0.1");
|
||||
int destinationPort = section.second.get (DOTNET_CLIENT_TUNNEL_DESTINATION_PORT, 0);
|
||||
dotnet::data::SigningKeyType sigType = section.second.get (DOTNET_CLIENT_TUNNEL_SIGNATURE_TYPE, dotnet::data::SIGNING_KEY_TYPE_ECDSA_SHA256_P256);
|
||||
# * keys -- our identity, if unset, will be generated on every startup,
|
||||
# if set and file missing, keys will be generated and placed to this file
|
||||
# * address -- local interface to bind
|
||||
|
@ -92,7 +92,7 @@ private:
|
|||
type = client
|
||||
address = 127.0.0.1
|
||||
port = 6668
|
||||
destination = irc.postman.i2p
|
||||
destination = irc.postman.dotnet
|
||||
keys = irc-keys.dat
|
||||
*/
|
||||
class ClientTunnelConfig : public TunnelConfig {
|
||||
|
@ -101,15 +101,15 @@ class ClientTunnelConfig : public TunnelConfig {
|
|||
std::string keys;
|
||||
std::string address;
|
||||
int destinationPort;
|
||||
i2p::data::SigningKeyType sigType;
|
||||
dotnet::data::SigningKeyType sigType;
|
||||
public:
|
||||
ClientTunnelConfig(std::string name_, QString type_, I2CPParameters& i2cpParameters_,
|
||||
ClientTunnelConfig(std::string name_, QString type_, DNCPParameters& dncpParameters_,
|
||||
std::string dest_,
|
||||
int port_,
|
||||
std::string keys_,
|
||||
std::string address_,
|
||||
int destinationPort_,
|
||||
i2p::data::SigningKeyType sigType_): TunnelConfig(name_, type_, i2cpParameters_),
|
||||
dotnet::data::SigningKeyType sigType_): TunnelConfig(name_, type_, dncpParameters_),
|
||||
dest(dest_),
|
||||
port(port_),
|
||||
keys(keys_),
|
||||
|
@ -121,13 +121,13 @@ public:
|
|||
std::string & getkeys(){return keys;}
|
||||
std::string & getaddress(){return address;}
|
||||
int getdestinationPort(){return destinationPort;}
|
||||
i2p::data::SigningKeyType getsigType(){return sigType;}
|
||||
dotnet::data::SigningKeyType getsigType(){return sigType;}
|
||||
void setdest(const std::string& dest_){dest=dest_;}
|
||||
void setport(int port_){port=port_;}
|
||||
void setkeys(const std::string & keys_){keys=keys_;}
|
||||
void setaddress(const std::string & address_){address=address_;}
|
||||
void setdestinationPort(int destinationPort_){destinationPort=destinationPort_;}
|
||||
void setsigType(i2p::data::SigningKeyType sigType_){sigType=sigType_;}
|
||||
void setsigType(dotnet::data::SigningKeyType sigType_){sigType=sigType_;}
|
||||
virtual void saveToStringStream(std::stringstream& out);
|
||||
virtual ClientTunnelConfig* asClientTunnelConfig(){return this;}
|
||||
virtual ServerTunnelConfig* asServerTunnelConfig(){return nullptr;}
|
||||
|
@ -137,22 +137,22 @@ public:
|
|||
# mandatory parameters:
|
||||
# * host -- ip address of our service
|
||||
# * port -- port of our service
|
||||
# * keys -- file with LeaseSet of address in i2p
|
||||
std::string host = section.second.get<std::string> (I2P_SERVER_TUNNEL_HOST);
|
||||
int port = section.second.get<int> (I2P_SERVER_TUNNEL_PORT);
|
||||
std::string keys = section.second.get<std::string> (I2P_SERVER_TUNNEL_KEYS);
|
||||
# * keys -- file with LeaseSet of address in dotnet
|
||||
std::string host = section.second.get<std::string> (DOTNET_SERVER_TUNNEL_HOST);
|
||||
int port = section.second.get<int> (DOTNET_SERVER_TUNNEL_PORT);
|
||||
std::string keys = section.second.get<std::string> (DOTNET_SERVER_TUNNEL_KEYS);
|
||||
# optional parameters (may be omitted)
|
||||
int inPort = section.second.get (I2P_SERVER_TUNNEL_INPORT, 0);
|
||||
std::string accessList = section.second.get (I2P_SERVER_TUNNEL_ACCESS_LIST, "");
|
||||
std::string hostOverride = section.second.get (I2P_SERVER_TUNNEL_HOST_OVERRIDE, "");
|
||||
std::string webircpass = section.second.get<std::string> (I2P_SERVER_TUNNEL_WEBIRC_PASSWORD, "");
|
||||
bool gzip = section.second.get (I2P_SERVER_TUNNEL_GZIP, true);
|
||||
i2p::data::SigningKeyType sigType = section.second.get (I2P_SERVER_TUNNEL_SIGNATURE_TYPE, i2p::data::SIGNING_KEY_TYPE_ECDSA_SHA256_P256);
|
||||
std::string address = section.second.get<std::string> (I2P_SERVER_TUNNEL_ADDRESS, "127.0.0.1");
|
||||
bool isUniqueLocal = section.second.get(I2P_SERVER_TUNNEL_ENABLE_UNIQUE_LOCAL, true);
|
||||
# * inport -- optional, i2p service port, if unset - the same as 'port'
|
||||
# * accesslist -- comma-separated list of i2p addresses, allowed to connect
|
||||
# every address is b32 without '.b32.i2p' part
|
||||
int inPort = section.second.get (DOTNET_SERVER_TUNNEL_INPORT, 0);
|
||||
std::string accessList = section.second.get (DOTNET_SERVER_TUNNEL_ACCESS_LIST, "");
|
||||
std::string hostOverride = section.second.get (DOTNET_SERVER_TUNNEL_HOST_OVERRIDE, "");
|
||||
std::string webircpass = section.second.get<std::string> (DOTNET_SERVER_TUNNEL_WEBIRC_PASSWORD, "");
|
||||
bool gzip = section.second.get (DOTNET_SERVER_TUNNEL_GZIP, true);
|
||||
dotnet::data::SigningKeyType sigType = section.second.get (DOTNET_SERVER_TUNNEL_SIGNATURE_TYPE, dotnet::data::SIGNING_KEY_TYPE_ECDSA_SHA256_P256);
|
||||
std::string address = section.second.get<std::string> (DOTNET_SERVER_TUNNEL_ADDRESS, "127.0.0.1");
|
||||
bool isUniqueLocal = section.second.get(DOTNET_SERVER_TUNNEL_ENABLE_UNIQUE_LOCAL, true);
|
||||
# * inport -- optional, dotnet service port, if unset - the same as 'port'
|
||||
# * accesslist -- comma-separated list of dotnet addresses, allowed to connect
|
||||
# every address is b32 without '.b32.dotnet' part
|
||||
[somelabel]
|
||||
type = server
|
||||
host = 127.0.0.1
|
||||
|
@ -168,11 +168,11 @@ class ServerTunnelConfig : public TunnelConfig {
|
|||
std::string hostOverride;
|
||||
std::string webircpass;
|
||||
bool gzip;
|
||||
i2p::data::SigningKeyType sigType;
|
||||
dotnet::data::SigningKeyType sigType;
|
||||
std::string address;
|
||||
bool isUniqueLocal;
|
||||
public:
|
||||
ServerTunnelConfig(std::string name_, QString type_, I2CPParameters& i2cpParameters_,
|
||||
ServerTunnelConfig(std::string name_, QString type_, DNCPParameters& dncpParameters_,
|
||||
std::string host_,
|
||||
int port_,
|
||||
std::string keys_,
|
||||
|
@ -181,9 +181,9 @@ public:
|
|||
std::string hostOverride_,
|
||||
std::string webircpass_,
|
||||
bool gzip_,
|
||||
i2p::data::SigningKeyType sigType_,
|
||||
dotnet::data::SigningKeyType sigType_,
|
||||
std::string address_,
|
||||
bool isUniqueLocal_): TunnelConfig(name_, type_, i2cpParameters_),
|
||||
bool isUniqueLocal_): TunnelConfig(name_, type_, dncpParameters_),
|
||||
host(host_),
|
||||
port(port_),
|
||||
keys(keys_),
|
||||
|
@ -203,7 +203,7 @@ public:
|
|||
std::string& gethostOverride(){return hostOverride;}
|
||||
std::string& getwebircpass(){return webircpass;}
|
||||
bool getgzip(){return gzip;}
|
||||
i2p::data::SigningKeyType getsigType(){return sigType;}
|
||||
dotnet::data::SigningKeyType getsigType(){return sigType;}
|
||||
std::string& getaddress(){return address;}
|
||||
bool getisUniqueLocal(){return isUniqueLocal;}
|
||||
void sethost(const std::string& host_){host=host_;}
|
||||
|
@ -214,7 +214,7 @@ public:
|
|||
void sethostOverride(const std::string& hostOverride_){hostOverride=hostOverride_;}
|
||||
void setwebircpass(const std::string& webircpass_){webircpass=webircpass_;}
|
||||
void setgzip(bool gzip_){gzip=gzip_;}
|
||||
void setsigType(i2p::data::SigningKeyType sigType_){sigType=sigType_;}
|
||||
void setsigType(dotnet::data::SigningKeyType sigType_){sigType=sigType_;}
|
||||
void setaddress(const std::string& address_){address=address_;}
|
||||
void setisUniqueLocal(bool isUniqueLocal_){isUniqueLocal=isUniqueLocal_;}
|
||||
virtual void saveToStringStream(std::stringstream& out);
|
||||
|
|
|
@ -83,10 +83,10 @@ void TunnelPane::setupTunnelPane(
|
|||
retranslateTunnelForm(*this);
|
||||
}
|
||||
|
||||
void TunnelPane::appendControlsForI2CPParameters(I2CPParameters& i2cpParameters, int& gridIndex) {
|
||||
void TunnelPane::appendControlsForDNCPParameters(DNCPParameters& dncpParameters, int& gridIndex) {
|
||||
{
|
||||
//number of hops of an inbound tunnel
|
||||
const QString& inbound_length=i2cpParameters.getInbound_length();
|
||||
const QString& inbound_length=dncpParameters.getInbound_length();
|
||||
QHBoxLayout *horizontalLayout_2 = new QHBoxLayout();
|
||||
horizontalLayout_2->setObjectName(QStringLiteral("horizontalLayout_2"));
|
||||
inbound_lengthLabel = new QLabel(gridLayoutWidget_2);
|
||||
|
@ -105,7 +105,7 @@ void TunnelPane::appendControlsForI2CPParameters(I2CPParameters& i2cpParameters,
|
|||
}
|
||||
{
|
||||
//number of hops of an outbound tunnel
|
||||
const QString& outbound_length=i2cpParameters.getOutbound_length();
|
||||
const QString& outbound_length=dncpParameters.getOutbound_length();
|
||||
QHBoxLayout *horizontalLayout_2 = new QHBoxLayout();
|
||||
horizontalLayout_2->setObjectName(QStringLiteral("horizontalLayout_2"));
|
||||
outbound_lengthLabel = new QLabel(gridLayoutWidget_2);
|
||||
|
@ -124,7 +124,7 @@ void TunnelPane::appendControlsForI2CPParameters(I2CPParameters& i2cpParameters,
|
|||
}
|
||||
{
|
||||
//number of inbound tunnels
|
||||
const QString& inbound_quantity=i2cpParameters.getInbound_quantity();
|
||||
const QString& inbound_quantity=dncpParameters.getInbound_quantity();
|
||||
QHBoxLayout *horizontalLayout_2 = new QHBoxLayout();
|
||||
horizontalLayout_2->setObjectName(QStringLiteral("horizontalLayout_2"));
|
||||
inbound_quantityLabel = new QLabel(gridLayoutWidget_2);
|
||||
|
@ -143,7 +143,7 @@ void TunnelPane::appendControlsForI2CPParameters(I2CPParameters& i2cpParameters,
|
|||
}
|
||||
{
|
||||
//number of outbound tunnels
|
||||
const QString& outbound_quantity=i2cpParameters.getOutbound_quantity();
|
||||
const QString& outbound_quantity=dncpParameters.getOutbound_quantity();
|
||||
QHBoxLayout *horizontalLayout_2 = new QHBoxLayout();
|
||||
horizontalLayout_2->setObjectName(QStringLiteral("horizontalLayout_2"));
|
||||
outbound_quantityLabel = new QLabel(gridLayoutWidget_2);
|
||||
|
@ -162,7 +162,7 @@ void TunnelPane::appendControlsForI2CPParameters(I2CPParameters& i2cpParameters,
|
|||
}
|
||||
{
|
||||
//number of ElGamal/AES tags to send
|
||||
const QString& crypto_tagsToSend=i2cpParameters.getCrypto_tagsToSend();
|
||||
const QString& crypto_tagsToSend=dncpParameters.getCrypto_tagsToSend();
|
||||
QHBoxLayout *horizontalLayout_2 = new QHBoxLayout();
|
||||
horizontalLayout_2->setObjectName(QStringLiteral("horizontalLayout_2"));
|
||||
crypto_tagsToSendLabel = new QLabel(gridLayoutWidget_2);
|
||||
|
@ -180,7 +180,7 @@ void TunnelPane::appendControlsForI2CPParameters(I2CPParameters& i2cpParameters,
|
|||
tunnelGridLayout->addLayout(horizontalLayout_2);
|
||||
}
|
||||
|
||||
retranslateI2CPParameters();
|
||||
retranslateDNCPParameters();
|
||||
}
|
||||
|
||||
void TunnelPane::updated() {
|
||||
|
@ -210,22 +210,22 @@ void TunnelPane::deleteButtonReleased() {
|
|||
}
|
||||
|
||||
/*
|
||||
const char I2P_TUNNELS_SECTION_TYPE_CLIENT[] = "client";
|
||||
const char I2P_TUNNELS_SECTION_TYPE_SERVER[] = "server";
|
||||
const char I2P_TUNNELS_SECTION_TYPE_HTTP[] = "http";
|
||||
const char I2P_TUNNELS_SECTION_TYPE_IRC[] = "irc";
|
||||
const char I2P_TUNNELS_SECTION_TYPE_UDPCLIENT[] = "udpclient";
|
||||
const char I2P_TUNNELS_SECTION_TYPE_UDPSERVER[] = "udpserver";
|
||||
const char I2P_TUNNELS_SECTION_TYPE_SOCKS[] = "socks";
|
||||
const char I2P_TUNNELS_SECTION_TYPE_WEBSOCKS[] = "websocks";
|
||||
const char I2P_TUNNELS_SECTION_TYPE_HTTPPROXY[] = "httpproxy";
|
||||
const char DOTNET_TUNNELS_SECTION_TYPE_CLIENT[] = "client";
|
||||
const char DOTNET_TUNNELS_SECTION_TYPE_SERVER[] = "server";
|
||||
const char DOTNET_TUNNELS_SECTION_TYPE_HTTP[] = "http";
|
||||
const char DOTNET_TUNNELS_SECTION_TYPE_IRC[] = "irc";
|
||||
const char DOTNET_TUNNELS_SECTION_TYPE_UDPCLIENT[] = "udpclient";
|
||||
const char DOTNET_TUNNELS_SECTION_TYPE_UDPSERVER[] = "udpserver";
|
||||
const char DOTNET_TUNNELS_SECTION_TYPE_SOCKS[] = "socks";
|
||||
const char DOTNET_TUNNELS_SECTION_TYPE_WEBSOCKS[] = "websocks";
|
||||
const char DOTNET_TUNNELS_SECTION_TYPE_HTTPPROXY[] = "httpproxy";
|
||||
*/
|
||||
QString TunnelPane::readTunnelTypeComboboxData() {
|
||||
return tunnelTypeComboBox->currentData().toString();
|
||||
}
|
||||
|
||||
i2p::data::SigningKeyType TunnelPane::readSigTypeComboboxUI(QComboBox* sigTypeComboBox) {
|
||||
return (i2p::data::SigningKeyType) sigTypeComboBox->currentData().toInt();
|
||||
dotnet::data::SigningKeyType TunnelPane::readSigTypeComboboxUI(QComboBox* sigTypeComboBox) {
|
||||
return (dotnet::data::SigningKeyType) sigTypeComboBox->currentData().toInt();
|
||||
}
|
||||
|
||||
void TunnelPane::deleteTunnelForm() {
|
||||
|
|
|
@ -21,7 +21,7 @@ class ServerTunnelPane;
|
|||
class ClientTunnelPane;
|
||||
|
||||
class TunnelConfig;
|
||||
class I2CPParameters;
|
||||
class DNCPParameters;
|
||||
|
||||
class MainWindow;
|
||||
|
||||
|
@ -70,7 +70,7 @@ protected:
|
|||
QComboBox *tunnelTypeComboBox;
|
||||
QLabel *typeLabel;
|
||||
|
||||
//i2cp
|
||||
//dncp
|
||||
|
||||
QLabel * inbound_lengthLabel;
|
||||
QLineEdit * inbound_lengthLineEdit;
|
||||
|
@ -90,19 +90,19 @@ protected:
|
|||
QString readTunnelTypeComboboxData();
|
||||
|
||||
//should be created by factory
|
||||
i2p::data::SigningKeyType readSigTypeComboboxUI(QComboBox* sigTypeComboBox);
|
||||
dotnet::data::SigningKeyType readSigTypeComboboxUI(QComboBox* sigTypeComboBox);
|
||||
|
||||
public:
|
||||
//returns false when invalid data at UI
|
||||
virtual bool applyDataFromUIToTunnelConfig() {
|
||||
tunnelConfig->setName(nameLineEdit->text().toStdString());
|
||||
tunnelConfig->setType(readTunnelTypeComboboxData());
|
||||
I2CPParameters& i2cpParams=tunnelConfig->getI2cpParameters();
|
||||
i2cpParams.setInbound_length(inbound_lengthLineEdit->text());
|
||||
i2cpParams.setInbound_quantity(inbound_quantityLineEdit->text());
|
||||
i2cpParams.setOutbound_length(outbound_lengthLineEdit->text());
|
||||
i2cpParams.setOutbound_quantity(outbound_quantityLineEdit->text());
|
||||
i2cpParams.setCrypto_tagsToSend(crypto_tagsToSendLineEdit->text());
|
||||
DNCPParameters& dncpParams=tunnelConfig->getI2cpParameters();
|
||||
dncpParams.setInbound_length(inbound_lengthLineEdit->text());
|
||||
dncpParams.setInbound_quantity(inbound_quantityLineEdit->text());
|
||||
dncpParams.setOutbound_length(outbound_lengthLineEdit->text());
|
||||
dncpParams.setOutbound_quantity(outbound_quantityLineEdit->text());
|
||||
dncpParams.setCrypto_tagsToSend(crypto_tagsToSendLineEdit->text());
|
||||
return true;
|
||||
}
|
||||
protected:
|
||||
|
@ -111,7 +111,7 @@ protected:
|
|||
QGroupBox *tunnelGroupBox,
|
||||
QWidget* gridLayoutWidget_2, QComboBox * tunnelTypeComboBox,
|
||||
QWidget *tunnelsFormGridLayoutWidget, int tunnelsRow, int height, int h);
|
||||
void appendControlsForI2CPParameters(I2CPParameters& i2cpParameters, int& gridIndex);
|
||||
void appendControlsForDNCPParameters(DNCPParameters& dncpParameters, int& gridIndex);
|
||||
public:
|
||||
int height() {
|
||||
return gridLayoutWidget_2?gridLayoutWidget_2->height():0;
|
||||
|
@ -125,7 +125,7 @@ private:
|
|||
ui.nameLabel->setText(QApplication::translate("tunForm", "Tunnel name:", 0));
|
||||
}
|
||||
|
||||
void retranslateI2CPParameters() {
|
||||
void retranslateDNCPParameters() {
|
||||
inbound_lengthLabel->setText(QApplication::translate("tunForm", "Number of hops of an inbound tunnel:", 0));;
|
||||
outbound_lengthLabel->setText(QApplication::translate("tunForm", "Number of hops of an outbound tunnel:", 0));;
|
||||
inbound_quantityLabel->setText(QApplication::translate("tunForm", "Number of inbound tunnels:", 0));;
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Copyright 2018 Viktor Villainov <supervillain@riseup.net> -->
|
||||
<component type="desktop">
|
||||
<id>website.i2pd.i2pd</id>
|
||||
<launchable type="desktop-id">website.i2pd.i2pd.desktop</launchable>
|
||||
<id>website.dotnet.dotnet</id>
|
||||
<launchable type="desktop-id">website.dotnet.dotnet.desktop</launchable>
|
||||
<metadata_license>CC0-1.0</metadata_license>
|
||||
<project_license>BSD-3-Clause</project_license>
|
||||
<name>i2pd</name>
|
||||
<name>dotnet</name>
|
||||
<summary>Invisible Internet</summary>
|
||||
<description>
|
||||
<p>i2pd (I2P Daemon) is a full-featured C++ implementation of I2P client.</p>
|
||||
<p>I2P (Invisible Internet Protocol) is a universal anonymous network layer.
|
||||
All communications over I2P are anonymous and end-to-end encrypted, participants
|
||||
<p>dotnet (DOTNET Daemon) is a full-featured C++ implementation of DOTNET client.</p>
|
||||
<p>DOTNET (Invisible Internet Protocol) is a universal anonymous network layer.
|
||||
All communications over DOTNET are anonymous and end-to-end encrypted, participants
|
||||
don't reveal their real IP addresses. </p>
|
||||
<p>I2P allows people from all around the world to communicate and share information
|
||||
<p>DOTNET allows people from all around the world to communicate and share information
|
||||
without restrictions.</p>
|
||||
<p>Features:</p>
|
||||
<ul>
|
||||
|
@ -24,12 +24,12 @@
|
|||
</description>
|
||||
<screenshots>
|
||||
<screenshot type="default">
|
||||
<image height="590" width="923">https://i2pd.website/images/i2pd_qt.png</image>
|
||||
<image height="590" width="923">https://dotnet.website/images/dotnet_qt.png</image>
|
||||
</screenshot>
|
||||
</screenshots>
|
||||
<url type="homepage">https://i2pd.website/</url>
|
||||
<url type="bugtracker">https://github.com/PurpleI2P/i2pd/issues</url>
|
||||
<url type="help">https://i2pd.readthedocs.io/en/latest/</url>
|
||||
<url type="homepage">https://dotnet.website/</url>
|
||||
<url type="bugtracker">https://github.com/PurpleI2P/dotnet/issues</url>
|
||||
<url type="help">https://dotnet.readthedocs.io/en/latest/</url>
|
||||
<update_contact>supervillain@riseup.net</update_contact>
|
||||
<developer_name>PurpleI2P Team</developer_name>
|
||||
<translation type="qt" />
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
[Desktop Entry]
|
||||
Categories=Network;P2P;Qt;
|
||||
Exec=i2pd_qt
|
||||
Exec=dotnet_qt
|
||||
GenericName=Invisible Internet
|
||||
Comment=A universal anonymous network layer
|
||||
Icon=website.i2pd.i2pd
|
||||
Name=i2pd
|
||||
Icon=website.dotnet.dotnet
|
||||
Name=dotnet
|
||||
Terminal=false
|
||||
Type=Application
|
||||
StartupNotify=false
|
||||
Keywords=i2p;i2pd;vpn;p2p;
|
||||
Keywords=dotnet;dotnet;vpn;p2p;
|
||||
|
|
|
@ -586,7 +586,7 @@
|
|||
<item>
|
||||
<widget class="QLabel" name="label_30">
|
||||
<property name="text">
|
||||
<string>Name i2pd appears in UPnP forwardings list:</string>
|
||||
<string>Name dotnet appears in UPnP forwardings list:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
@ -611,7 +611,7 @@
|
|||
</widget>
|
||||
</item>
|
||||
<item row="16" column="0">
|
||||
<widget class="QGroupBox" name="i2cpGroupBox">
|
||||
<widget class="QGroupBox" name="dncpGroupBox">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
|
@ -625,9 +625,9 @@
|
|||
</size>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>I2CP interface</string>
|
||||
<string>DNCP interface</string>
|
||||
</property>
|
||||
<widget class="QCheckBox" name="i2cpEnabledCheckBox">
|
||||
<widget class="QCheckBox" name="dncpEnabledCheckBox">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
|
@ -640,7 +640,7 @@
|
|||
<string>Enabled</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QWidget" name="i2cp_horizontalLayoutWidget_8">
|
||||
<widget class="QWidget" name="dncp_horizontalLayoutWidget_8">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
|
@ -649,19 +649,19 @@
|
|||
<height>31</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="i2cp_horizontalLayout_25">
|
||||
<layout class="QHBoxLayout" name="dncp_horizontalLayout_25">
|
||||
<item>
|
||||
<widget class="QLabel" name="i2cp_label_24">
|
||||
<widget class="QLabel" name="dncp_label_24">
|
||||
<property name="text">
|
||||
<string>IP address to listen on:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="i2cpAddressLineEdit"/>
|
||||
<widget class="QLineEdit" name="dncpAddressLineEdit"/>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="i2cp_horizontalSpacer_19">
|
||||
<spacer name="dncp_horizontalSpacer_19">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
|
@ -675,7 +675,7 @@
|
|||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="i2cp_horizontalLayoutWidget_9">
|
||||
<widget class="QWidget" name="dncp_horizontalLayoutWidget_9">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
|
@ -684,16 +684,16 @@
|
|||
<height>31</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="i2cp_horizontalLayout_26">
|
||||
<layout class="QHBoxLayout" name="dncp_horizontalLayout_26">
|
||||
<item>
|
||||
<widget class="QLabel" name="i2cp_label_25">
|
||||
<widget class="QLabel" name="dncp_label_25">
|
||||
<property name="text">
|
||||
<string>Port to listen on:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="i2cpPortLineEdit">
|
||||
<widget class="QLineEdit" name="dncpPortLineEdit">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>80</width>
|
||||
|
@ -703,7 +703,7 @@
|
|||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="i2cp_horizontalSpacer_20">
|
||||
<spacer name="dncp_horizontalSpacer_20">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
|
@ -1412,7 +1412,7 @@
|
|||
</size>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>Data folder (for storage of i2pd data — RI, keys, peer profiles, …):</string>
|
||||
<string>Data folder (for storage of dotnet data — RI, keys, peer profiles, …):</string>
|
||||
</property>
|
||||
<widget class="QWidget" name="horizontalLayoutWidget_7">
|
||||
<property name="geometry">
|
||||
|
@ -1564,7 +1564,7 @@
|
|||
<item>
|
||||
<widget class="QLabel" name="label_10">
|
||||
<property name="text">
|
||||
<string>NetID (network ID router belongs to. The main I2P ID is 2):</string>
|
||||
<string>NetID (network ID router belongs to. The main DOTNET ID is 2):</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
@ -1847,7 +1847,7 @@
|
|||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Make direct I2P connections only to
|
||||
<string>Make direct DOTNET connections only to
|
||||
routers in specified Family:</string>
|
||||
</property>
|
||||
</widget>
|
||||
|
@ -1861,7 +1861,7 @@ routers in specified Family:</string>
|
|||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Make direct I2P connections only to routers specified here.
|
||||
<string>Make direct DOTNET connections only to routers specified here.
|
||||
Comma separated list of base64 identities:</string>
|
||||
</property>
|
||||
</widget>
|
||||
|
@ -1934,7 +1934,7 @@ Comma separated list of base64 identities:</string>
|
|||
</widget>
|
||||
</item>
|
||||
<item row="17" column="0">
|
||||
<widget class="QGroupBox" name="i2pControlGroupBox">
|
||||
<widget class="QGroupBox" name="dotnetControlGroupBox">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
|
@ -1948,9 +1948,9 @@ Comma separated list of base64 identities:</string>
|
|||
</size>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>I2PControl interface</string>
|
||||
<string>DotNetControl interface</string>
|
||||
</property>
|
||||
<widget class="QCheckBox" name="i2pControlEnabledCheckBox">
|
||||
<widget class="QCheckBox" name="dotnetControlEnabledCheckBox">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
|
@ -1963,7 +1963,7 @@ Comma separated list of base64 identities:</string>
|
|||
<string>Enabled</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QWidget" name="i2pControl_horizontalLayoutWidget_8">
|
||||
<widget class="QWidget" name="dotnetControl_horizontalLayoutWidget_8">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
|
@ -1972,19 +1972,19 @@ Comma separated list of base64 identities:</string>
|
|||
<height>31</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="i2pControl_horizontalLayout_25">
|
||||
<layout class="QHBoxLayout" name="dotnetControl_horizontalLayout_25">
|
||||
<item>
|
||||
<widget class="QLabel" name="i2pControl_label_24">
|
||||
<widget class="QLabel" name="dotnetControl_label_24">
|
||||
<property name="text">
|
||||
<string>IP address to listen on:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="i2pControlAddressLineEdit"/>
|
||||
<widget class="QLineEdit" name="dotnetControlAddressLineEdit"/>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="i2pControl_horizontalSpacer_19">
|
||||
<spacer name="dotnetControl_horizontalSpacer_19">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
|
@ -1998,7 +1998,7 @@ Comma separated list of base64 identities:</string>
|
|||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="i2pControl_horizontalLayoutWidget_9">
|
||||
<widget class="QWidget" name="dotnetControl_horizontalLayoutWidget_9">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
|
@ -2007,16 +2007,16 @@ Comma separated list of base64 identities:</string>
|
|||
<height>31</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="i2pControl_horizontalLayout_26">
|
||||
<layout class="QHBoxLayout" name="dotnetControl_horizontalLayout_26">
|
||||
<item>
|
||||
<widget class="QLabel" name="i2pControl_label_25">
|
||||
<widget class="QLabel" name="dotnetControl_label_25">
|
||||
<property name="text">
|
||||
<string>Port to listen on:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="i2pControlPortLineEdit">
|
||||
<widget class="QLineEdit" name="dotnetControlPortLineEdit">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>80</width>
|
||||
|
@ -2026,7 +2026,7 @@ Comma separated list of base64 identities:</string>
|
|||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="i2pControl_horizontalSpacer_20">
|
||||
<spacer name="dotnetControl_horizontalSpacer_20">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
|
@ -2058,7 +2058,7 @@ Comma separated list of base64 identities:</string>
|
|||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="i2pControlPasswordLineEdit"/>
|
||||
<widget class="QLineEdit" name="dotnetControlPasswordLineEdit"/>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_21">
|
||||
|
@ -2093,10 +2093,10 @@ Comma separated list of base64 identities:</string>
|
|||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="i2pControlCertFileLineEdit"/>
|
||||
<widget class="QLineEdit" name="dotnetControlCertFileLineEdit"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="i2pControlCertFileBrowsePushButton">
|
||||
<widget class="QPushButton" name="dotnetControlCertFileBrowsePushButton">
|
||||
<property name="text">
|
||||
<string>Browse…</string>
|
||||
</property>
|
||||
|
@ -2122,10 +2122,10 @@ Comma separated list of base64 identities:</string>
|
|||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="i2pControlKeyFileLineEdit"/>
|
||||
<widget class="QLineEdit" name="dotnetControlKeyFileLineEdit"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="i2pControlKeyFileBrowsePushButton">
|
||||
<widget class="QPushButton" name="dotnetControlKeyFileBrowsePushButton">
|
||||
<property name="text">
|
||||
<string>Browse…</string>
|
||||
</property>
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
IDI_ICON1 ICON DISCARDABLE "resources/icons/mask.ico"
|
||||
|
||||
#include <windows.h> // needed for VERSIONINFO
|
||||
#include "../../libi2pd/version.h"
|
||||
#include "../../libdotnet/version.h"
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION I2PD_VERSION_MAJOR,I2PD_VERSION_MINOR,I2PD_VERSION_MICRO,I2PD_VERSION_PATCH
|
||||
PRODUCTVERSION I2P_VERSION_MAJOR,I2P_VERSION_MINOR,I2P_VERSION_MICRO,I2P_VERSION_PATCH
|
||||
FILEVERSION DOTNET_VERSION_MAJOR,DOTNET_VERSION_MINOR,DOTNET_VERSION_MICRO,DOTNET_VERSION_PATCH
|
||||
PRODUCTVERSION DOTNET_VERSION_MAJOR,DOTNET_VERSION_MINOR,DOTNET_VERSION_MICRO,DOTNET_VERSION_PATCH
|
||||
FILEOS VOS_NT_WINDOWS32
|
||||
FILETYPE VFT_APP
|
||||
BEGIN
|
||||
|
@ -14,14 +14,14 @@ BEGIN
|
|||
BLOCK "040904E4" // U.S. English - multilingual (hex)
|
||||
BEGIN
|
||||
VALUE "CompanyName", "PurpleI2P"
|
||||
VALUE "FileDescription", "I2Pd Qt"
|
||||
VALUE "FileVersion", I2PD_VERSION
|
||||
VALUE "InternalName", "i2pd-qt"
|
||||
VALUE "FileDescription", "DOTNET Qt"
|
||||
VALUE "FileVersion", DOTNET_VERSION
|
||||
VALUE "InternalName", "dotnet-qt"
|
||||
VALUE "LegalCopyright", "Copyright (C) 2013-2018, The PurpleI2P Project"
|
||||
VALUE "LegalTrademarks1", "Distributed under the BSD 3-Clause software license, see the accompanying file COPYING or https://opensource.org/licenses/BSD-3-Clause."
|
||||
VALUE "OriginalFilename", "i2pd_qt.exe"
|
||||
VALUE "ProductName", "i2pd-qt"
|
||||
VALUE "ProductVersion", I2P_VERSION
|
||||
VALUE "OriginalFilename", "dotnet_qt.exe"
|
||||
VALUE "ProductName", "dotnet-qt"
|
||||
VALUE "ProductVersion", DOTNET_VERSION
|
||||
END
|
||||
END
|
||||
|
||||
|
|
|
@ -2,68 +2,68 @@ QT += core gui
|
|||
|
||||
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
|
||||
|
||||
TARGET = i2pd_qt
|
||||
TARGET = dotnet_qt
|
||||
TEMPLATE = app
|
||||
QMAKE_CXXFLAGS *= -std=c++11 -ggdb
|
||||
DEFINES += USE_UPNP
|
||||
|
||||
SOURCES += DaemonQT.cpp mainwindow.cpp \
|
||||
../../libi2pd/api.cpp \
|
||||
../../libi2pd/Base.cpp \
|
||||
../../libi2pd/BloomFilter.cpp \
|
||||
../../libi2pd/Config.cpp \
|
||||
../../libi2pd/CPU.cpp \
|
||||
../../libi2pd/Crypto.cpp \
|
||||
../../libi2pd/CryptoKey.cpp \
|
||||
../../libi2pd/Datagram.cpp \
|
||||
../../libi2pd/Destination.cpp \
|
||||
../../libi2pd/Event.cpp \
|
||||
../../libi2pd/Family.cpp \
|
||||
../../libi2pd/FS.cpp \
|
||||
../../libi2pd/Garlic.cpp \
|
||||
../../libi2pd/Gost.cpp \
|
||||
../../libi2pd/Gzip.cpp \
|
||||
../../libi2pd/HTTP.cpp \
|
||||
../../libi2pd/I2NPProtocol.cpp \
|
||||
../../libi2pd/I2PEndian.cpp \
|
||||
../../libi2pd/Identity.cpp \
|
||||
../../libi2pd/LeaseSet.cpp \
|
||||
../../libi2pd/Log.cpp \
|
||||
../../libi2pd/NetDb.cpp \
|
||||
../../libi2pd/NetDbRequests.cpp \
|
||||
../../libi2pd/NTCPSession.cpp \
|
||||
../../libi2pd/Profiling.cpp \
|
||||
../../libi2pd/Reseed.cpp \
|
||||
../../libi2pd/RouterContext.cpp \
|
||||
../../libi2pd/RouterInfo.cpp \
|
||||
../../libi2pd/Signature.cpp \
|
||||
../../libi2pd/SSU.cpp \
|
||||
../../libi2pd/SSUData.cpp \
|
||||
../../libi2pd/SSUSession.cpp \
|
||||
../../libi2pd/Streaming.cpp \
|
||||
../../libi2pd/Timestamp.cpp \
|
||||
../../libi2pd/TransitTunnel.cpp \
|
||||
../../libi2pd/Transports.cpp \
|
||||
../../libi2pd/Tunnel.cpp \
|
||||
../../libi2pd/TunnelEndpoint.cpp \
|
||||
../../libi2pd/TunnelGateway.cpp \
|
||||
../../libi2pd/TunnelPool.cpp \
|
||||
../../libi2pd/util.cpp \
|
||||
../../libi2pd/Ed25519.cpp \
|
||||
../../libi2pd/Chacha20.cpp \
|
||||
../../libi2pd/Poly1305.cpp \
|
||||
../../libi2pd_client/AddressBook.cpp \
|
||||
../../libi2pd_client/BOB.cpp \
|
||||
../../libi2pd_client/ClientContext.cpp \
|
||||
../../libi2pd_client/HTTPProxy.cpp \
|
||||
../../libi2pd_client/I2CP.cpp \
|
||||
../../libi2pd_client/I2PService.cpp \
|
||||
../../libi2pd_client/I2PTunnel.cpp \
|
||||
../../libi2pd_client/MatchedDestination.cpp \
|
||||
../../libi2pd_client/SAM.cpp \
|
||||
../../libi2pd_client/SOCKS.cpp \
|
||||
../../libi2pd_client/Websocket.cpp \
|
||||
../../libi2pd_client/WebSocks.cpp \
|
||||
../../libdotnet/api.cpp \
|
||||
../../libdotnet/Base.cpp \
|
||||
../../libdotnet/BloomFilter.cpp \
|
||||
../../libdotnet/Config.cpp \
|
||||
../../libdotnet/CPU.cpp \
|
||||
../../libdotnet/Crypto.cpp \
|
||||
../../libdotnet/CryptoKey.cpp \
|
||||
../../libdotnet/Datagram.cpp \
|
||||
../../libdotnet/Destination.cpp \
|
||||
../../libdotnet/Event.cpp \
|
||||
../../libdotnet/Family.cpp \
|
||||
../../libdotnet/FS.cpp \
|
||||
../../libdotnet/Garlic.cpp \
|
||||
../../libdotnet/Gost.cpp \
|
||||
../../libdotnet/Gzip.cpp \
|
||||
../../libdotnet/HTTP.cpp \
|
||||
../../libdotnet/DNNPProtocol.cpp \
|
||||
../../libdotnet/DotNetEndian.cpp \
|
||||
../../libdotnet/Identity.cpp \
|
||||
../../libdotnet/LeaseSet.cpp \
|
||||
../../libdotnet/Log.cpp \
|
||||
../../libdotnet/NetDb.cpp \
|
||||
../../libdotnet/NetDbRequests.cpp \
|
||||
../../libdotnet/NTCPSession.cpp \
|
||||
../../libdotnet/Profiling.cpp \
|
||||
../../libdotnet/Reseed.cpp \
|
||||
../../libdotnet/RouterContext.cpp \
|
||||
../../libdotnet/RouterInfo.cpp \
|
||||
../../libdotnet/Signature.cpp \
|
||||
../../libdotnet/SSU.cpp \
|
||||
../../libdotnet/SSUData.cpp \
|
||||
../../libdotnet/SSUSession.cpp \
|
||||
../../libdotnet/Streaming.cpp \
|
||||
../../libdotnet/Timestamp.cpp \
|
||||
../../libdotnet/TransitTunnel.cpp \
|
||||
../../libdotnet/Transports.cpp \
|
||||
../../libdotnet/Tunnel.cpp \
|
||||
../../libdotnet/TunnelEndpoint.cpp \
|
||||
../../libdotnet/TunnelGateway.cpp \
|
||||
../../libdotnet/TunnelPool.cpp \
|
||||
../../libdotnet/util.cpp \
|
||||
../../libdotnet/Ed25519.cpp \
|
||||
../../libdotnet/Chacha20.cpp \
|
||||
../../libdotnet/Poly1305.cpp \
|
||||
../../libdotnet_client/AddressBook.cpp \
|
||||
../../libdotnet_client/BOB.cpp \
|
||||
../../libdotnet_client/ClientContext.cpp \
|
||||
../../libdotnet_client/HTTPProxy.cpp \
|
||||
../../libdotnet_client/DNCP.cpp \
|
||||
../../libdotnet_client/DotNetService.cpp \
|
||||
../../libdotnet_client/DotNetTunnel.cpp \
|
||||
../../libdotnet_client/MatchedDestination.cpp \
|
||||
../../libdotnet_client/SAM.cpp \
|
||||
../../libdotnet_client/SOCKS.cpp \
|
||||
../../libdotnet_client/Websocket.cpp \
|
||||
../../libdotnet_client/WebSocks.cpp \
|
||||
ClientTunnelPane.cpp \
|
||||
MainWindowItems.cpp \
|
||||
ServerTunnelPane.cpp \
|
||||
|
@ -72,8 +72,8 @@ SOURCES += DaemonQT.cpp mainwindow.cpp \
|
|||
TunnelPane.cpp \
|
||||
../../daemon/Daemon.cpp \
|
||||
../../daemon/HTTPServer.cpp \
|
||||
../../daemon/i2pd.cpp \
|
||||
../../daemon/I2PControl.cpp \
|
||||
../../daemon/dotnet.cpp \
|
||||
../../daemon/DotNetControl.cpp \
|
||||
../../daemon/UnixDaemon.cpp \
|
||||
../../daemon/UPnP.cpp \
|
||||
textbrowsertweaked1.cpp \
|
||||
|
@ -81,76 +81,76 @@ SOURCES += DaemonQT.cpp mainwindow.cpp \
|
|||
widgetlock.cpp \
|
||||
widgetlockregistry.cpp \
|
||||
logviewermanager.cpp \
|
||||
../../libi2pd/NTCP2.cpp
|
||||
../../libdotnet/NTCP2.cpp
|
||||
|
||||
#qt creator does not handle this well
|
||||
#SOURCES += $$files(../../libi2pd/*.cpp)
|
||||
#SOURCES += $$files(../../libi2pd_client/*.cpp)
|
||||
#SOURCES += $$files(../../libdotnet/*.cpp)
|
||||
#SOURCES += $$files(../../libdotnet_client/*.cpp)
|
||||
#SOURCES += $$files(../../daemon/*.cpp)
|
||||
#SOURCES += $$files(./*.cpp)
|
||||
|
||||
SOURCES -= ../../daemon/UnixDaemon.cpp
|
||||
|
||||
HEADERS += DaemonQT.h mainwindow.h \
|
||||
../../libi2pd/api.h \
|
||||
../../libi2pd/Base.h \
|
||||
../../libi2pd/BloomFilter.h \
|
||||
../../libi2pd/Config.h \
|
||||
../../libi2pd/Crypto.h \
|
||||
../../libi2pd/CryptoKey.h \
|
||||
../../libi2pd/Datagram.h \
|
||||
../../libi2pd/Destination.h \
|
||||
../../libi2pd/Event.h \
|
||||
../../libi2pd/Family.h \
|
||||
../../libi2pd/FS.h \
|
||||
../../libi2pd/Garlic.h \
|
||||
../../libi2pd/Gost.h \
|
||||
../../libi2pd/Gzip.h \
|
||||
../../libi2pd/HTTP.h \
|
||||
../../libi2pd/I2NPProtocol.h \
|
||||
../../libi2pd/I2PEndian.h \
|
||||
../../libi2pd/Identity.h \
|
||||
../../libi2pd/LeaseSet.h \
|
||||
../../libi2pd/LittleBigEndian.h \
|
||||
../../libi2pd/Log.h \
|
||||
../../libi2pd/NetDb.hpp \
|
||||
../../libi2pd/NetDbRequests.h \
|
||||
../../libi2pd/NTCPSession.h \
|
||||
../../libi2pd/Profiling.h \
|
||||
../../libi2pd/Queue.h \
|
||||
../../libi2pd/Reseed.h \
|
||||
../../libi2pd/RouterContext.h \
|
||||
../../libi2pd/RouterInfo.h \
|
||||
../../libi2pd/Signature.h \
|
||||
../../libi2pd/SSU.h \
|
||||
../../libi2pd/SSUData.h \
|
||||
../../libi2pd/SSUSession.h \
|
||||
../../libi2pd/Streaming.h \
|
||||
../../libi2pd/Tag.h \
|
||||
../../libi2pd/Timestamp.h \
|
||||
../../libi2pd/TransitTunnel.h \
|
||||
../../libi2pd/Transports.h \
|
||||
../../libi2pd/TransportSession.h \
|
||||
../../libi2pd/Tunnel.h \
|
||||
../../libi2pd/TunnelBase.h \
|
||||
../../libi2pd/TunnelConfig.h \
|
||||
../../libi2pd/TunnelEndpoint.h \
|
||||
../../libi2pd/TunnelGateway.h \
|
||||
../../libi2pd/TunnelPool.h \
|
||||
../../libi2pd/util.h \
|
||||
../../libi2pd/version.h \
|
||||
../../libi2pd_client/AddressBook.h \
|
||||
../../libi2pd_client/BOB.h \
|
||||
../../libi2pd_client/ClientContext.h \
|
||||
../../libi2pd_client/HTTPProxy.h \
|
||||
../../libi2pd_client/I2CP.h \
|
||||
../../libi2pd_client/I2PService.h \
|
||||
../../libi2pd_client/I2PTunnel.h \
|
||||
../../libi2pd_client/MatchedDestination.h \
|
||||
../../libi2pd_client/SAM.h \
|
||||
../../libi2pd_client/SOCKS.h \
|
||||
../../libi2pd_client/Websocket.h \
|
||||
../../libi2pd_client/WebSocks.h \
|
||||
../../libdotnet/api.h \
|
||||
../../libdotnet/Base.h \
|
||||
../../libdotnet/BloomFilter.h \
|
||||
../../libdotnet/Config.h \
|
||||
../../libdotnet/Crypto.h \
|
||||
../../libdotnet/CryptoKey.h \
|
||||
../../libdotnet/Datagram.h \
|
||||
../../libdotnet/Destination.h \
|
||||
../../libdotnet/Event.h \
|
||||
../../libdotnet/Family.h \
|
||||
../../libdotnet/FS.h \
|
||||
../../libdotnet/Garlic.h \
|
||||
../../libdotnet/Gost.h \
|
||||
../../libdotnet/Gzip.h \
|
||||
../../libdotnet/HTTP.h \
|
||||
../../libdotnet/DNNPProtocol.h \
|
||||
../../libdotnet/DotNetEndian.h \
|
||||
../../libdotnet/Identity.h \
|
||||
../../libdotnet/LeaseSet.h \
|
||||
../../libdotnet/LittleBigEndian.h \
|
||||
../../libdotnet/Log.h \
|
||||
../../libdotnet/NetDb.hpp \
|
||||
../../libdotnet/NetDbRequests.h \
|
||||
../../libdotnet/NTCPSession.h \
|
||||
../../libdotnet/Profiling.h \
|
||||
../../libdotnet/Queue.h \
|
||||
../../libdotnet/Reseed.h \
|
||||
../../libdotnet/RouterContext.h \
|
||||
../../libdotnet/RouterInfo.h \
|
||||
../../libdotnet/Signature.h \
|
||||
../../libdotnet/SSU.h \
|
||||
../../libdotnet/SSUData.h \
|
||||
../../libdotnet/SSUSession.h \
|
||||
../../libdotnet/Streaming.h \
|
||||
../../libdotnet/Tag.h \
|
||||
../../libdotnet/Timestamp.h \
|
||||
../../libdotnet/TransitTunnel.h \
|
||||
../../libdotnet/Transports.h \
|
||||
../../libdotnet/TransportSession.h \
|
||||
../../libdotnet/Tunnel.h \
|
||||
../../libdotnet/TunnelBase.h \
|
||||
../../libdotnet/TunnelConfig.h \
|
||||
../../libdotnet/TunnelEndpoint.h \
|
||||
../../libdotnet/TunnelGateway.h \
|
||||
../../libdotnet/TunnelPool.h \
|
||||
../../libdotnet/util.h \
|
||||
../../libdotnet/version.h \
|
||||
../../libdotnet_client/AddressBook.h \
|
||||
../../libdotnet_client/BOB.h \
|
||||
../../libdotnet_client/ClientContext.h \
|
||||
../../libdotnet_client/HTTPProxy.h \
|
||||
../../libdotnet_client/DNCP.h \
|
||||
../../libdotnet_client/DotNetService.h \
|
||||
../../libdotnet_client/DotNetTunnel.h \
|
||||
../../libdotnet_client/MatchedDestination.h \
|
||||
../../libdotnet_client/SAM.h \
|
||||
../../libdotnet_client/SOCKS.h \
|
||||
../../libdotnet_client/Websocket.h \
|
||||
../../libdotnet_client/WebSocks.h \
|
||||
ClientTunnelPane.h \
|
||||
MainWindowItems.h \
|
||||
ServerTunnelPane.h \
|
||||
|
@ -160,18 +160,18 @@ HEADERS += DaemonQT.h mainwindow.h \
|
|||
TunnelsPageUpdateListener.h \
|
||||
../../daemon/Daemon.h \
|
||||
../../daemon/HTTPServer.h \
|
||||
../../daemon/I2PControl.h \
|
||||
../../daemon/DotNetControl.h \
|
||||
../../daemon/UPnP.h \
|
||||
textbrowsertweaked1.h \
|
||||
pagewithbackbutton.h \
|
||||
widgetlock.h \
|
||||
widgetlockregistry.h \
|
||||
i2pd.rc \
|
||||
i2pd.rc \
|
||||
dotnet.rc \
|
||||
dotnet.rc \
|
||||
logviewermanager.h
|
||||
|
||||
INCLUDEPATH += ../../libi2pd
|
||||
INCLUDEPATH += ../../libi2pd_client
|
||||
INCLUDEPATH += ../../libdotnet
|
||||
INCLUDEPATH += ../../libdotnet_client
|
||||
INCLUDEPATH += ../../daemon
|
||||
INCLUDEPATH += .
|
||||
|
||||
|
@ -208,7 +208,7 @@ linux:!android {
|
|||
|
||||
windows {
|
||||
message("Using Windows settings")
|
||||
RC_FILE = i2pd.rc
|
||||
RC_FILE = dotnet.rc
|
||||
DEFINES += BOOST_USE_WINDOWS_H WINDOWS _WINDOWS WIN32_LEAN_AND_MEAN MINIUPNP_STATICLIB
|
||||
DEFINES -= UNICODE _UNICODE
|
||||
BOOST_SUFFIX = -mt
|
||||
|
@ -237,8 +237,8 @@ windows {
|
|||
!android:!symbian:!maemo5:!simulator {
|
||||
message("Build with a system tray icon")
|
||||
# see also http://doc.qt.io/qt-4.8/qt-desktop-systray-systray-pro.html for example on wince*
|
||||
#sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS i2pd_qt.pro resources images
|
||||
RESOURCES = i2pd.qrc
|
||||
#sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS dotnet_qt.pro resources images
|
||||
RESOURCES = dotnet.qrc
|
||||
QT += xml
|
||||
#INSTALLS += sources
|
||||
}
|
||||
|
|
|
@ -9,10 +9,10 @@ LogViewerManager::LogViewerManager(std::shared_ptr<std::iostream> logStream_,
|
|||
controllerForBgThread(nullptr)
|
||||
{
|
||||
assert(logTextEdit!=nullptr);
|
||||
controllerForBgThread=new i2pd::qt::logviewer::Controller(*this);
|
||||
controllerForBgThread=new dotnet::qt::logviewer::Controller(*this);
|
||||
}
|
||||
|
||||
namespace i2pd {
|
||||
namespace dotnet {
|
||||
namespace qt {
|
||||
namespace logviewer {
|
||||
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
|
||||
class LogViewerManager;
|
||||
|
||||
namespace i2pd {
|
||||
namespace dotnet {
|
||||
namespace qt {
|
||||
namespace logviewer {
|
||||
|
||||
|
@ -73,7 +73,7 @@ class LogViewerManager : public QObject
|
|||
private:
|
||||
std::shared_ptr<std::iostream> logStream;
|
||||
QPlainTextEdit* logTextEdit;
|
||||
i2pd::qt::logviewer::Controller* controllerForBgThread;
|
||||
dotnet::qt::logviewer::Controller* controllerForBgThread;
|
||||
public:
|
||||
//also starts a bg thread (QTimer) polling logStream->readsome(buf, n)
|
||||
explicit LogViewerManager(std::shared_ptr<std::iostream> logStream_,
|
||||
|
@ -81,7 +81,7 @@ public:
|
|||
QObject *parent);
|
||||
//also deallocs the bg thread (QTimer)
|
||||
virtual ~LogViewerManager(){}
|
||||
const i2pd::qt::logviewer::Controller& getControllerForBgThread() {
|
||||
const dotnet::qt::logviewer::Controller& getControllerForBgThread() {
|
||||
assert(controllerForBgThread!=nullptr);
|
||||
return *controllerForBgThread;
|
||||
}
|
||||
|
|
|
@ -46,7 +46,7 @@ MainWindow::MainWindow(std::shared_ptr<std::iostream> logStream_, QWidget *paren
|
|||
,uiSettings(new Ui::GeneralSettingsContentsForm)
|
||||
,routerCommandsParent(new QWidget(this))
|
||||
,widgetlocks()
|
||||
,i2pController(nullptr)
|
||||
,dotnetController(nullptr)
|
||||
,configItems()
|
||||
,datadir()
|
||||
,confpath()
|
||||
|
@ -66,7 +66,7 @@ MainWindow::MainWindow(std::shared_ptr<std::iostream> logStream_, QWidget *paren
|
|||
ui->verticalLayout->setGeometry(QRect(0,0,171,ui->verticalLayout->geometry().height()));
|
||||
//ui->statusButtonsPane->adjustSize();
|
||||
//ui->centralWidget->adjustSize();
|
||||
setWindowTitle(QApplication::translate("AppTitle","I2PD"));
|
||||
setWindowTitle(QApplication::translate("AppTitle","DOTNET"));
|
||||
|
||||
//TODO handle resizes and change the below into resize() call
|
||||
setFixedHeight(550);
|
||||
|
@ -126,7 +126,7 @@ MainWindow::MainWindow(std::shared_ptr<std::iostream> logStream_, QWidget *paren
|
|||
QObject::connect(statusButtonsUI->tunnelsPushButton, SIGNAL(released()), this, SLOT(showStatus_tunnels_Page()));
|
||||
QObject::connect(statusButtonsUI->transitTunnelsPushButton, SIGNAL(released()), this, SLOT(showStatus_transit_tunnels_Page()));
|
||||
QObject::connect(statusButtonsUI->transportsPushButton, SIGNAL(released()), this, SLOT(showStatus_transports_Page()));
|
||||
QObject::connect(statusButtonsUI->i2pTunnelsPushButton, SIGNAL(released()), this, SLOT(showStatus_i2p_tunnels_Page()));
|
||||
QObject::connect(statusButtonsUI->dotnetTunnelsPushButton, SIGNAL(released()), this, SLOT(showStatus_dotnet_tunnels_Page()));
|
||||
QObject::connect(statusButtonsUI->samSessionsPushButton, SIGNAL(released()), this, SLOT(showStatus_sam_sessions_Page()));
|
||||
|
||||
QObject::connect(textBrowser, SIGNAL(mouseReleased()), this, SLOT(statusHtmlPageMouseReleased()));
|
||||
|
@ -147,7 +147,7 @@ MainWindow::MainWindow(std::shared_ptr<std::iostream> logStream_, QWidget *paren
|
|||
QObject::connect(ui->fastQuitPushButton, SIGNAL(released()), this, SLOT(handleQuitButton()));
|
||||
QObject::connect(ui->gracefulQuitPushButton, SIGNAL(released()), this, SLOT(handleGracefulQuitButton()));
|
||||
|
||||
QObject::connect(ui->doRestartI2PDPushButton, SIGNAL(released()), this, SLOT(handleDoRestartButton()));
|
||||
QObject::connect(ui->doRestartDOTNETPushButton, SIGNAL(released()), this, SLOT(handleDoRestartButton()));
|
||||
|
||||
# define OPTION(section,option,defaultValueGetter) ConfigOption(QString(section),QString(option))
|
||||
|
||||
|
@ -192,7 +192,7 @@ MainWindow::MainWindow(std::shared_ptr<std::iostream> logStream_, QWidget *paren
|
|||
initIPAddressBox( OPTION("http","address",[]{return "";}), uiSettings->webconsoleAddrLineEdit, tr("HTTP webconsole -> IP address"));
|
||||
initTCPPortBox( OPTION("http","port",[]{return "7070";}), uiSettings->webconsolePortLineEdit, tr("HTTP webconsole -> Port"));
|
||||
initCheckBox( OPTION("http","auth",[]{return "";}), uiSettings->webconsoleBasicAuthCheckBox);
|
||||
initStringBox( OPTION("http","user",[]{return "i2pd";}), uiSettings->webconsoleUserNameLineEditBasicAuth);
|
||||
initStringBox( OPTION("http","user",[]{return "dotnet";}), uiSettings->webconsoleUserNameLineEditBasicAuth);
|
||||
initStringBox( OPTION("http","pass",[]{return "";}), uiSettings->webconsolePasswordLineEditBasicAuth);
|
||||
|
||||
initCheckBox( OPTION("httpproxy","enabled",[]{return "";}), uiSettings->httpProxyEnabledCheckBox);
|
||||
|
@ -226,19 +226,19 @@ MainWindow::MainWindow(std::shared_ptr<std::iostream> logStream_, QWidget *paren
|
|||
initIPAddressBox( OPTION("bob","address",[]{return "";}), uiSettings->bobAddressLineEdit, tr("BOB -> IP address"));
|
||||
initTCPPortBox( OPTION("bob","port",[]{return "2827";}), uiSettings->bobPortLineEdit, tr("BOB -> Port"));
|
||||
|
||||
initCheckBox( OPTION("i2cp","enabled",[]{return "false";}), uiSettings->i2cpEnabledCheckBox);
|
||||
initIPAddressBox( OPTION("i2cp","address",[]{return "";}), uiSettings->i2cpAddressLineEdit, tr("I2CP -> IP address"));
|
||||
initTCPPortBox( OPTION("i2cp","port",[]{return "7654";}), uiSettings->i2cpPortLineEdit, tr("I2CP -> Port"));
|
||||
initCheckBox( OPTION("dncp","enabled",[]{return "false";}), uiSettings->dncpEnabledCheckBox);
|
||||
initIPAddressBox( OPTION("dncp","address",[]{return "";}), uiSettings->dncpAddressLineEdit, tr("DNCP -> IP address"));
|
||||
initTCPPortBox( OPTION("dncp","port",[]{return "7654";}), uiSettings->dncpPortLineEdit, tr("DNCP -> Port"));
|
||||
|
||||
initCheckBox( OPTION("i2pcontrol","enabled",[]{return "false";}), uiSettings->i2pControlEnabledCheckBox);
|
||||
initIPAddressBox( OPTION("i2pcontrol","address",[]{return "";}), uiSettings->i2pControlAddressLineEdit, tr("I2PControl -> IP address"));
|
||||
initTCPPortBox( OPTION("i2pcontrol","port",[]{return "7650";}), uiSettings->i2pControlPortLineEdit, tr("I2PControl -> Port"));
|
||||
initStringBox( OPTION("i2pcontrol","password",[]{return "";}), uiSettings->i2pControlPasswordLineEdit);
|
||||
initFileChooser( OPTION("i2pcontrol","cert",[]{return "i2pcontrol.crt.pem";}), uiSettings->i2pControlCertFileLineEdit, uiSettings->i2pControlCertFileBrowsePushButton);
|
||||
initFileChooser( OPTION("i2pcontrol","key",[]{return "i2pcontrol.key.pem";}), uiSettings->i2pControlKeyFileLineEdit, uiSettings->i2pControlKeyFileBrowsePushButton);
|
||||
initCheckBox( OPTION("dotnetcontrol","enabled",[]{return "false";}), uiSettings->dotnetControlEnabledCheckBox);
|
||||
initIPAddressBox( OPTION("dotnetcontrol","address",[]{return "";}), uiSettings->dotnetControlAddressLineEdit, tr("DotNetControl -> IP address"));
|
||||
initTCPPortBox( OPTION("dotnetcontrol","port",[]{return "7650";}), uiSettings->dotnetControlPortLineEdit, tr("DotNetControl -> Port"));
|
||||
initStringBox( OPTION("dotnetcontrol","password",[]{return "";}), uiSettings->dotnetControlPasswordLineEdit);
|
||||
initFileChooser( OPTION("dotnetcontrol","cert",[]{return "dotnetcontrol.crt.pem";}), uiSettings->dotnetControlCertFileLineEdit, uiSettings->dotnetControlCertFileBrowsePushButton);
|
||||
initFileChooser( OPTION("dotnetcontrol","key",[]{return "dotnetcontrol.key.pem";}), uiSettings->dotnetControlKeyFileLineEdit, uiSettings->dotnetControlKeyFileBrowsePushButton);
|
||||
|
||||
initCheckBox( OPTION("upnp","enabled",[]{return "true";}), uiSettings->enableUPnPCheckBox);
|
||||
initStringBox( OPTION("upnp","name",[]{return "I2Pd";}), uiSettings->upnpNameLineEdit);
|
||||
initStringBox( OPTION("upnp","name",[]{return "DOTNET";}), uiSettings->upnpNameLineEdit);
|
||||
|
||||
initCheckBox( OPTION("precomputation","elgamal",[]{return "false";}), uiSettings->useElGamalPrecomputedTablesCheckBox);
|
||||
|
||||
|
@ -319,7 +319,7 @@ void MainWindow::logDestinationComboBoxValueChanged(const QString & text) {
|
|||
|
||||
|
||||
void MainWindow::updateRouterCommandsButtons() {
|
||||
bool acceptsTunnels = i2p::context.AcceptsTunnels ();
|
||||
bool acceptsTunnels = dotnet::context.AcceptsTunnels ();
|
||||
routerCommandsUI->declineTransitTunnelsPushButton->setEnabled(acceptsTunnels);
|
||||
routerCommandsUI->acceptTransitTunnelsPushButton->setEnabled(!acceptsTunnels);
|
||||
}
|
||||
|
@ -360,16 +360,16 @@ QString MainWindow::getStatusPageHtml(bool showHiddenInfo) {
|
|||
|
||||
switch (statusPage) {
|
||||
case main_page:
|
||||
i2p::http::ShowStatus(s, showHiddenInfo, i2p::http::OutputFormatEnum::forQtUi);
|
||||
dotnet::http::ShowStatus(s, showHiddenInfo, dotnet::http::OutputFormatEnum::forQtUi);
|
||||
break;
|
||||
case commands: break;
|
||||
case local_destinations: i2p::http::ShowLocalDestinations(s);break;
|
||||
case leasesets: i2p::http::ShowLeasesSets(s); break;
|
||||
case tunnels: i2p::http::ShowTunnels(s); break;
|
||||
case transit_tunnels: i2p::http::ShowTransitTunnels(s); break;
|
||||
case transports: i2p::http::ShowTransports(s); break;
|
||||
case i2p_tunnels: i2p::http::ShowI2PTunnels(s); break;
|
||||
case sam_sessions: i2p::http::ShowSAMSessions(s); break;
|
||||
case local_destinations: dotnet::http::ShowLocalDestinations(s);break;
|
||||
case leasesets: dotnet::http::ShowLeasesSets(s); break;
|
||||
case tunnels: dotnet::http::ShowTunnels(s); break;
|
||||
case transit_tunnels: dotnet::http::ShowTransitTunnels(s); break;
|
||||
case transports: dotnet::http::ShowTransports(s); break;
|
||||
case dotnet_tunnels: dotnet::http::ShowDotNetTunnels(s); break;
|
||||
case sam_sessions: dotnet::http::ShowSAMSessions(s); break;
|
||||
default: assert(false); break;
|
||||
}
|
||||
|
||||
|
@ -384,7 +384,7 @@ void MainWindow::showStatus_leasesets_Page() { showStatusPage(StatusPage::leases
|
|||
void MainWindow::showStatus_tunnels_Page() { showStatusPage(StatusPage::tunnels); }
|
||||
void MainWindow::showStatus_transit_tunnels_Page() { showStatusPage(StatusPage::transit_tunnels); }
|
||||
void MainWindow::showStatus_transports_Page() { showStatusPage(StatusPage::transports); }
|
||||
void MainWindow::showStatus_i2p_tunnels_Page() { showStatusPage(StatusPage::i2p_tunnels); }
|
||||
void MainWindow::showStatus_dotnet_tunnels_Page() { showStatusPage(StatusPage::dotnet_tunnels); }
|
||||
void MainWindow::showStatus_sam_sessions_Page() { showStatusPage(StatusPage::sam_sessions); }
|
||||
|
||||
|
||||
|
@ -465,7 +465,7 @@ void MainWindow::setIcon() {
|
|||
trayIcon->setIcon(icon);
|
||||
setWindowIcon(icon);
|
||||
|
||||
trayIcon->setToolTip(QApplication::translate("MainWindow", "i2pd", 0));
|
||||
trayIcon->setToolTip(QApplication::translate("MainWindow", "dotnet", 0));
|
||||
}
|
||||
|
||||
void MainWindow::iconActivated(QSystemTrayIcon::ActivationReason reason) {
|
||||
|
@ -484,10 +484,10 @@ void MainWindow::iconActivated(QSystemTrayIcon::ActivationReason reason) {
|
|||
void MainWindow::closeEvent(QCloseEvent *event) {
|
||||
if(quitting){ QMainWindow::closeEvent(event); return; }
|
||||
if (trayIcon->isVisible()) {
|
||||
QMessageBox::information(this, tr("i2pd"),
|
||||
QMessageBox::information(this, tr("dotnet"),
|
||||
tr("The program will keep running in the "
|
||||
"system tray. To gracefully terminate the program, "
|
||||
"choose <b>Graceful Quit</b> at the main i2pd window."));
|
||||
"choose <b>Graceful Quit</b> at the main dotnet window."));
|
||||
hide();
|
||||
event->ignore();
|
||||
}
|
||||
|
@ -509,14 +509,14 @@ void MainWindow::handleGracefulQuitButton() {
|
|||
ui->gracefulQuitPushButton->setEnabled(false);
|
||||
ui->gracefulQuitPushButton->adjustSize();
|
||||
ui->quitPage->adjustSize();
|
||||
i2p::context.SetAcceptsTunnels (false); // stop accpting tunnels
|
||||
dotnet::context.SetAcceptsTunnels (false); // stop accpting tunnels
|
||||
QTimer::singleShot(10*60*1000//millis
|
||||
, this, SLOT(handleGracefulQuitTimerEvent()));
|
||||
}
|
||||
|
||||
void MainWindow::handleDoRestartButton() {
|
||||
qDebug()<<"Do Restart pressed.";
|
||||
emit i2pController->restartDaemon();
|
||||
emit dotnetController->restartDaemon();
|
||||
}
|
||||
|
||||
|
||||
|
@ -597,37 +597,37 @@ NonGUIOptionItem* MainWindow::initNonGUIOption(ConfigOption option) {
|
|||
void MainWindow::loadAllConfigs(){
|
||||
|
||||
//BORROWED FROM ??? //TODO move this code into single location
|
||||
std::string config; i2p::config::GetOption("conf", config);
|
||||
std::string datadir; i2p::config::GetOption("datadir", datadir);
|
||||
std::string config; dotnet::config::GetOption("conf", config);
|
||||
std::string datadir; dotnet::config::GetOption("datadir", datadir);
|
||||
bool service = false;
|
||||
#ifndef _WIN32
|
||||
i2p::config::GetOption("service", service);
|
||||
dotnet::config::GetOption("service", service);
|
||||
#endif
|
||||
i2p::fs::DetectDataDir(datadir, service);
|
||||
i2p::fs::Init();
|
||||
dotnet::fs::DetectDataDir(datadir, service);
|
||||
dotnet::fs::Init();
|
||||
|
||||
datadir = i2p::fs::GetDataDir();
|
||||
datadir = dotnet::fs::GetDataDir();
|
||||
// TODO: drop old name detection in v2.8.0
|
||||
if (config == "")
|
||||
{
|
||||
config = i2p::fs::DataDirPath("i2p.conf");
|
||||
if (i2p::fs::Exists (config)) {
|
||||
LogPrint(eLogWarning, "Daemon: please rename i2p.conf to i2pd.conf here: ", config);
|
||||
config = dotnet::fs::DataDirPath("dotnet.conf");
|
||||
if (dotnet::fs::Exists (config)) {
|
||||
LogPrint(eLogWarning, "Daemon: please rename dotnet.conf to dotnet.conf here: ", config);
|
||||
} else {
|
||||
config = i2p::fs::DataDirPath("i2pd.conf");
|
||||
/*if (!i2p::fs::Exists (config)) {}*/
|
||||
config = dotnet::fs::DataDirPath("dotnet.conf");
|
||||
/*if (!dotnet::fs::Exists (config)) {}*/
|
||||
}
|
||||
}
|
||||
|
||||
//BORROWED FROM ClientContext.cpp //TODO move this code into single location
|
||||
std::string tunConf; i2p::config::GetOption("tunconf", tunConf);
|
||||
std::string tunConf; dotnet::config::GetOption("tunconf", tunConf);
|
||||
if (tunConf == "") {
|
||||
// TODO: cleanup this in 2.8.0
|
||||
tunConf = i2p::fs::DataDirPath ("tunnels.cfg");
|
||||
if (i2p::fs::Exists(tunConf)) {
|
||||
tunConf = dotnet::fs::DataDirPath ("tunnels.cfg");
|
||||
if (dotnet::fs::Exists(tunConf)) {
|
||||
LogPrint(eLogWarning, "FS: please rename tunnels.cfg -> tunnels.conf here: ", tunConf);
|
||||
} else {
|
||||
tunConf = i2p::fs::DataDirPath ("tunnels.conf");
|
||||
tunConf = dotnet::fs::DataDirPath ("tunnels.conf");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -803,7 +803,7 @@ void MainWindow::SaveTunnelsConfig() {
|
|||
TunnelConfig* tunconf = it->second;
|
||||
tunconf->saveHeaderToStringStream(out);
|
||||
tunconf->saveToStringStream(out);
|
||||
tunconf->saveI2CPParametersToStringStream(out);
|
||||
tunconf->saveDNCPParametersToStringStream(out);
|
||||
}
|
||||
|
||||
using namespace std;
|
||||
|
@ -816,7 +816,7 @@ void MainWindow::SaveTunnelsConfig() {
|
|||
outfile << out.str().c_str();
|
||||
outfile.close();
|
||||
|
||||
i2p::client::context.ReloadConfig();
|
||||
dotnet::client::context.ReloadConfig();
|
||||
|
||||
}
|
||||
|
||||
|
@ -842,21 +842,21 @@ void MainWindow::addClientTunnelPushButtonReleased() {
|
|||
CreateDefaultClientTunnel();
|
||||
}
|
||||
|
||||
void MainWindow::setI2PController(i2p::qt::Controller* controller_) {
|
||||
this->i2pController = controller_;
|
||||
void MainWindow::setDotNetController(dotnet::qt::Controller* controller_) {
|
||||
this->dotnetController = controller_;
|
||||
}
|
||||
|
||||
void MainWindow::runPeerTest() {
|
||||
i2p::transport::transports.PeerTest();
|
||||
dotnet::transport::transports.PeerTest();
|
||||
}
|
||||
|
||||
void MainWindow::enableTransit() {
|
||||
i2p::context.SetAcceptsTunnels(true);
|
||||
dotnet::context.SetAcceptsTunnels(true);
|
||||
updateRouterCommandsButtons();
|
||||
}
|
||||
|
||||
void MainWindow::disableTransit() {
|
||||
i2p::context.SetAcceptsTunnels(false);
|
||||
dotnet::context.SetAcceptsTunnels(false);
|
||||
updateRouterCommandsButtons();
|
||||
}
|
||||
|
||||
|
@ -875,7 +875,7 @@ void MainWindow::anchorClickedHandler(const QUrl & link) {
|
|||
pageWithBackButton->show();
|
||||
textBrowser->hide();
|
||||
std::stringstream s;
|
||||
i2p::http::ShowLocalDestination(s,str.toStdString());
|
||||
dotnet::http::ShowLocalDestination(s,str.toStdString());
|
||||
childTextBrowser->setHtml(QString::fromStdString(s.str()));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -111,7 +111,7 @@ public:
|
|||
optName+=option.option.toStdString();
|
||||
//qDebug() << "loadFromConfigOption[" << optName.c_str() << "]";
|
||||
boost::any programOption;
|
||||
i2p::config::GetOptionAsAny(optName, programOption);
|
||||
dotnet::config::GetOptionAsAny(optName, programOption);
|
||||
optionValue=programOption.empty()?boost::any(std::string(""))
|
||||
:boost::any_cast<boost::program_options::variable_value>(programOption).value();
|
||||
}
|
||||
|
@ -365,11 +365,11 @@ namespace Ui {
|
|||
class GeneralSettingsContentsForm;
|
||||
}
|
||||
|
||||
using namespace i2p::client;
|
||||
using namespace dotnet::client;
|
||||
|
||||
class TunnelPane;
|
||||
|
||||
using namespace i2p::qt;
|
||||
using namespace dotnet::qt;
|
||||
|
||||
class Controller;
|
||||
|
||||
|
@ -381,7 +381,7 @@ public:
|
|||
explicit MainWindow(std::shared_ptr<std::iostream> logStream_, QWidget *parent=nullptr);
|
||||
~MainWindow();
|
||||
|
||||
void setI2PController(i2p::qt::Controller* controller_);
|
||||
void setDotNetController(dotnet::qt::Controller* controller_);
|
||||
|
||||
void highlightWrongInput(QString warningText, QWidget* widgetToFocus);
|
||||
|
||||
|
@ -393,7 +393,7 @@ public:
|
|||
|
||||
private:
|
||||
enum StatusPage {main_page, commands, local_destinations, leasesets, tunnels, transit_tunnels,
|
||||
transports, i2p_tunnels, sam_sessions};
|
||||
transports, dotnet_tunnels, sam_sessions};
|
||||
private slots:
|
||||
void updated();
|
||||
|
||||
|
@ -422,7 +422,7 @@ public slots:
|
|||
void showStatus_tunnels_Page();
|
||||
void showStatus_transit_tunnels_Page();
|
||||
void showStatus_transports_Page();
|
||||
void showStatus_i2p_tunnels_Page();
|
||||
void showStatus_dotnet_tunnels_Page();
|
||||
void showStatus_sam_sessions_Page();
|
||||
|
||||
void showLogViewerPage();
|
||||
|
@ -465,7 +465,7 @@ private:
|
|||
|
||||
widgetlockregistry widgetlocks;
|
||||
|
||||
i2p::qt::Controller* i2pController;
|
||||
dotnet::qt::Controller* dotnetController;
|
||||
|
||||
protected:
|
||||
|
||||
|
@ -532,30 +532,30 @@ private:
|
|||
void deleteTunnelForms();
|
||||
|
||||
template<typename Section, typename Type>
|
||||
std::string GetI2CPOption (const Section& section, const std::string& name, const Type& value) const
|
||||
std::string GetDNCPOption (const Section& section, const std::string& name, const Type& value) const
|
||||
{
|
||||
return section.second.get (boost::property_tree::ptree::path_type (name, '/'), std::to_string (value));
|
||||
}
|
||||
|
||||
template<typename Section>
|
||||
void ReadI2CPOptions (const Section& section, std::map<std::string, std::string>& options, I2CPParameters& param
|
||||
void ReadDNCPOptions (const Section& section, std::map<std::string, std::string>& options, DNCPParameters& param
|
||||
/*TODO fill param*/) const
|
||||
{
|
||||
std::string _INBOUND_TUNNEL_LENGTH = options[I2CP_PARAM_INBOUND_TUNNEL_LENGTH] = GetI2CPOption (section, I2CP_PARAM_INBOUND_TUNNEL_LENGTH, DEFAULT_INBOUND_TUNNEL_LENGTH);
|
||||
std::string _INBOUND_TUNNEL_LENGTH = options[DNCP_PARAM_INBOUND_TUNNEL_LENGTH] = GetDNCPOption (section, DNCP_PARAM_INBOUND_TUNNEL_LENGTH, DEFAULT_INBOUND_TUNNEL_LENGTH);
|
||||
param.setInbound_length(QString(_INBOUND_TUNNEL_LENGTH.c_str()));
|
||||
std::string _OUTBOUND_TUNNEL_LENGTH = options[I2CP_PARAM_OUTBOUND_TUNNEL_LENGTH] = GetI2CPOption (section, I2CP_PARAM_OUTBOUND_TUNNEL_LENGTH, DEFAULT_OUTBOUND_TUNNEL_LENGTH);
|
||||
std::string _OUTBOUND_TUNNEL_LENGTH = options[DNCP_PARAM_OUTBOUND_TUNNEL_LENGTH] = GetDNCPOption (section, DNCP_PARAM_OUTBOUND_TUNNEL_LENGTH, DEFAULT_OUTBOUND_TUNNEL_LENGTH);
|
||||
param.setOutbound_length(QString(_OUTBOUND_TUNNEL_LENGTH.c_str()));
|
||||
std::string _INBOUND_TUNNELS_QUANTITY = options[I2CP_PARAM_INBOUND_TUNNELS_QUANTITY] = GetI2CPOption (section, I2CP_PARAM_INBOUND_TUNNELS_QUANTITY, DEFAULT_INBOUND_TUNNELS_QUANTITY);
|
||||
std::string _INBOUND_TUNNELS_QUANTITY = options[DNCP_PARAM_INBOUND_TUNNELS_QUANTITY] = GetDNCPOption (section, DNCP_PARAM_INBOUND_TUNNELS_QUANTITY, DEFAULT_INBOUND_TUNNELS_QUANTITY);
|
||||
param.setInbound_quantity( QString(_INBOUND_TUNNELS_QUANTITY.c_str()));
|
||||
std::string _OUTBOUND_TUNNELS_QUANTITY = options[I2CP_PARAM_OUTBOUND_TUNNELS_QUANTITY] = GetI2CPOption (section, I2CP_PARAM_OUTBOUND_TUNNELS_QUANTITY, DEFAULT_OUTBOUND_TUNNELS_QUANTITY);
|
||||
std::string _OUTBOUND_TUNNELS_QUANTITY = options[DNCP_PARAM_OUTBOUND_TUNNELS_QUANTITY] = GetDNCPOption (section, DNCP_PARAM_OUTBOUND_TUNNELS_QUANTITY, DEFAULT_OUTBOUND_TUNNELS_QUANTITY);
|
||||
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[DNCP_PARAM_TAGS_TO_SEND] = GetDNCPOption (section, DNCP_PARAM_TAGS_TO_SEND, DEFAULT_TAGS_TO_SEND);
|
||||
param.setCrypto_tagsToSend(QString(_TAGS_TO_SEND.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_MAX_TUNNEL_LATENCY] = GetI2CPOption(section, I2CP_PARAM_MAX_TUNNEL_LATENCY, DEFAULT_MAX_TUNNEL_LATENCY);//TODO include into param
|
||||
options[DNCP_PARAM_MIN_TUNNEL_LATENCY] = GetDNCPOption(section, DNCP_PARAM_MIN_TUNNEL_LATENCY, DEFAULT_MIN_TUNNEL_LATENCY);//TODO include into param
|
||||
options[DNCP_PARAM_MAX_TUNNEL_LATENCY] = GetDNCPOption(section, DNCP_PARAM_MAX_TUNNEL_LATENCY, DEFAULT_MAX_TUNNEL_LATENCY);//TODO include into param
|
||||
}
|
||||
|
||||
void CreateDefaultI2CPOptions (I2CPParameters& param
|
||||
void CreateDefaultDNCPOptions (DNCPParameters& param
|
||||
/*TODO fill param*/) const
|
||||
{
|
||||
const int _INBOUND_TUNNEL_LENGTH = DEFAULT_INBOUND_TUNNEL_LENGTH;
|
||||
|
@ -595,18 +595,18 @@ private:
|
|||
|
||||
void CreateDefaultClientTunnel() {//TODO dedup default values with ReadTunnelsConfig() and with ClientContext.cpp::ReadTunnels ()
|
||||
std::string name=GenerateNewTunnelName();
|
||||
std::string type = I2P_TUNNELS_SECTION_TYPE_CLIENT;
|
||||
std::string type = DOTNET_TUNNELS_SECTION_TYPE_CLIENT;
|
||||
std::string dest = "127.0.0.1";
|
||||
int port = 0;
|
||||
std::string keys = "";
|
||||
std::string address = "127.0.0.1";
|
||||
int destinationPort = 0;
|
||||
i2p::data::SigningKeyType sigType = i2p::data::SIGNING_KEY_TYPE_ECDSA_SHA256_P256;
|
||||
// I2CP
|
||||
I2CPParameters i2cpParameters;
|
||||
CreateDefaultI2CPOptions (i2cpParameters);
|
||||
dotnet::data::SigningKeyType sigType = dotnet::data::SIGNING_KEY_TYPE_ECDSA_SHA256_P256;
|
||||
// DNCP
|
||||
DNCPParameters dncpParameters;
|
||||
CreateDefaultDNCPOptions (dncpParameters);
|
||||
|
||||
tunnelConfigs[name]=new ClientTunnelConfig(name, QString(type.c_str()), i2cpParameters,
|
||||
tunnelConfigs[name]=new ClientTunnelConfig(name, QString(type.c_str()), dncpParameters,
|
||||
dest,
|
||||
port,
|
||||
keys,
|
||||
|
@ -620,7 +620,7 @@ private:
|
|||
|
||||
void CreateDefaultServerTunnel() {//TODO dedup default values with ReadTunnelsConfig() and with ClientContext.cpp::ReadTunnels ()
|
||||
std::string name=GenerateNewTunnelName();
|
||||
std::string type=I2P_TUNNELS_SECTION_TYPE_SERVER;
|
||||
std::string type=DOTNET_TUNNELS_SECTION_TYPE_SERVER;
|
||||
std::string host = "127.0.0.1";
|
||||
int port = 0;
|
||||
std::string keys = "";
|
||||
|
@ -629,15 +629,15 @@ private:
|
|||
std::string hostOverride = "";
|
||||
std::string webircpass = "";
|
||||
bool gzip = true;
|
||||
i2p::data::SigningKeyType sigType = i2p::data::SIGNING_KEY_TYPE_ECDSA_SHA256_P256;
|
||||
dotnet::data::SigningKeyType sigType = dotnet::data::SIGNING_KEY_TYPE_ECDSA_SHA256_P256;
|
||||
std::string address = "127.0.0.1";
|
||||
bool isUniqueLocal = true;
|
||||
|
||||
// I2CP
|
||||
I2CPParameters i2cpParameters;
|
||||
CreateDefaultI2CPOptions (i2cpParameters);
|
||||
// DNCP
|
||||
DNCPParameters dncpParameters;
|
||||
CreateDefaultDNCPOptions (dncpParameters);
|
||||
|
||||
tunnelConfigs[name]=new ServerTunnelConfig(name, QString(type.c_str()), i2cpParameters,
|
||||
tunnelConfigs[name]=new ServerTunnelConfig(name, QString(type.c_str()), dncpParameters,
|
||||
host,
|
||||
port,
|
||||
keys,
|
||||
|
@ -661,11 +661,11 @@ private:
|
|||
std::string tunConf=tunconfpath.toStdString();
|
||||
if (tunConf == "") {
|
||||
// TODO: cleanup this in 2.8.0
|
||||
tunConf = i2p::fs::DataDirPath ("tunnels.cfg");
|
||||
if (i2p::fs::Exists(tunConf)) {
|
||||
tunConf = dotnet::fs::DataDirPath ("tunnels.cfg");
|
||||
if (dotnet::fs::Exists(tunConf)) {
|
||||
LogPrint(eLogWarning, "FS: please rename tunnels.cfg -> tunnels.conf here: ", tunConf);
|
||||
} else {
|
||||
tunConf = i2p::fs::DataDirPath ("tunnels.conf");
|
||||
tunConf = dotnet::fs::DataDirPath ("tunnels.conf");
|
||||
}
|
||||
}
|
||||
LogPrint(eLogDebug, "tunnels config file: ", tunConf);
|
||||
|
@ -684,33 +684,33 @@ private:
|
|||
std::string name = section.first;
|
||||
try
|
||||
{
|
||||
std::string type = section.second.get<std::string> (I2P_TUNNELS_SECTION_TYPE);
|
||||
if (type == I2P_TUNNELS_SECTION_TYPE_CLIENT
|
||||
|| type == I2P_TUNNELS_SECTION_TYPE_SOCKS
|
||||
|| type == I2P_TUNNELS_SECTION_TYPE_WEBSOCKS
|
||||
|| type == I2P_TUNNELS_SECTION_TYPE_HTTPPROXY
|
||||
|| type == I2P_TUNNELS_SECTION_TYPE_UDPCLIENT)
|
||||
std::string type = section.second.get<std::string> (DOTNET_TUNNELS_SECTION_TYPE);
|
||||
if (type == DOTNET_TUNNELS_SECTION_TYPE_CLIENT
|
||||
|| type == DOTNET_TUNNELS_SECTION_TYPE_SOCKS
|
||||
|| type == DOTNET_TUNNELS_SECTION_TYPE_WEBSOCKS
|
||||
|| type == DOTNET_TUNNELS_SECTION_TYPE_HTTPPROXY
|
||||
|| type == DOTNET_TUNNELS_SECTION_TYPE_UDPCLIENT)
|
||||
{
|
||||
// mandatory params
|
||||
std::string dest;
|
||||
if (type == I2P_TUNNELS_SECTION_TYPE_CLIENT || type == I2P_TUNNELS_SECTION_TYPE_UDPCLIENT) {
|
||||
dest = section.second.get<std::string> (I2P_CLIENT_TUNNEL_DESTINATION);
|
||||
if (type == DOTNET_TUNNELS_SECTION_TYPE_CLIENT || type == DOTNET_TUNNELS_SECTION_TYPE_UDPCLIENT) {
|
||||
dest = section.second.get<std::string> (DOTNET_CLIENT_TUNNEL_DESTINATION);
|
||||
std::cout << "had read tunnel dest: " << dest << std::endl;
|
||||
}
|
||||
int port = section.second.get<int> (I2P_CLIENT_TUNNEL_PORT);
|
||||
int port = section.second.get<int> (DOTNET_CLIENT_TUNNEL_PORT);
|
||||
std::cout << "had read tunnel port: " << port << std::endl;
|
||||
// optional params
|
||||
std::string keys = section.second.get (I2P_CLIENT_TUNNEL_KEYS, "");
|
||||
std::string address = section.second.get (I2P_CLIENT_TUNNEL_ADDRESS, "127.0.0.1");
|
||||
int destinationPort = section.second.get<int>(I2P_CLIENT_TUNNEL_DESTINATION_PORT, 0);
|
||||
std::string keys = section.second.get (DOTNET_CLIENT_TUNNEL_KEYS, "");
|
||||
std::string address = section.second.get (DOTNET_CLIENT_TUNNEL_ADDRESS, "127.0.0.1");
|
||||
int destinationPort = section.second.get<int>(DOTNET_CLIENT_TUNNEL_DESTINATION_PORT, 0);
|
||||
std::cout << "had read tunnel destinationPort: " << destinationPort << std::endl;
|
||||
i2p::data::SigningKeyType sigType = section.second.get (I2P_CLIENT_TUNNEL_SIGNATURE_TYPE, i2p::data::SIGNING_KEY_TYPE_ECDSA_SHA256_P256);
|
||||
// I2CP
|
||||
dotnet::data::SigningKeyType sigType = section.second.get (DOTNET_CLIENT_TUNNEL_SIGNATURE_TYPE, dotnet::data::SIGNING_KEY_TYPE_ECDSA_SHA256_P256);
|
||||
// DNCP
|
||||
std::map<std::string, std::string> options;
|
||||
I2CPParameters i2cpParameters;
|
||||
ReadI2CPOptions (section, options, i2cpParameters);
|
||||
DNCPParameters dncpParameters;
|
||||
ReadDNCPOptions (section, options, dncpParameters);
|
||||
|
||||
tunnelConfigs[name]=new ClientTunnelConfig(name, QString(type.c_str()), i2cpParameters,
|
||||
tunnelConfigs[name]=new ClientTunnelConfig(name, QString(type.c_str()), dncpParameters,
|
||||
dest,
|
||||
port,
|
||||
keys,
|
||||
|
@ -718,39 +718,39 @@ private:
|
|||
destinationPort,
|
||||
sigType);
|
||||
}
|
||||
else if (type == I2P_TUNNELS_SECTION_TYPE_SERVER
|
||||
|| type == I2P_TUNNELS_SECTION_TYPE_HTTP
|
||||
|| type == I2P_TUNNELS_SECTION_TYPE_IRC
|
||||
|| type == I2P_TUNNELS_SECTION_TYPE_UDPSERVER)
|
||||
else if (type == DOTNET_TUNNELS_SECTION_TYPE_SERVER
|
||||
|| type == DOTNET_TUNNELS_SECTION_TYPE_HTTP
|
||||
|| type == DOTNET_TUNNELS_SECTION_TYPE_IRC
|
||||
|| type == DOTNET_TUNNELS_SECTION_TYPE_UDPSERVER)
|
||||
{
|
||||
// mandatory params
|
||||
std::string host = section.second.get<std::string> (I2P_SERVER_TUNNEL_HOST);
|
||||
int port = section.second.get<int> (I2P_SERVER_TUNNEL_PORT);
|
||||
std::string host = section.second.get<std::string> (DOTNET_SERVER_TUNNEL_HOST);
|
||||
int port = section.second.get<int> (DOTNET_SERVER_TUNNEL_PORT);
|
||||
// optional params
|
||||
std::string keys = section.second.get<std::string> (I2P_SERVER_TUNNEL_KEYS, "");
|
||||
int inPort = section.second.get (I2P_SERVER_TUNNEL_INPORT, 0);
|
||||
std::string accessList = section.second.get (I2P_SERVER_TUNNEL_ACCESS_LIST, "");
|
||||
std::string hostOverride = section.second.get (I2P_SERVER_TUNNEL_HOST_OVERRIDE, "");
|
||||
std::string webircpass = section.second.get<std::string> (I2P_SERVER_TUNNEL_WEBIRC_PASSWORD, "");
|
||||
bool gzip = section.second.get (I2P_SERVER_TUNNEL_GZIP, true);
|
||||
i2p::data::SigningKeyType sigType = section.second.get (I2P_SERVER_TUNNEL_SIGNATURE_TYPE, i2p::data::SIGNING_KEY_TYPE_ECDSA_SHA256_P256);
|
||||
std::string address = section.second.get<std::string> (I2P_SERVER_TUNNEL_ADDRESS, "127.0.0.1");
|
||||
bool isUniqueLocal = section.second.get(I2P_SERVER_TUNNEL_ENABLE_UNIQUE_LOCAL, true);
|
||||
std::string keys = section.second.get<std::string> (DOTNET_SERVER_TUNNEL_KEYS, "");
|
||||
int inPort = section.second.get (DOTNET_SERVER_TUNNEL_INPORT, 0);
|
||||
std::string accessList = section.second.get (DOTNET_SERVER_TUNNEL_ACCESS_LIST, "");
|
||||
std::string hostOverride = section.second.get (DOTNET_SERVER_TUNNEL_HOST_OVERRIDE, "");
|
||||
std::string webircpass = section.second.get<std::string> (DOTNET_SERVER_TUNNEL_WEBIRC_PASSWORD, "");
|
||||
bool gzip = section.second.get (DOTNET_SERVER_TUNNEL_GZIP, true);
|
||||
dotnet::data::SigningKeyType sigType = section.second.get (DOTNET_SERVER_TUNNEL_SIGNATURE_TYPE, dotnet::data::SIGNING_KEY_TYPE_ECDSA_SHA256_P256);
|
||||
std::string address = section.second.get<std::string> (DOTNET_SERVER_TUNNEL_ADDRESS, "127.0.0.1");
|
||||
bool isUniqueLocal = section.second.get(DOTNET_SERVER_TUNNEL_ENABLE_UNIQUE_LOCAL, true);
|
||||
|
||||
// I2CP
|
||||
// DNCP
|
||||
std::map<std::string, std::string> options;
|
||||
I2CPParameters i2cpParameters;
|
||||
ReadI2CPOptions (section, options, i2cpParameters);
|
||||
DNCPParameters dncpParameters;
|
||||
ReadDNCPOptions (section, options, dncpParameters);
|
||||
|
||||
/*
|
||||
std::set<i2p::data::IdentHash> idents;
|
||||
std::set<dotnet::data::IdentHash> idents;
|
||||
if (accessList.length () > 0)
|
||||
{
|
||||
size_t pos = 0, comma;
|
||||
do
|
||||
{
|
||||
comma = accessList.find (',', pos);
|
||||
i2p::data::IdentHash ident;
|
||||
dotnet::data::IdentHash ident;
|
||||
ident.FromBase32 (accessList.substr (pos, comma != std::string::npos ? comma - pos : std::string::npos));
|
||||
idents.insert (ident);
|
||||
pos = comma + 1;
|
||||
|
@ -758,7 +758,7 @@ private:
|
|||
while (comma != std::string::npos);
|
||||
}
|
||||
*/
|
||||
tunnelConfigs[name]=new ServerTunnelConfig(name, QString(type.c_str()), i2cpParameters,
|
||||
tunnelConfigs[name]=new ServerTunnelConfig(name, QString(type.c_str()), dncpParameters,
|
||||
host,
|
||||
port,
|
||||
keys,
|
||||
|
|
|
@ -924,9 +924,9 @@
|
|||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="doRestartI2PDPushButton">
|
||||
<widget class="QPushButton" name="doRestartDOTNETPushButton">
|
||||
<property name="text">
|
||||
<string>Restart i2pd</string>
|
||||
<string>Restart dotnet</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
|
|
@ -130,7 +130,7 @@
|
|||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="i2pTunnelsPushButton">
|
||||
<widget class="QPushButton" name="dotnetTunnelsPushButton">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>150</width>
|
||||
|
@ -138,7 +138,7 @@
|
|||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>I2P tunnels</string>
|
||||
<string>DOTNET tunnels</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue