fixed display of TOR connexions in the friend list

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@7642 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
csoler 2014-10-26 16:24:45 +00:00
parent bdc83c6748
commit 90b57337f5
4 changed files with 34 additions and 14 deletions

View file

@ -91,6 +91,7 @@ const uint32_t RS_PEER_CONNECTSTATE_TRYING_TCP = 2;
const uint32_t RS_PEER_CONNECTSTATE_TRYING_UDP = 3; const uint32_t RS_PEER_CONNECTSTATE_TRYING_UDP = 3;
const uint32_t RS_PEER_CONNECTSTATE_CONNECTED_TCP = 4; const uint32_t RS_PEER_CONNECTSTATE_CONNECTED_TCP = 4;
const uint32_t RS_PEER_CONNECTSTATE_CONNECTED_UDP = 5; const uint32_t RS_PEER_CONNECTSTATE_CONNECTED_UDP = 5;
const uint32_t RS_PEER_CONNECTSTATE_CONNECTED_TOR = 6;
const uint32_t RS_PEER_CONNECTSTATE_CONNECTED_UNKNOWN = 7; const uint32_t RS_PEER_CONNECTSTATE_CONNECTED_UNKNOWN = 7;

View file

@ -432,20 +432,22 @@ bool p3Peers::getPeerDetails(const RsPeerId& id, RsPeerDetails &d)
} }
} }
else if (pcs.state & RS_PEER_S_CONNECTED) else if (pcs.state & RS_PEER_S_CONNECTED)
{ {
if (pcs.connecttype == RS_NET_CONN_TCP_ALL) if(isProxyAddress(pcs.connectaddr))
{ d.connectState = RS_PEER_CONNECTSTATE_CONNECTED_TOR;
d.connectState = RS_PEER_CONNECTSTATE_CONNECTED_TCP; else if (pcs.connecttype == RS_NET_CONN_TCP_ALL)
} {
else if (pcs.connecttype == RS_NET_CONN_UDP_ALL) d.connectState = RS_PEER_CONNECTSTATE_CONNECTED_TCP;
{ }
d.connectState = RS_PEER_CONNECTSTATE_CONNECTED_UDP; else if (pcs.connecttype == RS_NET_CONN_UDP_ALL)
} {
else d.connectState = RS_PEER_CONNECTSTATE_CONNECTED_UDP;
{ }
d.connectState = RS_PEER_CONNECTSTATE_CONNECTED_UNKNOWN; else
} {
} d.connectState = RS_PEER_CONNECTSTATE_CONNECTED_UNKNOWN;
}
}
d.wasDeniedConnection = pcs.wasDeniedConnection; d.wasDeniedConnection = pcs.wasDeniedConnection;
d.deniedTS = pcs.deniedTS; d.deniedTS = pcs.deniedTS;
@ -453,6 +455,18 @@ bool p3Peers::getPeerDetails(const RsPeerId& id, RsPeerDetails &d)
return true; return true;
} }
bool p3Peers::isProxyAddress(const sockaddr_storage& addr)
{
uint16_t port ;
std::string string_addr;
uint32_t status ;
if(!getProxyServer(string_addr, port, status))
return false ;
return sockaddr_storage_iptostring(addr)==string_addr && sockaddr_storage_port(addr)==port ;
}
bool p3Peers::isKeySupported(const RsPgpId& id) bool p3Peers::isKeySupported(const RsPgpId& id)
{ {
return AuthGPG::getAuthGPG()->isKeySupported(id); return AuthGPG::getAuthGPG()->isKeySupported(id);

View file

@ -30,6 +30,7 @@
class p3LinkMgr; class p3LinkMgr;
class p3PeerMgr; class p3PeerMgr;
class p3NetMgr; class p3NetMgr;
struct sockaddr_storage;
class p3Peers: public RsPeers class p3Peers: public RsPeers
@ -95,6 +96,7 @@ virtual bool setVisState(const RsPeerId &id, uint16_t vs_disc, uint16_t vs_dht);
virtual bool getProxyServer(std::string &addr, uint16_t &port,uint32_t& status); virtual bool getProxyServer(std::string &addr, uint16_t &port,uint32_t& status);
virtual bool setProxyServer(const std::string &addr, const uint16_t port); virtual bool setProxyServer(const std::string &addr, const uint16_t port);
virtual bool isProxyAddress(const sockaddr_storage&);
virtual void getIPServersList(std::list<std::string>& ip_servers) ; virtual void getIPServersList(std::list<std::string>& ip_servers) ;
virtual void allowServerIPDetermination(bool) ; virtual void allowServerIPDetermination(bool) ;

View file

@ -156,6 +156,9 @@ QString StatusDefs::connectStateString(RsPeerDetails &details)
case RS_PEER_CONNECTSTATE_CONNECTED_UDP: case RS_PEER_CONNECTSTATE_CONNECTED_UDP:
stateString = qApp->translate("StatusDefs", "Connected: UDP"); stateString = qApp->translate("StatusDefs", "Connected: UDP");
break; break;
case RS_PEER_CONNECTSTATE_CONNECTED_TOR:
stateString = qApp->translate("StatusDefs", "Connected: TOR");
break;
case RS_PEER_CONNECTSTATE_CONNECTED_UNKNOWN: case RS_PEER_CONNECTSTATE_CONNECTED_UNKNOWN:
stateString = qApp->translate("StatusDefs", "Connected: Unknown"); stateString = qApp->translate("StatusDefs", "Connected: Unknown");
break; break;