summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--net-p2p/retroshare/files/hidden_service.patch181
-rw-r--r--net-p2p/retroshare/retroshare-scm.ebuild2
2 files changed, 183 insertions, 0 deletions
diff --git a/net-p2p/retroshare/files/hidden_service.patch b/net-p2p/retroshare/files/hidden_service.patch
new file mode 100644
index 0000000..6043423
--- /dev/null
+++ b/net-p2p/retroshare/files/hidden_service.patch
@@ -0,0 +1,181 @@
+diff --git a/libretroshare/src/pqi/p3netmgr.cc b/libretroshare/src/pqi/p3netmgr.cc
+index bc5a6f1..63ee8e2 100644
+--- a/libretroshare/src/pqi/p3netmgr.cc
++++ b/libretroshare/src/pqi/p3netmgr.cc
+@@ -1014,7 +1014,7 @@ bool p3NetMgrIMPL::checkNetAddress()
+ std::cerr << "p3NetMgrIMPL::checkNetAddress() LOOPBACK ... forcing to 127.0.0.1";
+ std::cerr << std::endl;
+ #endif
+- sockaddr_storage_ipv4_aton(prefAddr, "127.0.0.1");
++ sockaddr_storage_ipv4_aton(prefAddr, "0.0.0.0"); //wtf ??
+ validAddr = true;
+ }
+ else
+@@ -1077,7 +1077,7 @@ bool p3NetMgrIMPL::checkNetAddress()
+ #endif
+
+ // update address.
+- sockaddr_storage_copyip(mLocalAddr, prefAddr);
++ sockaddr_storage_copyip(mLocalAddr, prefAddr); //wtf ??!
+ mNetFlags.mLocalAddr = mLocalAddr;
+
+ if(sockaddr_storage_isLoopbackNet(mLocalAddr))
+diff --git a/libretroshare/src/pqi/p3peermgr.cc b/libretroshare/src/pqi/p3peermgr.cc
+index 6503096..7427814 100644
+--- a/libretroshare/src/pqi/p3peermgr.cc
++++ b/libretroshare/src/pqi/p3peermgr.cc
+@@ -73,7 +73,7 @@ static struct RsLog::logInfo p3peermgrzoneInfo = {RsLog::Default, "p3peermgr"};
+ #define MAX_AVAIL_PERIOD 230 //times a peer stay in available state when not connected
+ #define MIN_RETRY_PERIOD 140
+
+-static const std::string kConfigDefaultProxyServerIpAddr = "127.0.0.1";
++static const std::string kConfigDefaultProxyServerIpAddr = "0.0.0.0"; //wtf ?
+ static const uint16_t kConfigDefaultProxyServerPortTor = 9050; // standard port.
+ static const uint16_t kConfigDefaultProxyServerPortI2P = 4447; // I2Pd's standard port
+
+@@ -214,7 +214,7 @@ bool p3PeerMgrIMPL::forceHiddenNode()
+ // Force the Port.
+ struct sockaddr_storage loopback;
+ sockaddr_storage_clear(loopback);
+- sockaddr_storage_ipv4_aton(loopback, "127.0.0.1");
++ sockaddr_storage_ipv4_aton(loopback, "0.0.0.0"); //should it be configurable ?
+ uint16_t port = sockaddr_storage_port(mOwnState.localaddr);
+ sockaddr_storage_ipv4_setport(loopback, port);
+
+diff --git a/libretroshare/src/rsserver/p3peers.cc b/libretroshare/src/rsserver/p3peers.cc
+index bd4e11c..41b07d2 100644
+--- a/libretroshare/src/rsserver/p3peers.cc
++++ b/libretroshare/src/rsserver/p3peers.cc
+@@ -311,12 +311,12 @@ bool p3Peers::getPeerDetails(const RsPeerId& id, RsPeerDetails &d)
+ d.hiddenNodePort = ps.hiddenPort;
+ d.hiddenType = ps.hiddenType;
+
+- if(sockaddr_storage_isnull(ps.localaddr)) // that happens if the address is not initialised.
++/* if(sockaddr_storage_isnull(ps.localaddr)) // that happens if the address is not initialised.
+ {
+ d.localAddr = "INVALID_IP";
+ d.localPort = 0 ;
+ }
+- else
++ else */
+ {
+ d.localAddr = sockaddr_storage_iptostring(ps.localaddr);
+ d.localPort = sockaddr_storage_port(ps.localaddr);
+@@ -332,12 +332,12 @@ bool p3Peers::getPeerDetails(const RsPeerId& id, RsPeerDetails &d)
+ d.hiddenNodePort = 0;
+ d.hiddenType = RS_HIDDEN_TYPE_NONE;
+
+- if (sockaddr_storage_isnull(ps.localaddr))
++/* if (sockaddr_storage_isnull(ps.localaddr))
+ {
+ d.localAddr = "INVALID_IP";
+ d.localPort = 0;
+ }
+- else
++ else */
+ {
+ d.localAddr = sockaddr_storage_iptostring(ps.localaddr);
+ d.localPort = sockaddr_storage_port(ps.localaddr);
+diff --git a/libretroshare/src/rsserver/rsinit.cc b/libretroshare/src/rsserver/rsinit.cc
+index c34ae7b..e50d535 100644
+--- a/libretroshare/src/rsserver/rsinit.cc
++++ b/libretroshare/src/rsserver/rsinit.cc
+@@ -112,7 +112,7 @@ class RsInitConfig
+
+ /* Listening Port */
+ bool forceExtPort;
+- bool forceLocalAddr;
++// bool forceLocalAddr;
+ unsigned short port;
+ std::string inet ;
+
+@@ -170,12 +170,12 @@ void RsInit::InitRsConfig()
+
+ rsInitConfig->load_trustedpeer = false;
+ rsInitConfig->port = 0 ;
+- rsInitConfig->forceLocalAddr = false;
++// rsInitConfig->forceLocalAddr = false;
+ rsInitConfig->haveLogFile = false;
+ rsInitConfig->outStderr = false;
+ rsInitConfig->forceExtPort = false;
+
+- rsInitConfig->inet = std::string("127.0.0.1");
++ rsInitConfig->inet = std::string("0.0.0.0");
+
+ rsInitConfig->autoLogin = false; // .
+ rsInitConfig->startMinimised = false;
+@@ -376,7 +376,7 @@ int RsInit::InitRetroShare(int argcIgnored, char **argvIgnored, bool strictCheck
+ if(rsInitConfig->autoLogin) rsInitConfig->startMinimised = true ;
+ if(rsInitConfig->outStderr) rsInitConfig->haveLogFile = false ;
+ if(!rsInitConfig->logfname.empty()) rsInitConfig->haveLogFile = true;
+- if(rsInitConfig->inet != "127.0.0.1") rsInitConfig->forceLocalAddr = true;
++// if(rsInitConfig->inet != "127.0.0.1") rsInitConfig->forceLocalAddr = true; //wtf ?
+ #ifdef LOCALNET_TESTING
+ if(!portRestrictions.empty()) doPortRestrictions = true;
+ #endif
+@@ -1687,23 +1687,23 @@ int RsServer::StartupRetroShare()
+ /**************************************************************************/
+ std::cerr << "Force Any Configuration before Startup (After Load)" << std::endl;
+
+- if (rsInitConfig->forceLocalAddr)
+- {
+- struct sockaddr_storage laddr;
+-
+- /* clean sockaddr before setting values (MaxOSX) */
+- sockaddr_storage_clear(laddr);
+-
+- struct sockaddr_in *lap = (struct sockaddr_in *) &laddr;
+-
+- lap->sin_family = AF_INET;
+- lap->sin_port = htons(rsInitConfig->port);
+-
+- // universal
+- lap->sin_addr.s_addr = inet_addr(rsInitConfig->inet.c_str());
+-
+- mPeerMgr->setLocalAddress(ownId, laddr);
+- }
++// if (rsInitConfig->forceLocalAddr)
++// {
++// struct sockaddr_storage laddr;
++//
++// /* clean sockaddr before setting values (MaxOSX) */
++// sockaddr_storage_clear(laddr);
++//
++// struct sockaddr_in *lap = (struct sockaddr_in *) &laddr;
++//
++// lap->sin_family = AF_INET;
++// lap->sin_port = htons(rsInitConfig->port);
++//
++// // universal
++// lap->sin_addr.s_addr = inet_addr(rsInitConfig->inet.c_str());
++//
++// mPeerMgr->setLocalAddress(ownId, laddr);
++// }
+
+ if (rsInitConfig->forceExtPort)
+ {
+diff --git a/retroshare-gui/src/gui/settings/ServerPage.cpp b/retroshare-gui/src/gui/settings/ServerPage.cpp
+index 9773570..126b546 100755
+--- a/retroshare-gui/src/gui/settings/ServerPage.cpp
++++ b/retroshare-gui/src/gui/settings/ServerPage.cpp
+@@ -953,7 +953,6 @@ void ServerPage::loadHiddenNode()
+ /* TOR PAGE SETTINGS */
+
+ /* set local address */
+- ui.hiddenpage_localAddress->setEnabled(false);
+ ui.hiddenpage_localAddress->setText(QString::fromStdString(detail.localAddr));
+ ui.hiddenpage_localPort -> setValue(detail.localPort);
+
+@@ -1097,10 +1096,9 @@ 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.hiddenpage_localPort->value())
++ if (detail.localPort != ui.hiddenpage_localPort->value() || detail.localAddr != ui.hiddenpage_localAddress->displayText().toStdString())
+ {
+- // Set Local Address - force to 127.0.0.1
+- rsPeers->setLocalAddress(ownId, "127.0.0.1", ui.hiddenpage_localPort->value());
++ rsPeers->setLocalAddress(ownId, ui.hiddenpage_localAddress->text().toStdString(), ui.hiddenpage_localPort->value());
+ }
+
+ std::string hiddenAddr = ui.hiddenpage_serviceAddress->text().toStdString();
diff --git a/net-p2p/retroshare/retroshare-scm.ebuild b/net-p2p/retroshare/retroshare-scm.ebuild
index f637940..ee9cde6 100644
--- a/net-p2p/retroshare/retroshare-scm.ebuild
+++ b/net-p2p/retroshare/retroshare-scm.ebuild
@@ -100,6 +100,8 @@ src_prepare() {
-e '/isEmpty(SQLCIPHER_OK) {/aerror(libsqlcipher not found)' \
retroshare-gui/src/retroshare-gui.pro \
retroshare-nogui/src/retroshare-nogui.pro || die 'sed on retroshare-gui/src/retroshare-gui.pro failed'
+
+ epatch "${FILESDIR}/hidden_service.patch"
epatch_user
}