summaryrefslogtreecommitdiff
path: root/node/Switch.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'node/Switch.hpp')
-rw-r--r--node/Switch.hpp19
1 files changed, 4 insertions, 15 deletions
diff --git a/node/Switch.hpp b/node/Switch.hpp
index 7c903ef9..9245c036 100644
--- a/node/Switch.hpp
+++ b/node/Switch.hpp
@@ -55,7 +55,6 @@ class Switch : NonCopyable
{
public:
Switch(const RuntimeEnvironment *renv);
- ~Switch();
/**
* Called when a packet is received from the real network
@@ -92,21 +91,10 @@ public:
* Needless to say, the packet's source must be this node. Otherwise it
* won't be encrypted right. (This is not used for relaying.)
*
- * @param packet Packet to send
+ * @param packet Packet to send (buffer may be modified)
* @param encrypt Encrypt packet payload? (always true except for HELLO)
*/
- void send(const Packet &packet,bool encrypt);
-
- /**
- * Send RENDEZVOUS to two peers to permit them to directly connect
- *
- * This only works if both peers are known, with known working direct
- * links to this peer. The best link for each peer is sent to the other.
- *
- * @param p1 One of two peers (order doesn't matter)
- * @param p2 Second of pair
- */
- bool unite(const Address &p1,const Address &p2);
+ void send(Packet &packet,bool encrypt);
/**
* Request WHOIS on a given address
@@ -136,8 +124,9 @@ public:
unsigned long doTimerTasks(uint64_t now);
private:
+ bool _shouldUnite(const uint64_t now,const Address &source,const Address &destination);
Address _sendWhoisRequest(const Address &addr,const Address *peersAlreadyConsulted,unsigned int numPeersAlreadyConsulted);
- bool _trySend(const Packet &packet,bool encrypt);
+ bool _trySend(Packet &packet,bool encrypt); // packet is modified if return is true
const RuntimeEnvironment *const RR;
uint64_t _lastBeaconResponse;