mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-02-05 01:25:39 -05:00
fixed bug in loading config file to set max rates
This commit is contained in:
parent
5a0fa66ac0
commit
6b78275677
@ -2087,6 +2087,7 @@ bool p3PeerMgrIMPL::getMaxRates(const RsPeerId& pid,uint32_t& maxUp,uint32_t& ma
|
|||||||
|
|
||||||
maxUp = it->second.maxUpRate ;
|
maxUp = it->second.maxUpRate ;
|
||||||
maxDn = it->second.maxDnRate ;
|
maxDn = it->second.maxDnRate ;
|
||||||
|
|
||||||
return true ;
|
return true ;
|
||||||
}
|
}
|
||||||
bool p3PeerMgrIMPL::setMaxRates(const RsPeerId& pid,uint32_t maxUp,uint32_t maxDn)
|
bool p3PeerMgrIMPL::setMaxRates(const RsPeerId& pid,uint32_t maxUp,uint32_t maxDn)
|
||||||
@ -2130,279 +2131,279 @@ void p3PeerMgrIMPL::saveDone()
|
|||||||
bool p3PeerMgrIMPL::loadList(std::list<RsItem *>& load)
|
bool p3PeerMgrIMPL::loadList(std::list<RsItem *>& load)
|
||||||
{
|
{
|
||||||
|
|
||||||
// DEFAULTS.
|
// DEFAULTS.
|
||||||
bool useExtAddrFinder = true;
|
bool useExtAddrFinder = true;
|
||||||
std::string proxyIpAddressTor = kConfigDefaultProxyServerIpAddr;
|
std::string proxyIpAddressTor = kConfigDefaultProxyServerIpAddr;
|
||||||
uint16_t proxyPortTor = kConfigDefaultProxyServerPortTor;
|
uint16_t proxyPortTor = kConfigDefaultProxyServerPortTor;
|
||||||
std::string proxyIpAddressI2P = kConfigDefaultProxyServerIpAddr;
|
std::string proxyIpAddressI2P = kConfigDefaultProxyServerIpAddr;
|
||||||
uint16_t proxyPortI2P = kConfigDefaultProxyServerPortI2P;
|
uint16_t proxyPortI2P = kConfigDefaultProxyServerPortI2P;
|
||||||
|
|
||||||
if (load.empty()) {
|
if (load.empty()) {
|
||||||
std::cerr << "p3PeerMgrIMPL::loadList() list is empty, it may be a configuration problem." << std::endl;
|
std::cerr << "p3PeerMgrIMPL::loadList() list is empty, it may be a configuration problem." << std::endl;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef PEER_DEBUG
|
#ifdef PEER_DEBUG
|
||||||
std::cerr << "p3PeerMgrIMPL::loadList() Item Count: " << load.size() << std::endl;
|
std::cerr << "p3PeerMgrIMPL::loadList() Item Count: " << load.size() << std::endl;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
RsPeerId ownId = getOwnId();
|
RsPeerId ownId = getOwnId();
|
||||||
|
|
||||||
/* load the list of peers */
|
/* load the list of peers */
|
||||||
std::list<RsItem *>::iterator it;
|
std::list<RsItem *>::iterator it;
|
||||||
for(it = load.begin(); it != load.end(); ++it)
|
for(it = load.begin(); it != load.end(); ++it)
|
||||||
{
|
{
|
||||||
RsPeerNetItem *pitem = dynamic_cast<RsPeerNetItem *>(*it);
|
RsPeerNetItem *pitem = dynamic_cast<RsPeerNetItem *>(*it);
|
||||||
if (pitem)
|
if (pitem)
|
||||||
{
|
{
|
||||||
RsPeerId peer_id = pitem->peerId ;
|
RsPeerId peer_id = pitem->peerId ;
|
||||||
RsPgpId peer_pgp_id = pitem->pgpId ;
|
RsPgpId peer_pgp_id = pitem->pgpId ;
|
||||||
|
|
||||||
if (peer_id == ownId)
|
if (peer_id == ownId)
|
||||||
{
|
{
|
||||||
#ifdef PEER_DEBUG
|
#ifdef PEER_DEBUG
|
||||||
std::cerr << "p3PeerMgrIMPL::loadList() Own Config Item:" << std::endl;
|
std::cerr << "p3PeerMgrIMPL::loadList() Own Config Item:" << std::endl;
|
||||||
pitem->print(std::cerr, 10);
|
pitem->print(std::cerr, 10);
|
||||||
std::cerr << std::endl;
|
std::cerr << std::endl;
|
||||||
#endif
|
#endif
|
||||||
/* add ownConfig */
|
/* add ownConfig */
|
||||||
setOwnNetworkMode(pitem->netMode);
|
setOwnNetworkMode(pitem->netMode);
|
||||||
setOwnVisState(pitem->vs_disc, pitem->vs_dht);
|
setOwnVisState(pitem->vs_disc, pitem->vs_dht);
|
||||||
|
|
||||||
mOwnState.gpg_id = AuthGPG::getAuthGPG()->getGPGOwnId();
|
mOwnState.gpg_id = AuthGPG::getAuthGPG()->getGPGOwnId();
|
||||||
mOwnState.location = AuthSSL::getAuthSSL()->getOwnLocation();
|
mOwnState.location = AuthSSL::getAuthSSL()->getOwnLocation();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
#ifdef PEER_DEBUG
|
#ifdef PEER_DEBUG
|
||||||
std::cerr << "p3PeerMgrIMPL::loadList() Peer Config Item:" << std::endl;
|
std::cerr << "p3PeerMgrIMPL::loadList() Peer Config Item:" << std::endl;
|
||||||
pitem->print(std::cerr, 10);
|
pitem->print(std::cerr, 10);
|
||||||
std::cerr << std::endl;
|
std::cerr << std::endl;
|
||||||
#endif
|
#endif
|
||||||
/* ************* */
|
/* ************* */
|
||||||
// permission flags is used as a mask for the existing perms, so we set it to 0xffff
|
// permission flags is used as a mask for the existing perms, so we set it to 0xffff
|
||||||
addFriend(peer_id, peer_pgp_id, pitem->netMode, pitem->vs_disc, pitem->vs_dht, pitem->lastContact, RS_NODE_PERM_ALL);
|
addFriend(peer_id, peer_pgp_id, pitem->netMode, pitem->vs_disc, pitem->vs_dht, pitem->lastContact, RS_NODE_PERM_ALL);
|
||||||
setLocation(pitem->peerId, pitem->location);
|
setLocation(pitem->peerId, pitem->location);
|
||||||
}
|
}
|
||||||
|
|
||||||
#warning needs to talk to pqihandler from here
|
|
||||||
//setMaxRates(pitem->peerId,pitem->maxUploadRate,pitem->maxDownloadRate) ;
|
|
||||||
|
|
||||||
if (pitem->netMode == RS_NET_MODE_HIDDEN)
|
// this is the external interface, but the
|
||||||
{
|
setMaxRates(pitem->peerId,pitem->maxUploadRate,pitem->maxDownloadRate) ;
|
||||||
/* set only the hidden stuff & localAddress */
|
|
||||||
setLocalAddress(peer_id, pitem->localAddrV4.addr);
|
|
||||||
setHiddenDomainPort(peer_id, pitem->domain_addr, pitem->domain_port);
|
|
||||||
|
|
||||||
}
|
if (pitem->netMode == RS_NET_MODE_HIDDEN)
|
||||||
else
|
{
|
||||||
{
|
/* set only the hidden stuff & localAddress */
|
||||||
setLocalAddress(peer_id, pitem->localAddrV4.addr);
|
setLocalAddress(peer_id, pitem->localAddrV4.addr);
|
||||||
setExtAddress(peer_id, pitem->extAddrV4.addr);
|
setHiddenDomainPort(peer_id, pitem->domain_addr, pitem->domain_port);
|
||||||
setDynDNS (peer_id, pitem->dyndns);
|
|
||||||
|
|
||||||
/* convert addresses */
|
}
|
||||||
pqiIpAddrSet addrs;
|
else
|
||||||
addrs.mLocal.extractFromTlv(pitem->localAddrList);
|
{
|
||||||
addrs.mExt.extractFromTlv(pitem->extAddrList);
|
setLocalAddress(peer_id, pitem->localAddrV4.addr);
|
||||||
|
setExtAddress(peer_id, pitem->extAddrV4.addr);
|
||||||
updateAddressList(peer_id, addrs);
|
setDynDNS (peer_id, pitem->dyndns);
|
||||||
}
|
|
||||||
|
|
||||||
delete(*it);
|
/* convert addresses */
|
||||||
|
pqiIpAddrSet addrs;
|
||||||
|
addrs.mLocal.extractFromTlv(pitem->localAddrList);
|
||||||
|
addrs.mExt.extractFromTlv(pitem->extAddrList);
|
||||||
|
|
||||||
continue;
|
updateAddressList(peer_id, addrs);
|
||||||
}
|
}
|
||||||
|
|
||||||
RsConfigKeyValueSet *vitem = dynamic_cast<RsConfigKeyValueSet *>(*it) ;
|
delete(*it);
|
||||||
if (vitem)
|
|
||||||
{
|
continue;
|
||||||
RsStackMutex stack(mPeerMtx); /****** STACK LOCK MUTEX *******/
|
}
|
||||||
|
|
||||||
|
RsConfigKeyValueSet *vitem = dynamic_cast<RsConfigKeyValueSet *>(*it) ;
|
||||||
|
if (vitem)
|
||||||
|
{
|
||||||
|
RsStackMutex stack(mPeerMtx); /****** STACK LOCK MUTEX *******/
|
||||||
|
|
||||||
#ifdef PEER_DEBUG
|
#ifdef PEER_DEBUG
|
||||||
std::cerr << "p3PeerMgrIMPL::loadList() General Variable Config Item:" << std::endl;
|
std::cerr << "p3PeerMgrIMPL::loadList() General Variable Config Item:" << std::endl;
|
||||||
vitem->print(std::cerr, 10);
|
vitem->print(std::cerr, 10);
|
||||||
std::cerr << std::endl;
|
std::cerr << std::endl;
|
||||||
#endif
|
#endif
|
||||||
std::list<RsTlvKeyValue>::iterator kit;
|
std::list<RsTlvKeyValue>::iterator kit;
|
||||||
for(kit = vitem->tlvkvs.pairs.begin(); kit != vitem->tlvkvs.pairs.end(); ++kit)
|
for(kit = vitem->tlvkvs.pairs.begin(); kit != vitem->tlvkvs.pairs.end(); ++kit)
|
||||||
{
|
{
|
||||||
if (kit->key == kConfigKeyExtIpFinder)
|
if (kit->key == kConfigKeyExtIpFinder)
|
||||||
{
|
{
|
||||||
useExtAddrFinder = (kit->value == "TRUE");
|
useExtAddrFinder = (kit->value == "TRUE");
|
||||||
#ifdef PEER_DEBUG
|
#ifdef PEER_DEBUG
|
||||||
std::cerr << "setting use_extr_addr_finder to " << useExtAddrFinder << std::endl ;
|
std::cerr << "setting use_extr_addr_finder to " << useExtAddrFinder << std::endl ;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
// Tor
|
// Tor
|
||||||
else if (kit->key == kConfigKeyProxyServerIpAddrTor)
|
else if (kit->key == kConfigKeyProxyServerIpAddrTor)
|
||||||
{
|
{
|
||||||
proxyIpAddressTor = kit->value;
|
proxyIpAddressTor = kit->value;
|
||||||
#ifdef PEER_DEBUG
|
#ifdef PEER_DEBUG
|
||||||
std::cerr << "Loaded proxyIpAddress for Tor: " << proxyIpAddressTor;
|
std::cerr << "Loaded proxyIpAddress for Tor: " << proxyIpAddressTor;
|
||||||
std::cerr << std::endl ;
|
std::cerr << std::endl ;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
}
|
|
||||||
else if (kit->key == kConfigKeyProxyServerPortTor)
|
|
||||||
{
|
|
||||||
proxyPortTor = atoi(kit->value.c_str());
|
|
||||||
#ifdef PEER_DEBUG
|
|
||||||
std::cerr << "Loaded proxyPort for Tor: " << proxyPortTor;
|
|
||||||
std::cerr << std::endl ;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
// I2p
|
|
||||||
else if (kit->key == kConfigKeyProxyServerIpAddrI2P)
|
|
||||||
{
|
|
||||||
proxyIpAddressI2P = kit->value;
|
|
||||||
#ifdef PEER_DEBUG
|
|
||||||
std::cerr << "Loaded proxyIpAddress for I2P: " << proxyIpAddressI2P;
|
|
||||||
std::cerr << std::endl ;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
else if (kit->key == kConfigKeyProxyServerPortI2P)
|
|
||||||
{
|
|
||||||
proxyPortI2P = atoi(kit->value.c_str());
|
|
||||||
#ifdef PEER_DEBUG
|
|
||||||
std::cerr << "Loaded proxyPort for I2P: " << proxyPortI2P;
|
|
||||||
std::cerr << std::endl ;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
delete(*it);
|
}
|
||||||
|
else if (kit->key == kConfigKeyProxyServerPortTor)
|
||||||
|
{
|
||||||
|
proxyPortTor = atoi(kit->value.c_str());
|
||||||
|
#ifdef PEER_DEBUG
|
||||||
|
std::cerr << "Loaded proxyPort for Tor: " << proxyPortTor;
|
||||||
|
std::cerr << std::endl ;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
// I2p
|
||||||
|
else if (kit->key == kConfigKeyProxyServerIpAddrI2P)
|
||||||
|
{
|
||||||
|
proxyIpAddressI2P = kit->value;
|
||||||
|
#ifdef PEER_DEBUG
|
||||||
|
std::cerr << "Loaded proxyIpAddress for I2P: " << proxyIpAddressI2P;
|
||||||
|
std::cerr << std::endl ;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
else if (kit->key == kConfigKeyProxyServerPortI2P)
|
||||||
|
{
|
||||||
|
proxyPortI2P = atoi(kit->value.c_str());
|
||||||
|
#ifdef PEER_DEBUG
|
||||||
|
std::cerr << "Loaded proxyPort for I2P: " << proxyPortI2P;
|
||||||
|
std::cerr << std::endl ;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
continue;
|
delete(*it);
|
||||||
}
|
|
||||||
|
|
||||||
RsPeerGroupItem *gitem = dynamic_cast<RsPeerGroupItem *>(*it) ;
|
continue;
|
||||||
if (gitem)
|
}
|
||||||
{
|
|
||||||
RsStackMutex stack(mPeerMtx); /****** STACK LOCK MUTEX *******/
|
RsPeerGroupItem *gitem = dynamic_cast<RsPeerGroupItem *>(*it) ;
|
||||||
|
if (gitem)
|
||||||
|
{
|
||||||
|
RsStackMutex stack(mPeerMtx); /****** STACK LOCK MUTEX *******/
|
||||||
|
|
||||||
#ifdef PEER_DEBUG
|
#ifdef PEER_DEBUG
|
||||||
std::cerr << "p3PeerMgrIMPL::loadList() Peer group item:" << std::endl;
|
std::cerr << "p3PeerMgrIMPL::loadList() Peer group item:" << std::endl;
|
||||||
gitem->print(std::cerr, 10);
|
gitem->print(std::cerr, 10);
|
||||||
std::cerr << std::endl;
|
std::cerr << std::endl;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
groupList.push_back(gitem); // don't delete
|
groupList.push_back(gitem); // don't delete
|
||||||
|
|
||||||
if ((gitem->flag & RS_GROUP_FLAG_STANDARD) == 0) {
|
if ((gitem->flag & RS_GROUP_FLAG_STANDARD) == 0) {
|
||||||
/* calculate group id */
|
/* calculate group id */
|
||||||
uint32_t groupId = atoi(gitem->id.c_str());
|
uint32_t groupId = atoi(gitem->id.c_str());
|
||||||
if (groupId > lastGroupId) {
|
if (groupId > lastGroupId) {
|
||||||
lastGroupId = groupId;
|
lastGroupId = groupId;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
RsPeerServicePermissionItem *sitem = dynamic_cast<RsPeerServicePermissionItem*>(*it) ;
|
RsPeerServicePermissionItem *sitem = dynamic_cast<RsPeerServicePermissionItem*>(*it) ;
|
||||||
|
|
||||||
if(sitem)
|
if(sitem)
|
||||||
{
|
{
|
||||||
RsStackMutex stack(mPeerMtx); /****** STACK LOCK MUTEX *******/
|
RsStackMutex stack(mPeerMtx); /****** STACK LOCK MUTEX *******/
|
||||||
|
|
||||||
#ifdef PEER_DEBUG
|
#ifdef PEER_DEBUG
|
||||||
std::cerr << "Loaded service permission item: " << std::endl;
|
std::cerr << "Loaded service permission item: " << std::endl;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
for(uint32_t i=0;i<sitem->pgp_ids.size();++i)
|
for(uint32_t i=0;i<sitem->pgp_ids.size();++i)
|
||||||
if(AuthGPG::getAuthGPG()->isGPGAccepted(sitem->pgp_ids[i]) || sitem->pgp_ids[i] == AuthGPG::getAuthGPG()->getGPGOwnId())
|
if(AuthGPG::getAuthGPG()->isGPGAccepted(sitem->pgp_ids[i]) || sitem->pgp_ids[i] == AuthGPG::getAuthGPG()->getGPGOwnId())
|
||||||
{
|
{
|
||||||
mFriendsPermissionFlags[sitem->pgp_ids[i]] = sitem->service_flags[i] ;
|
mFriendsPermissionFlags[sitem->pgp_ids[i]] = sitem->service_flags[i] ;
|
||||||
#ifdef PEER_DEBUG
|
#ifdef PEER_DEBUG
|
||||||
std::cerr << " " << sitem->pgp_ids[i] << " - " << sitem->service_flags[i] << std::endl;
|
std::cerr << " " << sitem->pgp_ids[i] << " - " << sitem->service_flags[i] << std::endl;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#ifdef PEER_DEBUG
|
#ifdef PEER_DEBUG
|
||||||
else
|
else
|
||||||
std::cerr << " " << sitem->pgp_ids[i] << " - Not a friend!" << std::endl;
|
std::cerr << " " << sitem->pgp_ids[i] << " - Not a friend!" << std::endl;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
delete (*it);
|
delete (*it);
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
/* set missing groupIds */
|
/* set missing groupIds */
|
||||||
|
|
||||||
RsStackMutex stack(mPeerMtx); /****** STACK LOCK MUTEX *******/
|
RsStackMutex stack(mPeerMtx); /****** STACK LOCK MUTEX *******/
|
||||||
|
|
||||||
/* Standard groups */
|
/* Standard groups */
|
||||||
const int standardGroupCount = 5;
|
const int standardGroupCount = 5;
|
||||||
const char *standardGroup[standardGroupCount] = { RS_GROUP_ID_FRIENDS, RS_GROUP_ID_FAMILY, RS_GROUP_ID_COWORKERS, RS_GROUP_ID_OTHERS, RS_GROUP_ID_FAVORITES };
|
const char *standardGroup[standardGroupCount] = { RS_GROUP_ID_FRIENDS, RS_GROUP_ID_FAMILY, RS_GROUP_ID_COWORKERS, RS_GROUP_ID_OTHERS, RS_GROUP_ID_FAVORITES };
|
||||||
bool foundStandardGroup[standardGroupCount] = { false, false, false, false, false };
|
bool foundStandardGroup[standardGroupCount] = { false, false, false, false, false };
|
||||||
|
|
||||||
std::list<RsPeerGroupItem *>::iterator groupIt;
|
std::list<RsPeerGroupItem *>::iterator groupIt;
|
||||||
for (groupIt = groupList.begin(); groupIt != groupList.end(); ++groupIt) {
|
for (groupIt = groupList.begin(); groupIt != groupList.end(); ++groupIt) {
|
||||||
if ((*groupIt)->flag & RS_GROUP_FLAG_STANDARD) {
|
if ((*groupIt)->flag & RS_GROUP_FLAG_STANDARD) {
|
||||||
int i;
|
int i;
|
||||||
for (i = 0; i < standardGroupCount; ++i) {
|
for (i = 0; i < standardGroupCount; ++i) {
|
||||||
if ((*groupIt)->id == standardGroup[i]) {
|
if ((*groupIt)->id == standardGroup[i]) {
|
||||||
foundStandardGroup[i] = true;
|
foundStandardGroup[i] = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (i >= standardGroupCount) {
|
|
||||||
/* No more a standard group, remove the flag standard */
|
|
||||||
(*groupIt)->flag &= ~RS_GROUP_FLAG_STANDARD;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
uint32_t groupId = atoi((*groupIt)->id.c_str());
|
|
||||||
if (groupId == 0) {
|
|
||||||
rs_sprintf((*groupIt)->id, "%lu", lastGroupId++);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Initialize standard groups */
|
|
||||||
for (int i = 0; i < standardGroupCount; ++i) {
|
|
||||||
if (foundStandardGroup[i] == false) {
|
|
||||||
RsPeerGroupItem *gitem = new RsPeerGroupItem;
|
|
||||||
gitem->id = standardGroup[i];
|
|
||||||
gitem->name = standardGroup[i];
|
|
||||||
gitem->flag |= RS_GROUP_FLAG_STANDARD;
|
|
||||||
groupList.push_back(gitem);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// If we are hidden - don't want ExtAddrFinder - ever!
|
if (i >= standardGroupCount) {
|
||||||
if (isHidden())
|
/* No more a standard group, remove the flag standard */
|
||||||
{
|
(*groupIt)->flag &= ~RS_GROUP_FLAG_STANDARD;
|
||||||
useExtAddrFinder = false;
|
}
|
||||||
}
|
} else {
|
||||||
|
uint32_t groupId = atoi((*groupIt)->id.c_str());
|
||||||
|
if (groupId == 0) {
|
||||||
|
rs_sprintf((*groupIt)->id, "%lu", lastGroupId++);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
mNetMgr->setIPServersEnabled(useExtAddrFinder);
|
/* Initialize standard groups */
|
||||||
|
for (int i = 0; i < standardGroupCount; ++i) {
|
||||||
|
if (foundStandardGroup[i] == false) {
|
||||||
|
RsPeerGroupItem *gitem = new RsPeerGroupItem;
|
||||||
|
gitem->id = standardGroup[i];
|
||||||
|
gitem->name = standardGroup[i];
|
||||||
|
gitem->flag |= RS_GROUP_FLAG_STANDARD;
|
||||||
|
groupList.push_back(gitem);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Configure Proxy Server.
|
// If we are hidden - don't want ExtAddrFinder - ever!
|
||||||
struct sockaddr_storage proxy_addr;
|
if (isHidden())
|
||||||
// Tor
|
{
|
||||||
sockaddr_storage_clear(proxy_addr);
|
useExtAddrFinder = false;
|
||||||
sockaddr_storage_ipv4_aton(proxy_addr, proxyIpAddressTor.c_str());
|
}
|
||||||
sockaddr_storage_ipv4_setport(proxy_addr, proxyPortTor);
|
|
||||||
|
|
||||||
if (sockaddr_storage_isValidNet(proxy_addr))
|
mNetMgr->setIPServersEnabled(useExtAddrFinder);
|
||||||
{
|
|
||||||
setProxyServerAddress(RS_HIDDEN_TYPE_TOR, proxy_addr);
|
|
||||||
}
|
|
||||||
|
|
||||||
// I2P
|
// Configure Proxy Server.
|
||||||
sockaddr_storage_clear(proxy_addr);
|
struct sockaddr_storage proxy_addr;
|
||||||
sockaddr_storage_ipv4_aton(proxy_addr, proxyIpAddressI2P.c_str());
|
// Tor
|
||||||
sockaddr_storage_ipv4_setport(proxy_addr, proxyPortI2P);
|
sockaddr_storage_clear(proxy_addr);
|
||||||
|
sockaddr_storage_ipv4_aton(proxy_addr, proxyIpAddressTor.c_str());
|
||||||
|
sockaddr_storage_ipv4_setport(proxy_addr, proxyPortTor);
|
||||||
|
|
||||||
if (sockaddr_storage_isValidNet(proxy_addr))
|
if (sockaddr_storage_isValidNet(proxy_addr))
|
||||||
{
|
{
|
||||||
setProxyServerAddress(RS_HIDDEN_TYPE_I2P, proxy_addr);
|
setProxyServerAddress(RS_HIDDEN_TYPE_TOR, proxy_addr);
|
||||||
}
|
}
|
||||||
|
|
||||||
load.clear() ;
|
// I2P
|
||||||
return true;
|
sockaddr_storage_clear(proxy_addr);
|
||||||
|
sockaddr_storage_ipv4_aton(proxy_addr, proxyIpAddressI2P.c_str());
|
||||||
|
sockaddr_storage_ipv4_setport(proxy_addr, proxyPortI2P);
|
||||||
|
|
||||||
|
if (sockaddr_storage_isValidNet(proxy_addr))
|
||||||
|
{
|
||||||
|
setProxyServerAddress(RS_HIDDEN_TYPE_I2P, proxy_addr);
|
||||||
|
}
|
||||||
|
|
||||||
|
load.clear() ;
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user