mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-08-02 11:16:34 -04:00
commit
66691d4f37
19 changed files with 824 additions and 243 deletions
|
@ -165,7 +165,7 @@ GenCertDialog::GenCertDialog(bool onlyGenerateIdentity, QWidget *parent)
|
|||
#if QT_VERSION >= 0x040700
|
||||
ui.email_input->setPlaceholderText(tr("[Optional] Visible to your friends, and friends of friends.")) ;
|
||||
ui.node_input->setPlaceholderText(tr("[Required] Examples: Home, Laptop,...")) ;
|
||||
ui.hiddenaddr_input->setPlaceholderText(tr("[Required] Examples: xa76giaf6ifda7ri63i263.onion (obtained by you from Tor)")) ;
|
||||
ui.hiddenaddr_input->setPlaceholderText(tr("[Required] Tor/I2P address - Examples: xa76giaf6ifda7ri63i263.onion (obtained by you from Tor)")) ;
|
||||
ui.name_input->setPlaceholderText(tr("[Required] Visible to your friends, and friends of friends."));
|
||||
ui.password_input->setPlaceholderText(tr("[Required] This password protects your private PGP key."));
|
||||
ui.password_input_2->setPlaceholderText(tr("[Required] Type the same password again here."));
|
||||
|
@ -458,7 +458,7 @@ void GenCertDialog::genPerson()
|
|||
/* Message Dialog */
|
||||
QMessageBox::warning(this,
|
||||
tr("Invalid hidden node"),
|
||||
tr("Please enter a valid address of the form: 31769173498.onion:7800"),
|
||||
tr("Please enter a valid address of the form: 31769173498.onion:7800 or [52 characters].b32.i2p"),
|
||||
QMessageBox::Ok);
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>853</width>
|
||||
<height>592</height>
|
||||
<height>711</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
|
@ -111,7 +111,7 @@
|
|||
</property>
|
||||
<property name="text">
|
||||
<string>You can create a new profile with this form.
|
||||
Alternatively you can use an existing profile. Just uncheck "Create a new profile"</string>
|
||||
Alternatively you can use an existing profile. Just uncheck "Create a new profile"</string>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
|
@ -431,7 +431,7 @@ Alternatively you can use an existing profile. Just uncheck "Create a new profil
|
|||
<item>
|
||||
<widget class="QLabel" name="hiddenaddr_label">
|
||||
<property name="text">
|
||||
<string>Tor address</string>
|
||||
<string>hidden address</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
@ -593,7 +593,7 @@ anonymous, you can use a fake email.</string>
|
|||
<item>
|
||||
<widget class="QLabel" name="label_hiddenaddr2">
|
||||
<property name="text">
|
||||
<string><html><head/><body><p>This is a Tor Onion address of the form: xa76giaf6ifda7ri63i263.onion </p><p>In order to get one, you must configure Tor to create a new hidden service. If you do not yet have one, you can still go on, and make it right later in Retroshare's Options-&gt;Server-&gt;Tor configuration panel.</p></body></html></string>
|
||||
<string><html><head/><body><p>This can be a Tor Onion address of the form: xa76giaf6ifda7ri63i263.onion <br/>or an I2P address in the form: [52 characters].b32.i2p </p><p>In order to get one, you must configure either Tor or I2P to create a new hidden service / server tunnel. If you do not yet have one, you can still go on, and make it right later in Retroshare's Options-&gt;Server-&gt;Hidden Service configuration panel.</p></body></html></string>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
|
@ -761,6 +761,7 @@ anonymous, you can use a fake email.</string>
|
|||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
<zorder>no_node_label</zorder>
|
||||
<zorder>genButton2</zorder>
|
||||
<zorder>header_label</zorder>
|
||||
<zorder>genprofileinfo_label</zorder>
|
||||
|
@ -772,17 +773,17 @@ anonymous, you can use a fake email.</string>
|
|||
<zorder>label_hiddenaddr2</zorder>
|
||||
</widget>
|
||||
<customwidgets>
|
||||
<customwidget>
|
||||
<class>StyledLabel</class>
|
||||
<extends>QLabel</extends>
|
||||
<header>gui/common/StyledLabel.h</header>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>HeaderFrame</class>
|
||||
<extends>QFrame</extends>
|
||||
<header>gui/common/HeaderFrame.h</header>
|
||||
<container>1</container>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>StyledLabel</class>
|
||||
<extends>QLabel</extends>
|
||||
<header>gui/common/StyledLabel.h</header>
|
||||
</customwidget>
|
||||
</customwidgets>
|
||||
<resources>
|
||||
<include location="images.qrc"/>
|
||||
|
|
|
@ -182,6 +182,10 @@ QString StatusDefs::connectStateString(RsPeerDetails &details)
|
|||
stateString = qApp->translate("StatusDefs", "Connected: Tor");
|
||||
isConnected = true;
|
||||
break;
|
||||
case RS_PEER_CONNECTSTATE_CONNECTED_I2P:
|
||||
stateString = qApp->translate("StatusDefs", "Connected: I2P");
|
||||
isConnected = true;
|
||||
break;
|
||||
case RS_PEER_CONNECTSTATE_CONNECTED_UNKNOWN:
|
||||
stateString = qApp->translate("StatusDefs", "Connected: Unknown");
|
||||
isConnected = true;
|
||||
|
@ -231,6 +235,7 @@ QString StatusDefs::connectStateWithoutTransportTypeString(RsPeerDetails &detail
|
|||
case RS_PEER_CONNECTSTATE_CONNECTED_TCP:
|
||||
case RS_PEER_CONNECTSTATE_CONNECTED_UDP:
|
||||
case RS_PEER_CONNECTSTATE_CONNECTED_TOR:
|
||||
case RS_PEER_CONNECTSTATE_CONNECTED_I2P:
|
||||
case RS_PEER_CONNECTSTATE_CONNECTED_UNKNOWN:
|
||||
stateString = qApp->translate("StatusDefs", "Connected");
|
||||
break;
|
||||
|
@ -258,6 +263,9 @@ QString StatusDefs::connectStateIpString(RsPeerDetails &details)
|
|||
case RS_PEER_CONNECTSTATE_CONNECTED_TOR:
|
||||
stateString += QString(details.actAsServer ? qApp->translate("StatusDefs", "Tor-in") : qApp->translate("StatusDefs", "Tor-out"));
|
||||
break;
|
||||
case RS_PEER_CONNECTSTATE_CONNECTED_I2P:
|
||||
stateString += QString(details.actAsServer ? qApp->translate("StatusDefs", "I2P-in") : qApp->translate("StatusDefs", "I2P-out"));
|
||||
break;
|
||||
case RS_PEER_CONNECTSTATE_CONNECTED_UNKNOWN:
|
||||
stateString += qApp->translate("StatusDefs", "unkown");
|
||||
break;
|
||||
|
|
|
@ -488,6 +488,7 @@ void ConnectFriendWizard::initializePage(int id)
|
|||
}
|
||||
|
||||
ui->nodeEdit->setText(loc);
|
||||
ui->ipEdit->setText(QString::fromStdString(peerDetails.isHiddenNode ? peerDetails.hiddenNodeAddress : peerDetails.extAddr));
|
||||
ui->signersEdit->setPlainText(ts);
|
||||
|
||||
fillGroups(this, ui->groupComboBox, groupId);
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
<item>
|
||||
<widget class="QRadioButton" name="textRadioButton">
|
||||
<property name="text">
|
||||
<string>&Enter the certificate manually</string>
|
||||
<string>Enter the certificate manually</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
@ -52,7 +52,7 @@
|
|||
<item>
|
||||
<widget class="QRadioButton" name="rsidRadioButton">
|
||||
<property name="text">
|
||||
<string>&Enter RetroShare ID manually</string>
|
||||
<string>Enter RetroShare ID manually</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
@ -1039,21 +1039,21 @@ resources.</string>
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0">
|
||||
<item row="6" column="0">
|
||||
<widget class="QLabel" name="signersLabel">
|
||||
<property name="text">
|
||||
<string>Signers</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="1">
|
||||
<item row="6" column="1">
|
||||
<widget class="QPlainTextEdit" name="signersEdit">
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="0" colspan="2">
|
||||
<item row="7" column="0" colspan="2">
|
||||
<widget class="QLabel" name="alreadyRegisteredLabel">
|
||||
<property name="text">
|
||||
<string>This peer is already on your friend list. Adding it might just set it's ip address.</string>
|
||||
|
@ -1063,6 +1063,20 @@ resources.</string>
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0">
|
||||
<widget class="QLabel" name="ipLabel">
|
||||
<property name="text">
|
||||
<string>IP-Addr:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="1">
|
||||
<widget class="QLabel" name="ipEdit">
|
||||
<property name="text">
|
||||
<string>IP-Address</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
|
|
|
@ -53,7 +53,7 @@
|
|||
//#define SERVER_DEBUG 1
|
||||
|
||||
ServerPage::ServerPage(QWidget * parent, Qt::WindowFlags flags)
|
||||
: ConfigPage(parent, flags), mIsHiddenNode(false)
|
||||
: ConfigPage(parent, flags), mIsHiddenNode(false), mHiddenType(RS_HIDDEN_TYPE_NONE)
|
||||
{
|
||||
/* Invoke the Qt Designer generated object setup routine */
|
||||
ui.setupUi(this);
|
||||
|
@ -61,7 +61,7 @@ ServerPage::ServerPage(QWidget * parent, Qt::WindowFlags flags)
|
|||
connect( ui.netModeComboBox, SIGNAL( activated ( int ) ), this, SLOT( toggleUPnP( ) ) );
|
||||
connect( ui.allowIpDeterminationCB, SIGNAL( toggled( bool ) ), this, SLOT( toggleIpDetermination(bool) ) );
|
||||
connect( ui.cleanKnownIPs_PB, SIGNAL( clicked( ) ), this, SLOT( clearKnownAddressList() ) );
|
||||
connect( ui.testIncomingTor_PB, SIGNAL( clicked( ) ), this, SLOT( updateTorInProxyIndicator() ) );
|
||||
connect( ui.testIncoming_PB, SIGNAL( clicked( ) ), this, SLOT( updateInProxyIndicator() ) );
|
||||
|
||||
manager = NULL ;
|
||||
|
||||
|
@ -105,7 +105,7 @@ ServerPage::ServerPage(QWidget * parent, Qt::WindowFlags flags)
|
|||
for(std::list<std::string>::const_iterator it(ip_servers.begin());it!=ip_servers.end();++it)
|
||||
ui.IPServersLV->addItem(QString::fromStdString(*it)) ;
|
||||
|
||||
ui.torpage_incoming->setVisible(false);
|
||||
ui.hiddenpage_incoming->setVisible(false);
|
||||
|
||||
#ifdef SERVER_DEBUG
|
||||
std::cerr << "ServerPage::ServerPage() called";
|
||||
|
@ -218,6 +218,7 @@ void ServerPage::load()
|
|||
|
||||
if (mIsHiddenNode)
|
||||
{
|
||||
mHiddenType = detail.hiddenType;
|
||||
ui.tabWidget->setTabEnabled(1,false) ;
|
||||
loadHiddenNode();
|
||||
return;
|
||||
|
@ -302,15 +303,20 @@ void ServerPage::load()
|
|||
for(std::list<std::string>::const_iterator it(detail.ipAddressList.begin());it!=detail.ipAddressList.end();++it)
|
||||
ui.ipAddressList->addItem(QString::fromStdString(*it));
|
||||
|
||||
/* TOR PAGE SETTINGS - only Proxy (outgoing) */
|
||||
/* HIDDEN PAGE SETTINGS - only Proxy (outgoing) */
|
||||
std::string proxyaddr;
|
||||
uint16_t proxyport;
|
||||
uint32_t status ;
|
||||
rsPeers->getProxyServer(proxyaddr, proxyport, status);
|
||||
ui.torpage_proxyAddress -> setText(QString::fromStdString(proxyaddr));
|
||||
ui.torpage_proxyPort -> setValue(proxyport);
|
||||
// Tor
|
||||
rsPeers->getProxyServer(RS_HIDDEN_TYPE_TOR, proxyaddr, proxyport, status);
|
||||
ui.hiddenpage_proxyAddress_tor -> setText(QString::fromStdString(proxyaddr));
|
||||
ui.hiddenpage_proxyPort_tor -> setValue(proxyport);
|
||||
// I2P
|
||||
rsPeers->getProxyServer(RS_HIDDEN_TYPE_I2P, proxyaddr, proxyport, status);
|
||||
ui.hiddenpage_proxyAddress_i2p -> setText(QString::fromStdString(proxyaddr));
|
||||
ui.hiddenpage_proxyPort_i2p -> setValue(proxyport);
|
||||
|
||||
updateTorOutProxyIndicator();
|
||||
updateOutProxyIndicator();
|
||||
}
|
||||
|
||||
void ServerPage::toggleAutoIncludeFriends(bool b)
|
||||
|
@ -697,7 +703,7 @@ void ServerPage::updateStatus()
|
|||
ui.iconlabel_ext->setPixmap(QPixmap(":/images/ledoff1.png"));
|
||||
|
||||
// check for Tor
|
||||
updateTorOutProxyIndicator();
|
||||
updateOutProxyIndicator();
|
||||
}
|
||||
|
||||
void ServerPage::toggleUPnP()
|
||||
|
@ -807,17 +813,29 @@ void ServerPage::saveAddresses()
|
|||
rsConfig->SetMaxDataRates( ui.totalDownloadRate->value(), ui.totalUploadRate->value() );
|
||||
|
||||
// HANDLE PROXY SERVER.
|
||||
std::string orig_proxyaddr;
|
||||
uint16_t orig_proxyport;
|
||||
uint32_t status ;
|
||||
rsPeers->getProxyServer(orig_proxyaddr, orig_proxyport,status);
|
||||
std::string orig_proxyaddr, new_proxyaddr;
|
||||
uint16_t orig_proxyport, new_proxyport;
|
||||
uint32_t status ;
|
||||
// Tor
|
||||
rsPeers->getProxyServer(RS_HIDDEN_TYPE_TOR, orig_proxyaddr, orig_proxyport,status);
|
||||
|
||||
std::string new_proxyaddr = ui.torpage_proxyAddress -> text().toStdString();
|
||||
uint16_t new_proxyport = ui.torpage_proxyPort -> value();
|
||||
new_proxyaddr = ui.hiddenpage_proxyAddress_tor -> text().toStdString();
|
||||
new_proxyport = ui.hiddenpage_proxyPort_tor -> value();
|
||||
|
||||
if ((new_proxyaddr != orig_proxyaddr) || (new_proxyport != orig_proxyport))
|
||||
{
|
||||
rsPeers->setProxyServer(new_proxyaddr, new_proxyport);
|
||||
rsPeers->setProxyServer(RS_HIDDEN_TYPE_TOR, new_proxyaddr, new_proxyport);
|
||||
}
|
||||
|
||||
// I2P
|
||||
rsPeers->getProxyServer(RS_HIDDEN_TYPE_I2P, orig_proxyaddr, orig_proxyport,status);
|
||||
|
||||
new_proxyaddr = ui.hiddenpage_proxyAddress_i2p -> text().toStdString();
|
||||
new_proxyport = ui.hiddenpage_proxyPort_i2p -> value();
|
||||
|
||||
if ((new_proxyaddr != orig_proxyaddr) || (new_proxyport != orig_proxyport))
|
||||
{
|
||||
rsPeers->setProxyServer(RS_HIDDEN_TYPE_I2P, new_proxyaddr, new_proxyport);
|
||||
}
|
||||
|
||||
load();
|
||||
|
@ -893,7 +911,7 @@ void ServerPage::loadHiddenNode()
|
|||
ui.label_dynDNS->setVisible(false);
|
||||
ui.dynDNS ->setVisible(false);
|
||||
|
||||
ui.torpage_incoming->setVisible(true);
|
||||
ui.hiddenpage_incoming->setVisible(true);
|
||||
|
||||
/* Addresses must be set here - otherwise can't edit it */
|
||||
/* set local address */
|
||||
|
@ -901,7 +919,7 @@ void ServerPage::loadHiddenNode()
|
|||
ui.localPort -> setValue(detail.localPort);
|
||||
/* set the server address */
|
||||
|
||||
ui.extAddress->setText(tr("Hidden - See Tor Config"));
|
||||
ui.extAddress->setText(tr("Hidden - See Config"));
|
||||
|
||||
ui.showDiscStatusBar->setChecked(Settings->getStatusBarFlags() & STATUSBAR_DISC);
|
||||
ui.showDiscStatusBar->hide() ; // hidden because not functional at the moment.
|
||||
|
@ -924,32 +942,64 @@ void ServerPage::loadHiddenNode()
|
|||
/* TOR PAGE SETTINGS */
|
||||
|
||||
/* set local address */
|
||||
ui.torpage_localAddress->setEnabled(false);
|
||||
ui.torpage_localAddress->setText(QString::fromStdString(detail.localAddr));
|
||||
ui.torpage_localPort -> setValue(detail.localPort);
|
||||
ui.hiddenpage_localAddress->setEnabled(false);
|
||||
ui.hiddenpage_localAddress->setText(QString::fromStdString(detail.localAddr));
|
||||
ui.hiddenpage_localPort -> setValue(detail.localPort);
|
||||
|
||||
/* set the server address */
|
||||
ui.torpage_onionAddress->setText(QString::fromStdString(detail.hiddenNodeAddress));
|
||||
ui.torpage_onionPort -> setValue(detail.hiddenNodePort);
|
||||
ui.hiddenpage_serviceAddress->setText(QString::fromStdString(detail.hiddenNodeAddress));
|
||||
ui.hiddenpage_servicePort -> setValue(detail.hiddenNodePort);
|
||||
/* in I2P there is no port - there is only the address */
|
||||
ui.hiddenpage_servicePort->setEnabled(detail.hiddenType != RS_HIDDEN_TYPE_I2P);
|
||||
|
||||
/* out proxy settings */
|
||||
std::string proxyaddr;
|
||||
uint16_t proxyport;
|
||||
uint32_t proxy_state_flags;
|
||||
rsPeers->getProxyServer(proxyaddr, proxyport, proxy_state_flags);
|
||||
ui.torpage_proxyAddress -> setText(QString::fromStdString(proxyaddr));
|
||||
ui.torpage_proxyPort -> setValue(proxyport);
|
||||
uint16_t proxyport;
|
||||
uint32_t status ;
|
||||
// Tor
|
||||
rsPeers->getProxyServer(RS_HIDDEN_TYPE_TOR, proxyaddr, proxyport, status);
|
||||
ui.hiddenpage_proxyAddress_tor -> setText(QString::fromStdString(proxyaddr));
|
||||
ui.hiddenpage_proxyPort_tor -> setValue(proxyport);
|
||||
// I2P
|
||||
rsPeers->getProxyServer(RS_HIDDEN_TYPE_I2P, proxyaddr, proxyport, status);
|
||||
ui.hiddenpage_proxyAddress_i2p -> setText(QString::fromStdString(proxyaddr));
|
||||
ui.hiddenpage_proxyPort_i2p -> setValue(proxyport);
|
||||
|
||||
updateTorOutProxyIndicator();
|
||||
updateOutProxyIndicator();
|
||||
|
||||
QString expected = "HiddenServiceDir </your/path/to/hidden/directory/service>\n";
|
||||
expected += "HiddenServicePort ";
|
||||
expected += QString::number(detail.hiddenNodePort);
|
||||
expected += " ";
|
||||
expected += QString::fromStdString(detail.localAddr);
|
||||
expected += ":";
|
||||
expected += QString::number(detail.localPort);
|
||||
QString expected = "";
|
||||
switch (mHiddenType) {
|
||||
case RS_HIDDEN_TYPE_I2P:
|
||||
ui.l_serviceAddress->setText(tr("I2P Address"));
|
||||
ui.l_incomingTestResult->setText(tr("I2P incoming ok"));
|
||||
|
||||
ui.torpage_configuration->setPlainText(expected);
|
||||
expected += "http://127.0.0.1:7657/i2ptunnelmgr - I2P Hidden Services\n";
|
||||
expected += tr("Points at: ");
|
||||
expected += QString::fromStdString(detail.localAddr);
|
||||
expected += ":";
|
||||
expected += QString::number(detail.localPort);
|
||||
break;
|
||||
case RS_HIDDEN_TYPE_TOR:
|
||||
ui.l_serviceAddress->setText(tr("Onion Address"));
|
||||
ui.l_incomingTestResult->setText(tr("Tor incoming ok"));
|
||||
|
||||
expected += "HiddenServiceDir </your/path/to/hidden/directory/service>\n";
|
||||
expected += "HiddenServicePort ";
|
||||
expected += QString::number(detail.hiddenNodePort);
|
||||
expected += " ";
|
||||
expected += QString::fromStdString(detail.localAddr);
|
||||
expected += ":";
|
||||
expected += QString::number(detail.localPort);
|
||||
break;
|
||||
default:
|
||||
ui.l_serviceAddress->setText(tr("Service Address"));
|
||||
ui.l_incomingTestResult->setText(tr("incoming ok"));
|
||||
|
||||
expected += "Please fill in a service address";
|
||||
|
||||
break;
|
||||
}
|
||||
ui.hiddenpage_configuration->setPlainText(expected);
|
||||
}
|
||||
|
||||
/** Loads the settings for this page */
|
||||
|
@ -1005,7 +1055,7 @@ void ServerPage::updateStatusHiddenNode()
|
|||
|
||||
#endif
|
||||
|
||||
updateTorOutProxyIndicator();
|
||||
updateOutProxyIndicator();
|
||||
}
|
||||
|
||||
void ServerPage::saveAddressesHiddenNode()
|
||||
|
@ -1036,41 +1086,54 @@ void ServerPage::saveAddressesHiddenNode()
|
|||
if ((vs_disc != detail.vs_disc) || (vs_dht != detail.vs_dht))
|
||||
rsPeers->setVisState(ownId, vs_disc, vs_dht);
|
||||
|
||||
if (detail.localPort != ui.torpage_localPort->value())
|
||||
if (detail.localPort != ui.hiddenpage_localPort->value())
|
||||
{
|
||||
// Set Local Address - force to 127.0.0.1
|
||||
rsPeers->setLocalAddress(ownId, "127.0.0.1", ui.torpage_localPort->value());
|
||||
rsPeers->setLocalAddress(ownId, "127.0.0.1", ui.hiddenpage_localPort->value());
|
||||
}
|
||||
|
||||
std::string hiddenAddr = ui.torpage_onionAddress->text().toStdString();
|
||||
uint16_t hiddenPort = ui.torpage_onionPort->value();
|
||||
std::string hiddenAddr = ui.hiddenpage_serviceAddress->text().toStdString();
|
||||
uint16_t hiddenPort = ui.hiddenpage_servicePort->value();
|
||||
if ((hiddenAddr != detail.hiddenNodeAddress) || (hiddenPort != detail.hiddenNodePort))
|
||||
{
|
||||
rsPeers->setHiddenNode(ownId, hiddenAddr, hiddenPort);
|
||||
}
|
||||
|
||||
// HANDLE PROXY SERVER.
|
||||
std::string orig_proxyaddr;
|
||||
uint16_t orig_proxyport;
|
||||
uint32_t state_flags ;
|
||||
rsPeers->getProxyServer(orig_proxyaddr, orig_proxyport,state_flags);
|
||||
std::string orig_proxyaddr,new_proxyaddr;
|
||||
uint16_t orig_proxyport, new_proxyport;
|
||||
uint32_t status ;
|
||||
// Tor
|
||||
rsPeers->getProxyServer(RS_HIDDEN_TYPE_TOR, orig_proxyaddr, orig_proxyport,status);
|
||||
|
||||
std::string new_proxyaddr = ui.torpage_proxyAddress -> text().toStdString();
|
||||
uint16_t new_proxyport = ui.torpage_proxyPort -> value();
|
||||
new_proxyaddr = ui.hiddenpage_proxyAddress_tor -> text().toStdString();
|
||||
new_proxyport = ui.hiddenpage_proxyPort_tor -> value();
|
||||
|
||||
if ((new_proxyaddr != orig_proxyaddr) || (new_proxyport != orig_proxyport))
|
||||
{
|
||||
rsPeers->setProxyServer(new_proxyaddr, new_proxyport);
|
||||
rsPeers->setProxyServer(RS_HIDDEN_TYPE_TOR, new_proxyaddr, new_proxyport);
|
||||
}
|
||||
|
||||
// I2P
|
||||
rsPeers->getProxyServer(RS_HIDDEN_TYPE_I2P, orig_proxyaddr, orig_proxyport,status);
|
||||
|
||||
new_proxyaddr = ui.hiddenpage_proxyAddress_i2p -> text().toStdString();
|
||||
new_proxyport = ui.hiddenpage_proxyPort_i2p -> value();
|
||||
|
||||
if ((new_proxyaddr != orig_proxyaddr) || (new_proxyport != orig_proxyport))
|
||||
{
|
||||
rsPeers->setProxyServer(RS_HIDDEN_TYPE_I2P, new_proxyaddr, new_proxyport);
|
||||
}
|
||||
|
||||
rsConfig->SetMaxDataRates( ui.totalDownloadRate->value(), ui.totalUploadRate->value() );
|
||||
load();
|
||||
}
|
||||
void ServerPage::updateTorOutProxyIndicator()
|
||||
void ServerPage::updateOutProxyIndicator()
|
||||
{
|
||||
QTcpSocket socket ;
|
||||
socket.connectToHost(ui.torpage_proxyAddress->text(),ui.torpage_proxyPort->text().toInt());
|
||||
|
||||
// Tor
|
||||
socket.connectToHost(ui.hiddenpage_proxyAddress_tor->text(),ui.hiddenpage_proxyPort_tor->text().toInt());
|
||||
if(socket.waitForConnected(500))
|
||||
{
|
||||
socket.disconnectFromHost();
|
||||
|
@ -1082,25 +1145,23 @@ void ServerPage::updateTorOutProxyIndicator()
|
|||
ui.iconlabel_tor_outgoing->setPixmap(QPixmap(ICON_STATUS_UNKNOWN)) ;
|
||||
ui.iconlabel_tor_outgoing->setToolTip(tr("Tor proxy is not enabled")) ;
|
||||
}
|
||||
}
|
||||
void ServerPage::updateLocInProxyIndicator()
|
||||
{
|
||||
QTcpSocket socket ;
|
||||
socket.connectToHost(ui.torpage_localAddress->text(),ui.torpage_localPort->text().toInt());
|
||||
|
||||
if(socket.waitForConnected(1000))
|
||||
{
|
||||
socket.disconnectFromHost();
|
||||
ui.iconlabel_tor_incoming->setPixmap(QPixmap(ICON_STATUS_OK)) ;
|
||||
ui.iconlabel_tor_incoming->setToolTip(tr("You are reachable through Tor.")) ;
|
||||
}
|
||||
else
|
||||
{
|
||||
ui.iconlabel_tor_incoming->setPixmap(QPixmap(ICON_STATUS_UNKNOWN)) ;
|
||||
ui.iconlabel_tor_incoming->setToolTip(tr("Tor proxy is not enabled or broken.\nAre you running a Tor hidden service?\nCheck your ports!")) ;
|
||||
}
|
||||
// I2P
|
||||
socket.connectToHost(ui.hiddenpage_proxyAddress_i2p->text(),ui.hiddenpage_proxyPort_i2p->text().toInt());
|
||||
if(socket.waitForConnected(500))
|
||||
{
|
||||
socket.disconnectFromHost();
|
||||
ui.iconlabel_i2p_outgoing->setPixmap(QPixmap(ICON_STATUS_OK)) ;
|
||||
ui.iconlabel_i2p_outgoing->setToolTip(tr("Proxy seems to work.")) ;
|
||||
}
|
||||
else
|
||||
{
|
||||
ui.iconlabel_i2p_outgoing->setPixmap(QPixmap(ICON_STATUS_UNKNOWN)) ;
|
||||
ui.iconlabel_i2p_outgoing->setToolTip(tr("I2P proxy is not enabled")) ;
|
||||
}
|
||||
}
|
||||
void ServerPage::updateTorInProxyIndicator()
|
||||
|
||||
void ServerPage::updateInProxyIndicator()
|
||||
{
|
||||
// need to find a proper way to do this
|
||||
|
||||
|
@ -1113,21 +1174,31 @@ void ServerPage::updateTorInProxyIndicator()
|
|||
QNetworkProxy proxy ;
|
||||
|
||||
proxy.setType(QNetworkProxy::Socks5Proxy);
|
||||
proxy.setHostName(ui.torpage_proxyAddress->text());
|
||||
proxy.setPort(ui.torpage_proxyPort->text().toInt());
|
||||
switch (mHiddenType) {
|
||||
case RS_HIDDEN_TYPE_I2P:
|
||||
proxy.setHostName(ui.hiddenpage_proxyAddress_i2p->text());
|
||||
proxy.setPort(ui.hiddenpage_proxyPort_i2p->text().toInt());
|
||||
break;
|
||||
case RS_HIDDEN_TYPE_TOR:
|
||||
proxy.setHostName(ui.hiddenpage_proxyAddress_tor->text());
|
||||
proxy.setPort(ui.hiddenpage_proxyPort_tor->text().toInt());
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
proxy.setCapabilities(QNetworkProxy::HostNameLookupCapability | proxy.capabilities()) ;
|
||||
|
||||
//ui.iconlabel_tor_incoming->setPixmap(QPixmap(ICON_STATUS_UNKNOWN)) ;
|
||||
//ui.testIncomingTor_PB->setIcon(QIcon(":/loader/circleball-16.gif")) ;
|
||||
QMovie *movie = new QMovie(":/images/loader/circleball-16.gif");
|
||||
ui.iconlabel_tor_incoming->setMovie(movie);
|
||||
movie->start() ;
|
||||
//ui.iconlabel_tor_incoming->setPixmap(QPixmap(ICON_STATUS_UNKNOWN)) ;
|
||||
//ui.testIncomingTor_PB->setIcon(QIcon(":/loader/circleball-16.gif")) ;
|
||||
QMovie *movie = new QMovie(":/images/loader/circleball-16.gif");
|
||||
ui.iconlabel_service_incoming->setMovie(movie);
|
||||
movie->start() ;
|
||||
|
||||
QNetworkProxy::setApplicationProxy(proxy) ;
|
||||
|
||||
QUrl url("https://"+ui.torpage_onionAddress->text() + ":" + ui.torpage_onionPort->text()) ;
|
||||
QUrl url("https://"+ui.hiddenpage_serviceAddress->text() + ":" + ui.hiddenpage_servicePort->text()) ;
|
||||
|
||||
std::cerr << "Setting proxy hostname+port to " << std::dec << ui.torpage_proxyAddress->text().toStdString() << ":" << ui.torpage_proxyPort->text().toInt() << std::endl;
|
||||
std::cerr << "Setting proxy hostname+port to " << std::dec << ui.hiddenpage_proxyAddress_tor->text().toStdString() << ":" << ui.hiddenpage_proxyPort_tor->text().toInt() << std::endl;
|
||||
std::cerr << "Connecting to " << url.toString().toStdString() << std::endl;
|
||||
|
||||
connect(manager, SIGNAL(finished(QNetworkReply*)),this,SLOT(handleNetworkReply(QNetworkReply*))) ;
|
||||
|
@ -1143,8 +1214,8 @@ void ServerPage::handleNetworkReply(QNetworkReply *reply)
|
|||
if(reply->isOpen() && error == QNetworkReply::SslHandshakeFailedError)
|
||||
{
|
||||
std::cerr <<"Connected!" << std::endl;
|
||||
ui.iconlabel_tor_incoming->setPixmap(QPixmap(ICON_STATUS_OK)) ;
|
||||
ui.iconlabel_tor_incoming->setToolTip(tr("You are reachable through Tor.")) ;
|
||||
ui.iconlabel_service_incoming->setPixmap(QPixmap(ICON_STATUS_OK)) ;
|
||||
ui.iconlabel_service_incoming->setToolTip(tr("You are reachable through the hidden service.")) ;
|
||||
//ui.testIncomingTor_PB->setIcon(QIcon(ICON_STATUS_OK)) ;
|
||||
}
|
||||
else
|
||||
|
@ -1152,8 +1223,8 @@ void ServerPage::handleNetworkReply(QNetworkReply *reply)
|
|||
std::cerr <<"Failed!" << std::endl;
|
||||
|
||||
//ui.testIncomingTor_PB->setIcon(QIcon(ICON_STATUS_UNKNOWN)) ;
|
||||
ui.iconlabel_tor_incoming->setPixmap(QPixmap(ICON_STATUS_UNKNOWN)) ;
|
||||
ui.iconlabel_tor_incoming->setToolTip(tr("Tor proxy is not enabled or broken.\nAre you running a Tor hidden service?\nCheck your ports!")) ;
|
||||
ui.iconlabel_service_incoming->setPixmap(QPixmap(ICON_STATUS_UNKNOWN)) ;
|
||||
ui.iconlabel_service_incoming->setToolTip(tr("The proxy is not enabled or broken.\nAre all services up and running fine??\nAlso check your ports!")) ;
|
||||
}
|
||||
|
||||
reply->close();
|
||||
|
|
|
@ -52,6 +52,7 @@ public slots:
|
|||
void updateStatus();
|
||||
|
||||
private slots:
|
||||
// ban list
|
||||
void updateSelectedBlackListIP(int row, int, int, int);
|
||||
void updateSelectedWhiteListIP(int row,int,int,int);
|
||||
void addIpRangeToBlackList();
|
||||
|
@ -69,25 +70,27 @@ private slots:
|
|||
void ipFilterContextMenu(const QPoint &);
|
||||
void ipWhiteListContextMenu(const QPoint &point);
|
||||
void removeBannedIp();
|
||||
|
||||
// server
|
||||
void saveAddresses();
|
||||
void toggleUPnP();
|
||||
void toggleIpDetermination(bool) ;
|
||||
void toggleTunnelConnection(bool) ;
|
||||
void clearKnownAddressList() ;
|
||||
void handleNetworkReply(QNetworkReply *reply);
|
||||
void updateTorInProxyIndicator();
|
||||
void updateInProxyIndicator();
|
||||
|
||||
private:
|
||||
|
||||
// Alternative Versions for HiddenNode Mode.
|
||||
// ban list
|
||||
void addPeerToIPTable(QTableWidget *table, int row, const BanListPeer &blp);
|
||||
bool removeCurrentRowFromBlackList(sockaddr_storage& collected_addr,int& masked_bytes);
|
||||
bool removeCurrentRowFromWhiteList(sockaddr_storage &collected_addr, int &masked_bytes);
|
||||
|
||||
// Alternative Versions for HiddenNode Mode.
|
||||
void loadHiddenNode();
|
||||
void updateStatusHiddenNode();
|
||||
void saveAddressesHiddenNode();
|
||||
void updateTorOutProxyIndicator();
|
||||
void updateLocInProxyIndicator();
|
||||
void updateOutProxyIndicator();
|
||||
void loadFilteredIps() ;
|
||||
|
||||
Ui::ServerPage ui;
|
||||
|
@ -95,6 +98,7 @@ private:
|
|||
QNetworkAccessManager *manager ;
|
||||
|
||||
bool mIsHiddenNode;
|
||||
u_int32_t mHiddenType;
|
||||
};
|
||||
|
||||
#endif // !SERVERPAGE_H
|
||||
|
|
|
@ -11,7 +11,16 @@
|
|||
</rect>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_3">
|
||||
<property name="margin">
|
||||
<property name="leftMargin">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<item>
|
||||
|
@ -515,7 +524,7 @@ behind a firewall or a VPN.</string>
|
|||
<property name="currentIndex">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<widget class="QWidget" name="tabWidgetPage1" native="true">
|
||||
<widget class="QWidget" name="tabWidgetPage1">
|
||||
<attribute name="title">
|
||||
<string>IP blacklist</string>
|
||||
</attribute>
|
||||
|
@ -756,15 +765,15 @@ behind a firewall or a VPN.</string>
|
|||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="TorTAB">
|
||||
<widget class="QWidget" name="HiddenTAB">
|
||||
<attribute name="title">
|
||||
<string>Tor Configuration</string>
|
||||
<string>Hidden Service Configuration</string>
|
||||
</attribute>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_8">
|
||||
<item>
|
||||
<widget class="QGroupBox" name="torpage_outgoing">
|
||||
<property name="title">
|
||||
<string>Outgoing Tor Connections</string>
|
||||
<string>Outgoing Connections</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_5">
|
||||
<item>
|
||||
|
@ -779,10 +788,10 @@ behind a firewall or a VPN.</string>
|
|||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="torpage_proxyAddress"/>
|
||||
<widget class="QLineEdit" name="hiddenpage_proxyAddress_tor"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QSpinBox" name="torpage_proxyPort">
|
||||
<widget class="QSpinBox" name="hiddenpage_proxyPort_tor">
|
||||
<property name="minimum">
|
||||
<number>10</number>
|
||||
</property>
|
||||
|
@ -822,16 +831,71 @@ behind a firewall or a VPN.</string>
|
|||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_15">
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_17">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_6">
|
||||
<property name="text">
|
||||
<string>I2P Socks Proxy</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="hiddenpage_proxyAddress_i2p"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QSpinBox" name="hiddenpage_proxyPort_i2p">
|
||||
<property name="minimum">
|
||||
<number>10</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>65535</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_18">
|
||||
<item>
|
||||
<widget class="QLabel" name="iconlabel_i2p_outgoing">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="pixmap">
|
||||
<pixmap resource="../images.qrc">:/images/ledoff1.png</pixmap>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="text">
|
||||
<string>I2P outgoing Okay</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPlainTextEdit" name="plainTextEdit">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>100</height>
|
||||
<height>145</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="verticalScrollBarPolicy">
|
||||
<enum>Qt::ScrollBarAlwaysOff</enum>
|
||||
<enum>Qt::ScrollBarAsNeeded</enum>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
|
@ -839,8 +903,11 @@ behind a firewall or a VPN.</string>
|
|||
<property name="plainText">
|
||||
<string>Tor Socks Proxy default: 127.0.0.1:9050. Set in torrc config and update here.
|
||||
|
||||
You can connect to Hidden Nodes, even if you
|
||||
are running a standard Node, so why not setup Tor? </string>
|
||||
I2P Socks Proxy: see http://127.0.0.1:7657/i2ptunnelmgr for setting up a client tunnel:
|
||||
Tunnel Wizard -> Client Tunnel -> SOCKS 4/4a/5 -> enter a name -> leave 'Outproxies' empty -> enter port (memorize!) [you may also want to set the reachability to 127.0.0.1] -> check 'Auto Start' -> finish!
|
||||
Now enter the address (e.g. 127.0.0.1) and the port you've picked before for the I2P Proxy.
|
||||
|
||||
You can connect to Hidden Nodes, even if you are running a standard Node, so why not setup Tor and/or I2P?</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
@ -848,7 +915,7 @@ are running a standard Node, so why not setup Tor? </string>
|
|||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="torpage_incoming">
|
||||
<widget class="QGroupBox" name="hiddenpage_incoming">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
|
@ -856,13 +923,13 @@ are running a standard Node, so why not setup Tor? </string>
|
|||
</sizepolicy>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>Incoming Tor Connections</string>
|
||||
<string>Incoming Service Connections</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_7">
|
||||
<item>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="2">
|
||||
<widget class="QSpinBox" name="torpage_localPort">
|
||||
<widget class="QSpinBox" name="hiddenpage_localPort">
|
||||
<property name="minimum">
|
||||
<number>10</number>
|
||||
</property>
|
||||
|
@ -874,9 +941,9 @@ are running a standard Node, so why not setup Tor? </string>
|
|||
<item row="0" column="3">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_9">
|
||||
<item>
|
||||
<widget class="QPushButton" name="testIncomingTor_PB">
|
||||
<widget class="QPushButton" name="testIncoming_PB">
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>This button simulates a SSL connection to your Tor address using the Tor proxy. If your Tor node is reachable, it should cause a SSL handshake error, which RS will interpret as a valid connection state. This operation might also cause several "security warning" about connections from your local host IP (127.0.0.1) in the News Feed if you enabled it,</p></body></html></string>
|
||||
<string><html><head/><body><p>This button simulates a SSL connection to your hidden address using the corresponding proxy. If your hidden node is reachable, it should cause a SSL handshake error, which RS will interpret as a valid connection state. This operation might also cause several &quot;security warning&quot; about connections from your local host IP (127.0.0.1) in the News Feed if you enabled it,</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Test</string>
|
||||
|
@ -886,7 +953,7 @@ are running a standard Node, so why not setup Tor? </string>
|
|||
</layout>
|
||||
</item>
|
||||
<item row="1" column="2">
|
||||
<widget class="QSpinBox" name="torpage_onionPort">
|
||||
<widget class="QSpinBox" name="hiddenpage_servicePort">
|
||||
<property name="minimum">
|
||||
<number>10</number>
|
||||
</property>
|
||||
|
@ -896,9 +963,9 @@ are running a standard Node, so why not setup Tor? </string>
|
|||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_11">
|
||||
<widget class="QLabel" name="l_serviceAddress">
|
||||
<property name="text">
|
||||
<string>Onion Address</string>
|
||||
<string>Service Address</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
@ -910,23 +977,23 @@ are running a standard Node, so why not setup Tor? </string>
|
|||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QLineEdit" name="torpage_onionAddress">
|
||||
<widget class="QLineEdit" name="hiddenpage_serviceAddress">
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>This is your onion address. It should look like <span style=" font-weight:600;">[something].onion. </span>If you configured a hidden service with Tor, the onion address is generated automatically by Tor. You can get it in e.g. <span style=" font-weight:600;">/var/lib/tor/[service name]/hostname</span></p></body></html></string>
|
||||
<string><html><head/><body><p>This is your hidden address. It should look like <span style=" font-weight:600;">[something].onion</span> or <span style=" font-weight:600;">[something].b32.i2p. </span>If you configured a hidden service with Tor, the onion address is generated automatically by Tor. You can get it in e.g. <span style=" font-weight:600;">/var/lib/tor/[service name]/hostname</span>. For I2P: Setup a server tunnel ( http://127.0.0.1:7657/i2ptunnelmgr ) and copy it's base32 address when it is started (should end with .b32.i2p)</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QLineEdit" name="torpage_localAddress">
|
||||
<widget class="QLineEdit" name="hiddenpage_localAddress">
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>This is the local address to which the Tor hidden service points at your localhost. Most of the time, <span style=" font-weight:600;">127.0.0.1</span> is the right answer.</p></body></html></string>
|
||||
<string><html><head/><body><p>This is the local address to which the hidden service points at your localhost. Most of the time, <span style=" font-weight:600;">127.0.0.1</span> is the right answer.</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="3">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="QLabel" name="iconlabel_tor_incoming">
|
||||
<widget class="QLabel" name="iconlabel_service_incoming">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16</width>
|
||||
|
@ -942,9 +1009,9 @@ are running a standard Node, so why not setup Tor? </string>
|
|||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_16">
|
||||
<widget class="QLabel" name="l_incomingTestResult">
|
||||
<property name="text">
|
||||
<string>Tor incoming ok</string>
|
||||
<string>incoming ok</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
@ -957,12 +1024,12 @@ are running a standard Node, so why not setup Tor? </string>
|
|||
<item>
|
||||
<widget class="QLabel" name="label_12">
|
||||
<property name="text">
|
||||
<string>Expected torrc Port Configuration:</string>
|
||||
<string>Expected Configuration:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPlainTextEdit" name="torpage_configuration">
|
||||
<widget class="QPlainTextEdit" name="hiddenpage_configuration">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Minimum">
|
||||
<horstretch>0</horstretch>
|
||||
|
@ -988,8 +1055,7 @@ are running a standard Node, so why not setup Tor? </string>
|
|||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="plainText">
|
||||
<string>HiddenServiceDir </your/path/to/hidden/directory/service>
|
||||
HiddenServicePort 9191 127.0.0.1:9191</string>
|
||||
<string>Please fill in a service address</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
@ -1013,12 +1079,14 @@ HiddenServicePort 9191 127.0.0.1:9191</string>
|
|||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="plainText">
|
||||
<string>To Receive Connections, you must first setup a Tor Hidden Service.
|
||||
See Tor documentation for HOWTO details.
|
||||
<string>To Receive Connections, you must first setup a Tor/I2P Hidden Service.
|
||||
For Tor: See torrc and documentation for HOWTO details.
|
||||
For I2P: See http://127.0.0.1:7657/i2ptunnelmgr for setting up a server tunnel:
|
||||
Tunnel Wizard -> Server Tunnel -> Standard -> enter a name -> enter the address and port your RS is using (see Local Address above) -> check 'Auto Start' -> finish!
|
||||
|
||||
Once this is done, paste the Onion Address in the box above.
|
||||
This is your external address on the Tor network.
|
||||
Finally make sure that the Ports match the Tor configuration.
|
||||
Once this is done, paste the Onion/I2P (Base32) Address in the box above.
|
||||
This is your external address on the Tor/I2P network.
|
||||
Finally make sure that the Ports match the configuration.
|
||||
|
||||
If you have issues connecting over Tor check the Tor logs too.</string>
|
||||
</property>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue