upleb.uk

Public git repos — served from a NIP-34 GRASP relay at git.upleb.uk

summaryrefslogtreecommitdiff
path: root/src/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.cpp')
-rw-r--r--src/main.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/main.cpp b/src/main.cpp
index d4fc6d0..f4e6ce2 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -2190,6 +2190,18 @@ bool ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv)
2190 } 2190 }
2191 2191
2192 2192
2193 else if (strCommand == "ping")
2194 {
2195 // Nothing to do and nothing to answer. Arriving at all is the entire
2196 // content of the message: the receive path has already stamped
2197 // nLastRecv, which is what the sender wanted us to notice.
2198 //
2199 // Deliberately no reply. A node old enough not to know "ping" ignores
2200 // it as an unknown command and would never answer one, so a scheme
2201 // that required an answer would read every such peer as dead.
2202 }
2203
2204
2193 else 2205 else
2194 { 2206 {
2195 // Ignore unknown commands for extensibility 2207 // Ignore unknown commands for extensibility
@@ -2222,6 +2234,17 @@ bool SendMessages(CNode* pto)
2222 2234
2223 2235
2224 // 2236 //
2237 // Message: keep-alive ping
2238 //
2239 // Only when we have nothing else queued -- any real message serves the
2240 // same purpose. A peer with nothing to relay is otherwise silent, and
2241 // silence is exactly what the inactivity check disconnects on.
2242 //
2243 if (pto->nLastSend && GetTime() - pto->nLastSend > BTF_PING_INTERVAL_SECS && pto->vSend.empty())
2244 pto->PushMessage("ping");
2245
2246
2247 //
2225 // Message: inventory 2248 // Message: inventory
2226 // 2249 //
2227 vector<CInv> vInventoryToSend; 2250 vector<CInv> vInventoryToSend;