mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-08-11 15:50:38 -04:00
Improvements for V0.6 logins to support hidden nodes.
- Separated Acount stuff from rsinit.cc => rsaccounts.cc - Moved Account Directory to HID06_xxxxxxx, or STD06_xxxxx This allows us to check for Hidden immediately And prevents v0.5 accounts being used with 0.6 - Added functions to support Proxy, and Hidden stuff. - Changed Minimum port to 10 to allow port 80 to be used by those who must. git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.6-initdev@7027 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
parent
9d78ad8942
commit
39db508ce7
15 changed files with 1783 additions and 1177 deletions
|
@ -103,10 +103,10 @@ std::string textPeerConnectState(peerState &state)
|
|||
}
|
||||
|
||||
|
||||
p3PeerMgrIMPL::p3PeerMgrIMPL( const std::string& ssl_own_id,
|
||||
const std::string& gpg_own_id,
|
||||
const std::string& gpg_own_name,
|
||||
const std::string& ssl_own_location)
|
||||
p3PeerMgrIMPL::p3PeerMgrIMPL(const std::string& ssl_own_id,
|
||||
const std::string& gpg_own_id,
|
||||
const std::string& gpg_own_name,
|
||||
const std::string& ssl_own_location)
|
||||
:p3Config(CONFIG_TYPE_PEERS), mPeerMtx("p3PeerMgr"), mStatusChanged(false)
|
||||
{
|
||||
|
||||
|
@ -130,11 +130,7 @@ p3PeerMgrIMPL::p3PeerMgrIMPL( const std::string& ssl_own_id,
|
|||
// setup default ProxyServerAddress.
|
||||
sockaddr_storage_clear(mProxyServerAddress);
|
||||
sockaddr_storage_ipv4_aton(mProxyServerAddress, "127.0.0.1");
|
||||
sockaddr_storage_ipv4_setport(mProxyServerAddress, 9100);
|
||||
|
||||
//inet_aton("127.0.0.1", &(mProxyServerAddress.sin_addr));
|
||||
//mProxyServerAddress.sin_port = htons(9100);
|
||||
|
||||
sockaddr_storage_ipv4_setport(mProxyServerAddress, 9150);
|
||||
}
|
||||
|
||||
#ifdef PEER_DEBUG
|
||||
|
@ -151,17 +147,45 @@ void p3PeerMgrIMPL::setManagers(p3LinkMgrIMPL *linkMgr, p3NetMgrIMPL *netMgr)
|
|||
mNetMgr = netMgr;
|
||||
}
|
||||
|
||||
|
||||
bool p3PeerMgrIMPL::setupHiddenNode(const std::string &hiddenAddress, const uint16_t hiddenPort)
|
||||
{
|
||||
std::cerr << "p3PeerMgrIMPL::setupHiddenNode()";
|
||||
std::cerr << " Address: " << hiddenAddress;
|
||||
std::cerr << " Port: " << hiddenPort;
|
||||
std::cerr << std::endl;
|
||||
{
|
||||
RsStackMutex stack(mPeerMtx); /****** STACK LOCK MUTEX *******/
|
||||
|
||||
std::cerr << "p3PeerMgrIMPL::setupHiddenNode()";
|
||||
std::cerr << " Address: " << hiddenAddress;
|
||||
std::cerr << " Port: " << hiddenPort;
|
||||
std::cerr << std::endl;
|
||||
|
||||
mOwnState.hiddenNode = true;
|
||||
mOwnState.hiddenPort = hiddenPort;
|
||||
mOwnState.hiddenDomain = hiddenAddress;
|
||||
}
|
||||
|
||||
forceHiddenNode();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
bool p3PeerMgrIMPL::forceHiddenNode()
|
||||
{
|
||||
{
|
||||
RsStackMutex stack(mPeerMtx); /****** STACK LOCK MUTEX *******/
|
||||
if (RS_NET_MODE_HIDDEN != mOwnState.netMode)
|
||||
{
|
||||
std::cerr << "p3PeerMgrIMPL::forceHiddenNode() Required!";
|
||||
std::cerr << std::endl;
|
||||
}
|
||||
mOwnState.hiddenNode = true;
|
||||
|
||||
// force external address - otherwise its invalid.
|
||||
sockaddr_storage_clear(mOwnState.serveraddr);
|
||||
sockaddr_storage_ipv4_aton(mOwnState.serveraddr, "0.0.0.0");
|
||||
sockaddr_storage_ipv4_setport(mOwnState.serveraddr, 0);
|
||||
}
|
||||
|
||||
setOwnNetworkMode(RS_NET_MODE_HIDDEN);
|
||||
mOwnState.hiddenNode = true;
|
||||
mOwnState.hiddenPort = hiddenPort;
|
||||
mOwnState.hiddenDomain = hiddenAddress;
|
||||
|
||||
// switch off DHT too.
|
||||
setOwnVisState(mOwnState.vs_disc, RS_VS_DHT_OFF);
|
||||
|
@ -170,13 +194,14 @@ bool p3PeerMgrIMPL::setupHiddenNode(const std::string &hiddenAddress, const uint
|
|||
struct sockaddr_storage loopback;
|
||||
sockaddr_storage_clear(loopback);
|
||||
sockaddr_storage_ipv4_aton(loopback, "127.0.0.1");
|
||||
sockaddr_storage_ipv4_setport(loopback, hiddenPort);
|
||||
|
||||
//inet_aton("127.0.0.1", &(loopback.sin_addr));
|
||||
//loopback.sin_port = htons(hiddenPort);
|
||||
uint16_t port = sockaddr_storage_port(mOwnState.localaddr);
|
||||
sockaddr_storage_ipv4_setport(loopback, port);
|
||||
|
||||
setLocalAddress(AuthSSL::getAuthSSL()->OwnId(), loopback);
|
||||
|
||||
|
||||
mNetMgr->setIPServersEnabled(false);
|
||||
|
||||
IndicateConfigChanged(); /**** INDICATE MSG CONFIG CHANGED! *****/
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -357,6 +382,8 @@ bool p3PeerMgrIMPL::setHiddenDomainPort(const std::string &ssl_id, const std::st
|
|||
std::cerr << "p3PeerMgrIMPL::setHiddenDomainPort()";
|
||||
std::cerr << std::endl;
|
||||
|
||||
IndicateConfigChanged(); /**** INDICATE MSG CONFIG CHANGED! *****/
|
||||
|
||||
if (ssl_id == AuthSSL::getAuthSSL()->OwnId())
|
||||
{
|
||||
mOwnState.hiddenNode = true;
|
||||
|
@ -394,6 +421,15 @@ bool p3PeerMgrIMPL::setProxyServerAddress(const struct sockaddr_storage &proxy_a
|
|||
return true;
|
||||
}
|
||||
|
||||
|
||||
bool p3PeerMgrIMPL::getProxyServerAddress(struct sockaddr_storage &proxy_addr)
|
||||
{
|
||||
RsStackMutex stack(mPeerMtx); /****** STACK LOCK MUTEX *******/
|
||||
|
||||
proxy_addr = mProxyServerAddress;
|
||||
return true;
|
||||
}
|
||||
|
||||
bool p3PeerMgrIMPL::getProxyAddress(const std::string &ssl_id, struct sockaddr_storage &proxy_addr, std::string &domain_addr, uint16_t &domain_port)
|
||||
{
|
||||
RsStackMutex stack(mPeerMtx); /****** STACK LOCK MUTEX *******/
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue