mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-06-15 18:09:32 -04:00
Rewrite of the discovery system to be more private, with less traffic.
Split the visState into seperate vs_disc and vs_dht for easier handling. Split the heartbeat system into a separate service. Added IPv4 and IPv6 local/ext addresses into discovery & peer config. Fixed up samenet and samesubnet ipv4 calls. git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.6-initdev@6773 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
parent
70c947ba90
commit
90aa57a0f0
38 changed files with 3248 additions and 1543 deletions
|
@ -1085,7 +1085,8 @@ void p3LinkMgrIMPL::peerStatus(std::string id, const pqiIpAddrSet &addrs,
|
|||
details.ts = now;
|
||||
|
||||
bool updateNetConfig = (source == RS_CB_PERSON);
|
||||
uint32_t peerVisibility = 0;
|
||||
uint32_t peer_vs_disc = 0;
|
||||
uint32_t peer_vs_dht = 0;
|
||||
uint32_t peerNetMode = 0;
|
||||
|
||||
uint32_t ownNetMode = mNetMgr->getNetworkMode();
|
||||
|
@ -1219,20 +1220,20 @@ void p3LinkMgrIMPL::peerStatus(std::string id, const pqiIpAddrSet &addrs,
|
|||
/* always update VIS status */
|
||||
if (flags & RS_NET_FLAGS_USE_DISC)
|
||||
{
|
||||
peerVisibility &= (~RS_VIS_STATE_NODISC);
|
||||
peer_vs_disc = RS_VS_DISC_FULL;
|
||||
}
|
||||
else
|
||||
{
|
||||
peerVisibility |= RS_VIS_STATE_NODISC;
|
||||
peer_vs_disc = RS_VS_DISC_OFF;
|
||||
}
|
||||
|
||||
if (flags & RS_NET_FLAGS_USE_DHT)
|
||||
{
|
||||
peerVisibility &= (~RS_VIS_STATE_NODHT);
|
||||
peer_vs_dht = RS_VS_DHT_FULL;
|
||||
}
|
||||
else
|
||||
{
|
||||
peerVisibility |= RS_VIS_STATE_NODHT;
|
||||
peer_vs_dht = RS_VS_DHT_OFF;
|
||||
}
|
||||
|
||||
|
||||
|
@ -1303,7 +1304,7 @@ void p3LinkMgrIMPL::peerStatus(std::string id, const pqiIpAddrSet &addrs,
|
|||
bool newAddrs = mPeerMgr->updateAddressList(id, addrs);
|
||||
if (updateNetConfig)
|
||||
{
|
||||
mPeerMgr -> setVisState(id, peerVisibility);
|
||||
mPeerMgr -> setVisState(id, peer_vs_disc, peer_vs_dht);
|
||||
mPeerMgr -> setNetworkMode(id, peerNetMode);
|
||||
}
|
||||
|
||||
|
|
|
@ -140,8 +140,10 @@ p3NetMgrIMPL::p3NetMgrIMPL()
|
|||
mLocalAddr.ss_family = AF_INET;
|
||||
mExtAddr.ss_family = AF_INET;
|
||||
|
||||
// default to full.
|
||||
mVsDisc = RS_VS_DISC_FULL;
|
||||
mVsDht = RS_VS_DHT_FULL;
|
||||
|
||||
mVisState = 0 ;
|
||||
}
|
||||
|
||||
#ifdef NETMGR_DEBUG
|
||||
|
@ -570,10 +572,10 @@ void p3NetMgrIMPL::netDhtInit()
|
|||
uint32_t vs = 0;
|
||||
{
|
||||
RsStackMutex stack(mNetMtx); /*********** LOCKED MUTEX ************/
|
||||
vs = mVisState;
|
||||
vs = mVsDht;
|
||||
}
|
||||
|
||||
enableNetAssistConnect(!(vs & RS_VIS_STATE_NODHT));
|
||||
enableNetAssistConnect(vs != RS_VS_DHT_OFF);
|
||||
}
|
||||
|
||||
|
||||
|
@ -1167,15 +1169,16 @@ bool p3NetMgrIMPL::setNetworkMode(uint32_t netMode)
|
|||
}
|
||||
|
||||
|
||||
bool p3NetMgrIMPL::setVisState(uint32_t visState)
|
||||
bool p3NetMgrIMPL::setVisState(uint16_t vs_disc, uint16_t vs_dht)
|
||||
{
|
||||
RsStackMutex stack(mNetMtx); /****** STACK LOCK MUTEX *******/
|
||||
mVisState = visState;
|
||||
mVsDisc = vs_disc;
|
||||
mVsDht = vs_dht;
|
||||
|
||||
/* if we've started up - then tweak Dht On/Off */
|
||||
if (mNetStatus != RS_NET_UNKNOWN)
|
||||
{
|
||||
enableNetAssistConnect(!(mVisState & RS_VIS_STATE_NODHT));
|
||||
enableNetAssistConnect(mVsDht != RS_VS_DHT_OFF);
|
||||
}
|
||||
|
||||
return true;
|
||||
|
|
|
@ -115,7 +115,7 @@ virtual ~p3NetMgr() { return; }
|
|||
|
||||
// Setup Network State.
|
||||
virtual bool setNetworkMode(uint32_t netMode) = 0;
|
||||
virtual bool setVisState(uint32_t visState) = 0;
|
||||
virtual bool setVisState(uint16_t vs_disc, uint16_t vs_dht) = 0;
|
||||
|
||||
// Switch DHT On/Off.
|
||||
virtual bool netAssistFriend(const std::string &id, bool on) = 0;
|
||||
|
@ -171,7 +171,7 @@ class p3NetMgrIMPL: public p3NetMgr
|
|||
|
||||
// Setup Network State.
|
||||
virtual bool setNetworkMode(uint32_t netMode);
|
||||
virtual bool setVisState(uint32_t visState);
|
||||
virtual bool setVisState(uint16_t vs_disc, uint16_t vs_dht);
|
||||
|
||||
// Switch DHT On/Off.
|
||||
virtual bool netAssistFriend(const std::string &id, bool on);
|
||||
|
@ -330,7 +330,8 @@ void netStatusReset_locked();
|
|||
struct sockaddr_storage mExtAddr;
|
||||
|
||||
uint32_t mNetMode;
|
||||
uint32_t mVisState;
|
||||
uint16_t mVsDisc;
|
||||
uint16_t mVsDht;
|
||||
|
||||
time_t mNetInitTS;
|
||||
uint32_t mNetStatus;
|
||||
|
|
|
@ -78,7 +78,7 @@ void printConnectState(std::ostream &out, peerState &peer);
|
|||
peerState::peerState()
|
||||
:id("unknown"),
|
||||
gpg_id("unknown"),
|
||||
netMode(RS_NET_MODE_UNKNOWN), visState(RS_VIS_STATE_STD), lastcontact(0),
|
||||
netMode(RS_NET_MODE_UNKNOWN), vs_disc(RS_VS_DISC_FULL), vs_dht(RS_VS_DHT_FULL), lastcontact(0),
|
||||
hiddenNode(false), hiddenPort(0)
|
||||
{
|
||||
sockaddr_storage_clear(localaddr);
|
||||
|
@ -91,7 +91,7 @@ std::string textPeerConnectState(peerState &state)
|
|||
{
|
||||
std::string out = "Id: " + state.id + "\n";
|
||||
rs_sprintf_append(out, "NetMode: %lu\n", state.netMode);
|
||||
rs_sprintf_append(out, "VisState: %lu\n", state.visState);
|
||||
rs_sprintf_append(out, "VisState: Disc: %u Dht: %u\n", state.vs_disc, state.vs_dht);
|
||||
|
||||
out += "laddr: ";
|
||||
out += sockaddr_storage_tostring(state.localaddr);
|
||||
|
@ -122,7 +122,8 @@ p3PeerMgrIMPL::p3PeerMgrIMPL( const std::string& ssl_own_id,
|
|||
mOwnState.name = gpg_own_name ;
|
||||
mOwnState.location = ssl_own_location ;
|
||||
mOwnState.netMode = RS_NET_MODE_UPNP; // Default to UPNP.
|
||||
mOwnState.visState = 0;
|
||||
mOwnState.vs_disc = RS_VS_DISC_FULL;
|
||||
mOwnState.vs_dht = RS_VS_DHT_FULL;
|
||||
|
||||
lastGroupId = 1;
|
||||
|
||||
|
@ -163,7 +164,7 @@ bool p3PeerMgrIMPL::setupHiddenNode(const std::string &hiddenAddress, const uint
|
|||
mOwnState.hiddenDomain = hiddenAddress;
|
||||
|
||||
// switch off DHT too.
|
||||
setOwnVisState(RS_VIS_STATE_GRAY);
|
||||
setOwnVisState(mOwnState.vs_disc, RS_VS_DHT_OFF);
|
||||
|
||||
// Force the Port.
|
||||
struct sockaddr_storage loopback;
|
||||
|
@ -206,29 +207,32 @@ bool p3PeerMgrIMPL::setOwnNetworkMode(uint32_t netMode)
|
|||
return changed;
|
||||
}
|
||||
|
||||
bool p3PeerMgrIMPL::setOwnVisState(uint32_t visState)
|
||||
bool p3PeerMgrIMPL::setOwnVisState(uint16_t vs_disc, uint16_t vs_dht)
|
||||
{
|
||||
bool changed = false;
|
||||
{
|
||||
RsStackMutex stack(mPeerMtx); /****** STACK LOCK MUTEX *******/
|
||||
|
||||
std::string out;
|
||||
rs_sprintf(out, "p3PeerMgr::setOwnVisState() Existing vis: %lu Input vis: %lu", mOwnState.visState, visState);
|
||||
rs_sprintf(out, "p3PeerMgr::setOwnVisState() Existing vis: %u/%u Input vis: %u/%u",
|
||||
mOwnState.vs_disc, mOwnState.vs_dht, vs_disc, vs_dht);
|
||||
rslog(RSL_WARNING, p3peermgrzone, out);
|
||||
|
||||
#ifdef PEER_DEBUG
|
||||
std::cerr << out.c_str() << std::endl;
|
||||
#endif
|
||||
|
||||
if (mOwnState.visState != visState) {
|
||||
mOwnState.visState = visState;
|
||||
if (mOwnState.vs_disc != vs_disc || mOwnState.vs_dht != vs_dht)
|
||||
{
|
||||
mOwnState.vs_disc = vs_disc;
|
||||
mOwnState.vs_dht = vs_dht;
|
||||
changed = true;
|
||||
IndicateConfigChanged(); /**** INDICATE MSG CONFIG CHANGED! *****/
|
||||
}
|
||||
}
|
||||
|
||||
// Pass on Flags to NetMgr.
|
||||
mNetMgr->setVisState(visState);
|
||||
mNetMgr->setVisState(vs_disc, vs_dht);
|
||||
|
||||
return changed;
|
||||
}
|
||||
|
@ -594,7 +598,7 @@ bool p3PeerMgrIMPL::haveOnceConnected()
|
|||
/*******************************************************************/
|
||||
/*******************************************************************/
|
||||
|
||||
bool p3PeerMgrIMPL::addFriend(const std::string& input_id, const std::string& input_gpg_id, uint32_t netMode, uint32_t visState, time_t lastContact,ServicePermissionFlags service_flags)
|
||||
bool p3PeerMgrIMPL::addFriend(const std::string& input_id, const std::string& input_gpg_id, uint32_t netMode, uint16_t vs_disc, uint16_t vs_dht, time_t lastContact,ServicePermissionFlags service_flags)
|
||||
{
|
||||
bool notifyLinkMgr = false;
|
||||
std::string id = input_id ;
|
||||
|
@ -670,7 +674,9 @@ bool p3PeerMgrIMPL::addFriend(const std::string& input_id, const std::string& in
|
|||
it = mFriendList.find(id);
|
||||
|
||||
/* setup connectivity parameters */
|
||||
it->second.visState = visState;
|
||||
it->second.vs_disc = vs_disc;
|
||||
it->second.vs_dht = vs_dht;
|
||||
|
||||
it->second.netMode = netMode;
|
||||
it->second.lastcontact = lastContact;
|
||||
|
||||
|
@ -693,7 +699,8 @@ bool p3PeerMgrIMPL::addFriend(const std::string& input_id, const std::string& in
|
|||
pstate.gpg_id = gpg_id;
|
||||
pstate.name = AuthGPG::getAuthGPG()->getGPGName(gpg_id);
|
||||
|
||||
pstate.visState = visState;
|
||||
pstate.vs_disc = vs_disc;
|
||||
pstate.vs_dht = vs_dht;
|
||||
pstate.netMode = netMode;
|
||||
pstate.lastcontact = lastContact;
|
||||
|
||||
|
@ -711,7 +718,7 @@ bool p3PeerMgrIMPL::addFriend(const std::string& input_id, const std::string& in
|
|||
|
||||
if (notifyLinkMgr)
|
||||
{
|
||||
mLinkMgr->addFriend(id, !(visState & RS_VIS_STATE_NODHT));
|
||||
mLinkMgr->addFriend(id, vs_dht != RS_VS_DHT_OFF);
|
||||
}
|
||||
|
||||
service_flags &= servicePermissionFlags(gpg_id) ; // Always reduce the permissions.
|
||||
|
@ -1327,20 +1334,19 @@ bool p3PeerMgrIMPL::setLocation(const std::string &id, const std::string &loc
|
|||
return changed;
|
||||
}
|
||||
|
||||
bool p3PeerMgrIMPL::setVisState(const std::string &id, uint32_t visState)
|
||||
bool p3PeerMgrIMPL::setVisState(const std::string &id, uint16_t vs_disc, uint16_t vs_dht)
|
||||
{
|
||||
{
|
||||
std::string out;
|
||||
rs_sprintf(out, "p3PeerMgr::setVisState(%s, %lu)", id.c_str(), visState);
|
||||
rs_sprintf(out, "p3PeerMgr::setVisState(%s, %u, %u)", id.c_str(), vs_disc, vs_dht);
|
||||
rslog(RSL_WARNING, p3peermgrzone, out);
|
||||
}
|
||||
|
||||
if (id == AuthSSL::getAuthSSL()->OwnId())
|
||||
{
|
||||
return setOwnVisState(visState);
|
||||
return setOwnVisState(vs_disc, vs_dht);
|
||||
}
|
||||
|
||||
bool dht_state ;
|
||||
bool isFriend = false;
|
||||
bool changed = false;
|
||||
{
|
||||
|
@ -1361,53 +1367,47 @@ bool p3PeerMgrIMPL::setVisState(const std::string &id, uint32_t visState)
|
|||
}
|
||||
|
||||
/* "it" points to peer */
|
||||
if (it->second.visState != visState) {
|
||||
it->second.visState = visState;
|
||||
if ((it->second.vs_disc != vs_disc) || (it->second.vs_dht = vs_dht))
|
||||
{
|
||||
it->second.vs_disc = vs_disc;
|
||||
it->second.vs_dht = vs_dht;
|
||||
changed = true;
|
||||
|
||||
dht_state = it->second.visState & RS_VIS_STATE_NODHT ;
|
||||
|
||||
std::cerr << "p3PeerMgrIMPL::setVisState(" << id << ", " << std::hex << visState << std::dec << ") ";
|
||||
std::cerr << "p3PeerMgrIMPL::setVisState(" << id << ", DISC: " << vs_disc << " DHT: " << vs_dht << ") ";
|
||||
std::cerr << " NAME: " << it->second.name;
|
||||
|
||||
if (it->second.visState & RS_VIS_STATE_NODHT)
|
||||
switch(it->second.vs_disc)
|
||||
{
|
||||
std::cerr << " NO-DHT ";
|
||||
default:
|
||||
case RS_VS_DISC_OFF:
|
||||
std::cerr << " NO-DISC ";
|
||||
break;
|
||||
case RS_VS_DISC_MINIMAL:
|
||||
std::cerr << " MIN-DISC ";
|
||||
break;
|
||||
case RS_VS_DISC_FULL:
|
||||
std::cerr << " FULL-DISC ";
|
||||
break;
|
||||
}
|
||||
else
|
||||
switch(it->second.vs_dht)
|
||||
{
|
||||
std::cerr << " DHT-OK ";
|
||||
}
|
||||
if (it->second.visState & RS_VIS_STATE_NODISC)
|
||||
{
|
||||
std::cerr << " NO-DISC ";
|
||||
}
|
||||
else
|
||||
{
|
||||
std::cerr << " DISC-OK ";
|
||||
default:
|
||||
case RS_VS_DHT_OFF:
|
||||
std::cerr << " NO-DHT ";
|
||||
break;
|
||||
case RS_VS_DHT_PASSIVE:
|
||||
std::cerr << " PASSIVE-DHT ";
|
||||
break;
|
||||
case RS_VS_DHT_FULL:
|
||||
std::cerr << " FULL-DHT ";
|
||||
break;
|
||||
}
|
||||
std::cerr << std::endl;
|
||||
}
|
||||
}
|
||||
if(isFriend && changed)
|
||||
{
|
||||
/* toggle DHT state */
|
||||
if(dht_state)
|
||||
{
|
||||
|
||||
std::cerr << "p3PeerMgrIMPL::setVisState() setFriendVisibility => false";
|
||||
std::cerr << std::endl;
|
||||
|
||||
/* hidden from DHT world */
|
||||
mLinkMgr->setFriendVisibility(id, false);
|
||||
}
|
||||
else
|
||||
{
|
||||
std::cerr << "p3PeerMgrIMPL::setVisState() setFriendVisibility => true";
|
||||
std::cerr << std::endl;
|
||||
|
||||
mLinkMgr->setFriendVisibility(id, true);
|
||||
}
|
||||
mLinkMgr->setFriendVisibility(id, vs_dht != RS_VS_DHT_OFF);
|
||||
}
|
||||
|
||||
if (changed) {
|
||||
|
@ -1471,11 +1471,16 @@ bool p3PeerMgrIMPL::saveList(bool &cleanup, std::list<RsItem *>& saveData)
|
|||
#endif
|
||||
item->netMode = mOwnState.netMode;
|
||||
|
||||
item->visState = mOwnState.visState;
|
||||
item->vs_disc = mOwnState.vs_disc;
|
||||
item->vs_dht = mOwnState.vs_dht;
|
||||
|
||||
item->lastContact = mOwnState.lastcontact;
|
||||
|
||||
item->localAddr.addr = mOwnState.localaddr;
|
||||
item->extAddr.addr = mOwnState.serveraddr;
|
||||
item->localAddrV4.addr = mOwnState.localaddr;
|
||||
item->extAddrV4.addr = mOwnState.serveraddr;
|
||||
sockaddr_storage_clear(item->localAddrV6.addr);
|
||||
sockaddr_storage_clear(item->extAddrV6.addr);
|
||||
|
||||
item->dyndns = mOwnState.dyndns;
|
||||
mOwnState.ipAddrs.mLocal.loadTlv(item->localAddrList);
|
||||
mOwnState.ipAddrs.mExt.loadTlv(item->extAddrList);
|
||||
|
@ -1502,10 +1507,17 @@ bool p3PeerMgrIMPL::saveList(bool &cleanup, std::list<RsItem *>& saveData)
|
|||
item->gpg_id = (it->second).gpg_id;
|
||||
item->location = (it->second).location;
|
||||
item->netMode = (it->second).netMode;
|
||||
item->visState = (it->second).visState;
|
||||
item->vs_disc = (it->second).vs_disc;
|
||||
item->vs_dht = (it->second).vs_dht;
|
||||
|
||||
item->lastContact = (it->second).lastcontact;
|
||||
item->localAddr.addr = (it->second).localaddr;
|
||||
item->extAddr.addr = (it->second).serveraddr;
|
||||
|
||||
item->localAddrV4.addr = (it->second).localaddr;
|
||||
item->extAddrV4.addr = (it->second).serveraddr;
|
||||
sockaddr_storage_clear(item->localAddrV6.addr);
|
||||
sockaddr_storage_clear(item->extAddrV6.addr);
|
||||
|
||||
|
||||
item->dyndns = (it->second).dyndns;
|
||||
(it->second).ipAddrs.mLocal.loadTlv(item->localAddrList);
|
||||
(it->second).ipAddrs.mExt.loadTlv(item->extAddrList);
|
||||
|
@ -1613,7 +1625,7 @@ bool p3PeerMgrIMPL::loadList(std::list<RsItem *>& load)
|
|||
#endif
|
||||
/* add ownConfig */
|
||||
setOwnNetworkMode(pitem->netMode);
|
||||
setOwnVisState(pitem->visState);
|
||||
setOwnVisState(pitem->vs_disc, pitem->vs_dht);
|
||||
|
||||
mOwnState.gpg_id = AuthGPG::getAuthGPG()->getGPGOwnId();
|
||||
mOwnState.location = AuthSSL::getAuthSSL()->getOwnLocation();
|
||||
|
@ -1626,7 +1638,7 @@ bool p3PeerMgrIMPL::loadList(std::list<RsItem *>& load)
|
|||
std::cerr << std::endl;
|
||||
#endif
|
||||
/* ************* */
|
||||
addFriend(pitem->pid, pitem->gpg_id, pitem->netMode, pitem->visState, pitem->lastContact, RS_SERVICE_PERM_ALL);
|
||||
addFriend(pitem->pid, pitem->gpg_id, pitem->netMode, pitem->vs_disc, pitem->vs_dht, pitem->lastContact, RS_SERVICE_PERM_ALL);
|
||||
setLocation(pitem->pid, pitem->location);
|
||||
}
|
||||
|
||||
|
@ -1638,8 +1650,8 @@ bool p3PeerMgrIMPL::loadList(std::list<RsItem *>& load)
|
|||
}
|
||||
else
|
||||
{
|
||||
setLocalAddress(pitem->pid, pitem->localAddr.addr);
|
||||
setExtAddress(pitem->pid, pitem->extAddr.addr);
|
||||
setLocalAddress(pitem->pid, pitem->localAddrV4.addr);
|
||||
setExtAddress(pitem->pid, pitem->extAddrV4.addr);
|
||||
setDynDNS (pitem->pid, pitem->dyndns);
|
||||
|
||||
/* convert addresses */
|
||||
|
|
|
@ -35,24 +35,8 @@
|
|||
|
||||
#include "util/rsthreads.h"
|
||||
|
||||
/* RS_VIS_STATE_XXXX
|
||||
* determines how public this peer wants to be...
|
||||
*
|
||||
* STD = advertise to Peers / DHT checking etc
|
||||
* GRAY = share with friends / but not DHT
|
||||
* DARK = hidden from all
|
||||
* BROWN? = hidden from friends / but on DHT
|
||||
*/
|
||||
|
||||
const uint32_t RS_VIS_STATE_NODISC = 0x0001;
|
||||
const uint32_t RS_VIS_STATE_NODHT = 0x0002;
|
||||
|
||||
const uint32_t RS_VIS_STATE_STD = 0x0000;
|
||||
const uint32_t RS_VIS_STATE_GRAY = RS_VIS_STATE_NODHT;
|
||||
const uint32_t RS_VIS_STATE_DARK = RS_VIS_STATE_NODISC | RS_VIS_STATE_NODHT;
|
||||
const uint32_t RS_VIS_STATE_BROWN = RS_VIS_STATE_NODISC;
|
||||
|
||||
|
||||
/* RS_VIS_STATE -> specified in rspeers.h
|
||||
*/
|
||||
|
||||
/* Startup Modes (confirmed later) */
|
||||
const uint32_t RS_NET_MODE_TRYMODE = 0xff00;
|
||||
|
@ -90,8 +74,9 @@ class peerState
|
|||
std::string gpg_id;
|
||||
|
||||
uint32_t netMode; /* EXT / UPNP / UDP / HIDDEN / INVALID */
|
||||
uint32_t visState; /* STD, GRAY, DARK */
|
||||
|
||||
/* visState */
|
||||
uint16_t vs_disc;
|
||||
uint16_t vs_dht;
|
||||
|
||||
struct sockaddr_storage localaddr;
|
||||
struct sockaddr_storage serveraddr;
|
||||
|
@ -130,7 +115,8 @@ class p3PeerMgr
|
|||
virtual ~p3PeerMgr() { return; }
|
||||
|
||||
virtual bool addFriend(const std::string &ssl_id, const std::string &gpg_id, uint32_t netMode = RS_NET_MODE_UDP,
|
||||
uint32_t visState = RS_VIS_STATE_STD , time_t lastContact = 0,ServicePermissionFlags = ServicePermissionFlags(RS_SERVICE_PERM_ALL)) = 0;
|
||||
uint16_t vsDisc = RS_VS_DISC_FULL, uint16_t vsDht = RS_VS_DHT_FULL,
|
||||
time_t lastContact = 0,ServicePermissionFlags = ServicePermissionFlags(RS_SERVICE_PERM_ALL)) = 0;
|
||||
virtual bool removeFriend(const std::string &ssl_id, bool removePgpId) = 0;
|
||||
|
||||
virtual bool isFriend(const std::string &ssl_id) = 0;
|
||||
|
@ -166,7 +152,7 @@ virtual bool setExtAddress(const std::string &id, const struct sockaddr_storage
|
|||
virtual bool setDynDNS(const std::string &id, const std::string &dyndns) = 0;
|
||||
|
||||
virtual bool setNetworkMode(const std::string &id, uint32_t netMode) = 0;
|
||||
virtual bool setVisState(const std::string &id, uint32_t visState) = 0;
|
||||
virtual bool setVisState(const std::string &id, uint16_t vs_disc, uint16_t vs_dht) = 0;
|
||||
|
||||
virtual bool setLocation(const std::string &pid, const std::string &location) = 0;
|
||||
virtual bool setHiddenDomainPort(const std::string &id, const std::string &domain_addr, const uint16_t domain_port) = 0;
|
||||
|
@ -228,7 +214,8 @@ class p3PeerMgrIMPL: public p3PeerMgr, public p3Config
|
|||
/************************************************************************************************/
|
||||
|
||||
virtual bool addFriend(const std::string &ssl_id, const std::string &gpg_id, uint32_t netMode = RS_NET_MODE_UDP,
|
||||
uint32_t visState = RS_VIS_STATE_STD , time_t lastContact = 0,ServicePermissionFlags = ServicePermissionFlags(RS_SERVICE_PERM_ALL));
|
||||
uint16_t vsDisc = RS_VS_DISC_FULL, uint16_t vsDht = RS_VS_DHT_FULL,
|
||||
time_t lastContact = 0,ServicePermissionFlags = ServicePermissionFlags(RS_SERVICE_PERM_ALL));
|
||||
virtual bool removeFriend(const std::string &ssl_id, bool removePgpId);
|
||||
|
||||
virtual bool isFriend(const std::string &ssl_id);
|
||||
|
@ -264,7 +251,7 @@ virtual bool setExtAddress(const std::string &id, const struct sockaddr_storage
|
|||
virtual bool setDynDNS(const std::string &id, const std::string &dyndns);
|
||||
|
||||
virtual bool setNetworkMode(const std::string &id, uint32_t netMode);
|
||||
virtual bool setVisState(const std::string &id, uint32_t visState);
|
||||
virtual bool setVisState(const std::string &id, uint16_t vs_disc, uint16_t vs_dht);
|
||||
|
||||
virtual bool setLocation(const std::string &pid, const std::string &location);
|
||||
virtual bool setHiddenDomainPort(const std::string &id, const std::string &domain_addr, const uint16_t domain_port);
|
||||
|
@ -323,7 +310,7 @@ void tick();
|
|||
|
||||
const std::string getOwnId();
|
||||
bool setOwnNetworkMode(uint32_t netMode);
|
||||
bool setOwnVisState(uint32_t visState);
|
||||
bool setOwnVisState(uint16_t vs_disc, uint16_t vs_dht);
|
||||
|
||||
int getConnectAddresses(const std::string &id,
|
||||
struct sockaddr_storage &lAddr, struct sockaddr_storage &eAddr,
|
||||
|
|
|
@ -175,9 +175,9 @@ void pqiIpAddrList::extractFromTlv(const RsTlvIpAddrSet &tlvAddrs)
|
|||
}
|
||||
}
|
||||
|
||||
void pqiIpAddrList::loadTlv(RsTlvIpAddrSet &tlvAddrs)
|
||||
void pqiIpAddrList::loadTlv(RsTlvIpAddrSet &tlvAddrs) const
|
||||
{
|
||||
std::list<pqiIpAddress>::iterator it;
|
||||
std::list<pqiIpAddress>::const_iterator it;
|
||||
|
||||
for(it = mAddrs.begin(); it != mAddrs.end() ; ++it)
|
||||
{
|
||||
|
|
|
@ -51,7 +51,7 @@ class pqiIpAddrList
|
|||
bool updateIpAddressList(const pqiIpAddress &addr);
|
||||
void printIpAddressList(std::string &out) const;
|
||||
void extractFromTlv(const RsTlvIpAddrSet &tlvAddrs);
|
||||
void loadTlv(RsTlvIpAddrSet &tlvAddrs);
|
||||
void loadTlv(RsTlvIpAddrSet &tlvAddrs) const;
|
||||
|
||||
// sorted list... based on seen time.
|
||||
std::list<pqiIpAddress> mAddrs;
|
||||
|
|
|
@ -26,7 +26,6 @@
|
|||
#include "pqi/pqi.h"
|
||||
#include "pqi/pqiperson.h"
|
||||
#include "pqi/pqipersongrp.h"
|
||||
#include "services/p3disc.h"
|
||||
|
||||
const int pqipersonzone = 82371;
|
||||
#include "util/rsdebug.h"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue