Add the tunneling connection. Warning, encryption is not implemented yet for tunnel connection, use only for testing.

Redesign the udp connection
Remove the rsiface duplicates from retroshare-gui.
Add some randomness in timings for connect manager

Merge branch 'connectionTunneling'

Conflicts:
	libretroshare/src/libretroshare.pro
	libretroshare/src/pqi/p3connmgr.cc
	retroshare-gui/src/RetroShare.pro
	retroshare-gui/src/rsiface/rsfiles.h
	retroshare-gui/src/rsiface/rstypes.h

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1867 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
joss17 2009-12-13 21:59:26 +00:00
parent 1d567a7faa
commit fdb3673ce2
56 changed files with 2420 additions and 3394 deletions

View file

@ -437,7 +437,13 @@ bool p3Peers::getPeerDetails(std::string id, RsPeerDetails &d)
std::ostringstream autostr;
if (pcs.inConnAttempt)
{
autostr << "Trying " << inet_ntoa(pcs.currentConnAddrAttempt.addr.sin_addr) << ":" << ntohs(pcs.currentConnAddrAttempt.addr.sin_port);
if (pcs.currentConnAddrAttempt.type & RS_NET_CONN_TUNNEL) {
autostr << "Trying tunnel connection";
} else if (pcs.currentConnAddrAttempt.type & RS_NET_CONN_TCP_ALL) {
autostr << "Trying TCP : " << inet_ntoa(pcs.currentConnAddrAttempt.addr.sin_addr) << ":" << ntohs(pcs.currentConnAddrAttempt.addr.sin_port);
} else if (pcs.currentConnAddrAttempt.type & RS_NET_CONN_UDP_ALL) {
autostr << "Trying UDP : " << inet_ntoa(pcs.currentConnAddrAttempt.addr.sin_addr) << ":" << ntohs(pcs.currentConnAddrAttempt.addr.sin_port);
}
}
else if (pcs.state & RS_PEER_S_CONNECTED)
{
@ -449,7 +455,11 @@ bool p3Peers::getPeerDetails(std::string id, RsPeerDetails &d)
{
autostr << "Connected: UDP";
}
else
else if (pcs.connecttype == RS_NET_CONN_TUNNEL)
{
autostr << "Connected: Tunnel";
}
else
{
autostr << "Connected: Unknown";
}
@ -600,11 +610,24 @@ void p3Peers::allowServerIPDetermination(bool b)
{
mConnMgr->setIPServersEnabled(b) ;
}
bool p3Peers::getAllowServerIPDetermination()
void p3Peers::allowTunnelConnection(bool b)
{
std::cerr << "p3Peers::allowTunnelConnection() set tunnel to : " << b << std::endl;
mConnMgr->setTunnelConnection(b) ;
}
bool p3Peers::getAllowServerIPDetermination()
{
return mConnMgr->getIPServersEnabled() ;
}
bool p3Peers::getAllowTunnelConnection()
{
std::cerr << "p3Peers::getAllowTunnelConnection() tunnel is : " << mConnMgr->getTunnelConnection() << std::endl;
return mConnMgr->getTunnelConnection() ;
}
bool p3Peers::setLocalAddress(std::string id, std::string addr_str, uint16_t port)
{
#ifdef P3PEERS_DEBUG

View file

@ -76,7 +76,9 @@ virtual bool setVisState(std::string id, uint32_t mode);
virtual void getIPServersList(std::list<std::string>& ip_servers) ;
virtual void allowServerIPDetermination(bool) ;
virtual void allowTunnelConnection(bool) ;
virtual bool getAllowServerIPDetermination() ;
virtual bool getAllowTunnelConnection() ;
/* Auth Stuff */
virtual std::string GetRetroshareInvite();

View file

@ -1421,7 +1421,7 @@ std::string RsInit::getHomePath()
}
out << "fltkserver::getHomePath() -> " << home << std::endl;
std::cerr << out;
std::cerr << out.str();
// convert to FLTK desired format.
home = make_path_unix(home);
@ -1827,6 +1827,7 @@ RsTurtle *rsTurtle = NULL ;
#include "services/p3status.h"
#include "services/p3Qblog.h"
#include "turtle/p3turtle.h"
#include "services/p3tunnel.h"
#include <list>
#include <string>
@ -1976,6 +1977,10 @@ int RsServer::StartupRetroShare()
msgSrv = new p3MsgService(mConnMgr);
chatSrv = new p3ChatService(mConnMgr);
p3tunnel *tn = new p3tunnel(mAuthMgr,mConnMgr, pqih);
pqih -> addService(tn);
mConnMgr->setP3tunnel(tn);
p3turtle *tr = new p3turtle(mConnMgr,ftserver) ;
rsTurtle = tr ;
pqih -> addService(tr);