mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-05-22 15:51:29 -04:00
Done most of the piping/callback between the DHT and LinkMgr/NetMgr.
* Added ConnectionFeedback fn to NetAssistConnect & p3BitDht. * Added TYPE definitions to pqiassist.h * added extra parameters to p3LinkMgr::connectAttempt() (flags which will be used to pass DIRECT/PROXY/DIRECT + PASSIVE/ACTIVE) * Added callback from p3LinkMgr to NetMgr::netAssistStatusUpdate() => Dht::ConnectionFeedback. * updated peerConnectRequest to trigger either TCP attempt (first) or UDP connection. * updated parameters for p3LinkMgrIMPL::tryConnectUDP() * added p3LinkMgrIMPL::locked_ConnectAttempt_SpecificAddress() for DHT => TCP attempt. * added extra parameter to addAddressIfUnique... bool addFront => DHT attempts get pushed to front of Queue due to timing requirements. * added extra parameter (flags) to pqiperson::connect() - matches extra parameters to p3LinkMgr::connectAttempt(). * added p3NetMgr::netAssistStatusUpdate() * added mConnectFlags to pqissludp git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-netupgrade@4443 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
parent
8d5bde1b50
commit
387db6e7b6
15 changed files with 275 additions and 49 deletions
|
@ -79,6 +79,7 @@ class peerConnectAddress
|
|||
uint32_t delay; /* to stop simultaneous connects */
|
||||
uint32_t period; /* UDP only */
|
||||
uint32_t type;
|
||||
uint32_t flags; /* CB FLAGS defined in pqimonitor.h */
|
||||
time_t ts;
|
||||
};
|
||||
|
||||
|
@ -169,7 +170,7 @@ virtual void removeMonitor(pqiMonitor *mon) = 0;
|
|||
|
||||
/****************** Connections *******************/
|
||||
virtual bool connectAttempt(const std::string &id, struct sockaddr_in &addr,
|
||||
uint32_t &delay, uint32_t &period, uint32_t &type) = 0;
|
||||
uint32_t &delay, uint32_t &period, uint32_t &type, uint32_t &flags) = 0;
|
||||
virtual bool connectResult(const std::string &id, bool success, uint32_t flags, struct sockaddr_in remote_peer_address) = 0;
|
||||
virtual bool retryConnect(const std::string &id) = 0;
|
||||
|
||||
|
@ -192,8 +193,8 @@ virtual bool getTunnelConnection() = 0; // ONLY used by p3peermgr.cc & p3
|
|||
// THESE MUSTn't BE specfied HERE - as overloaded from pqiConnectCb.
|
||||
//virtual void peerStatus(std::string id, const pqiIpAddrSet &addrs,
|
||||
// uint32_t type, uint32_t flags, uint32_t source) = 0;
|
||||
//virtual void peerConnectRequest(std::string id,
|
||||
// struct sockaddr_in raddr, uint32_t source) = 0;
|
||||
//virtual void peerConnectRequest(std::string id, struct sockaddr_in raddr,
|
||||
// uint32_t source, uint32_t flags, uint32_t delay) = 0;
|
||||
|
||||
/****************************************************************************/
|
||||
/****************************************************************************/
|
||||
|
@ -222,7 +223,7 @@ virtual void removeMonitor(pqiMonitor *mon);
|
|||
|
||||
/****************** Connections *******************/
|
||||
virtual bool connectAttempt(const std::string &id, struct sockaddr_in &addr,
|
||||
uint32_t &delay, uint32_t &period, uint32_t &type);
|
||||
uint32_t &delay, uint32_t &period, uint32_t &type, uint32_t &flags);
|
||||
virtual bool connectResult(const std::string &id, bool success, uint32_t flags, struct sockaddr_in remote_peer_address);
|
||||
virtual bool retryConnect(const std::string &id);
|
||||
|
||||
|
@ -233,8 +234,8 @@ virtual struct sockaddr_in getLocalAddress();
|
|||
/******* overloaded from pqiConnectCb *************/
|
||||
virtual void peerStatus(std::string id, const pqiIpAddrSet &addrs,
|
||||
uint32_t type, uint32_t flags, uint32_t source);
|
||||
virtual void peerConnectRequest(std::string id,
|
||||
struct sockaddr_in raddr, uint32_t source);
|
||||
virtual void peerConnectRequest(std::string id, struct sockaddr_in raddr,
|
||||
uint32_t source, uint32_t flags, uint32_t delay);
|
||||
|
||||
|
||||
/************* DEPRECIATED FUNCTIONS (TO REMOVE) ********/
|
||||
|
@ -280,11 +281,12 @@ void statusTick();
|
|||
void tickMonitors();
|
||||
|
||||
/* connect attempts UDP */
|
||||
bool retryConnectUDP(const std::string &id, struct sockaddr_in &rUdpAddr);
|
||||
bool tryConnectUDP(const std::string &id, struct sockaddr_in &rUdpAddr, uint32_t flags, uint32_t delay);
|
||||
|
||||
/* connect attempts TCP */
|
||||
bool retryConnectTCP(const std::string &id);
|
||||
|
||||
void locked_ConnectAttempt_SpecificAddress(peerConnectState *peer, struct sockaddr_in *remoteAddr);
|
||||
void locked_ConnectAttempt_CurrentAddresses(peerConnectState *peer, struct sockaddr_in *localAddr, struct sockaddr_in *serverAddr);
|
||||
void locked_ConnectAttempt_HistoricalAddresses(peerConnectState *peer, const pqiIpAddrSet &ipAddrs);
|
||||
void locked_ConnectAttempt_AddDynDNS(peerConnectState *peer, std::string dyndns, uint16_t dynPort);
|
||||
|
@ -293,8 +295,7 @@ void locked_ConnectAttempt_AddTunnel(peerConnectState *peer);
|
|||
bool locked_ConnectAttempt_Complete(peerConnectState *peer);
|
||||
|
||||
bool locked_CheckPotentialAddr(const struct sockaddr_in *addr, time_t age);
|
||||
bool addAddressIfUnique(std::list<peerConnectAddress> &addrList,
|
||||
peerConnectAddress &pca);
|
||||
bool addAddressIfUnique(std::list<peerConnectAddress> &addrList, peerConnectAddress &pca, bool pushFront);
|
||||
|
||||
|
||||
private:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue