message: Cleanup inactivity checking
  Only do execute the code once every TIMEOUT_INTERVAL rather
  than every time we go through the send/receive loop.
diff: @@ -1561,41 +1561,43 @@ void ThreadSocketHandler()
  }
  //
  - // Inactivity checking
  + // Inactivity checking every TIMEOUT_INTERVAL
  //
  int64_t stopwatchTime = GetStopwatchMicros();
  - if (stopwatchTime - pnode->nStopwatchConnected > 60 * 1000000)
  + if (stopwatchTime - pnode->nStopwatchConnected > TIMEOUT_INTERVAL * 1000000)
  + {
  + pnode->nStopwatchConnected = GetTimeMicros();
  + if (ignoreNetTimeouts.Value() == false)
  {
  int64_t nTime = GetTime();
  if (pnode->nLastRecv == 0 || pnode->nLastSend == 0)
  {
  - LOG(NET, "Node %s socket no message in first 60 seconds, %d %d from %d\n", pnode->GetLogName(),
  - pnode->nLastRecv != 0, pnode->nLastSend != 0, pnode->id);
  - if (ignoreNetTimeouts.Value() == false)
  + LOG(NET, "Node %s: no message sent or received after startup, %d %d from %d\n",
  + pnode->GetLogName(), pnode->nLastRecv != 0, pnode->nLastSend != 0, pnode->id);
  pnode->fDisconnect = true;
  }
  else if (nTime - pnode->nLastSend > TIMEOUT_INTERVAL)
  {
  - LOG(NET, "Node %s socket sending timeout: %is\n", pnode->GetLogName(), nTime - pnode->nLastSend);
  - if (ignoreNetTimeouts.Value() == false)
  + LOG(NET, "Node %s: socket sending timeout: %is\n", pnode->GetLogName(),
  + nTime - pnode->nLastSend);
  pnode->fDisconnect = true;
  }
  else if (nTime - pnode->nLastRecv > TIMEOUT_INTERVAL)
  {
  - LOG(NET, "Node %s socket receive timeout: %is\n", pnode->GetLogName(), nTime - pnode->nLastRecv);
  - if (ignoreNetTimeouts.Value() == false)
  + LOG(NET, "Node %s: socket receive timeout: %is\n", pnode->GetLogName(),
  + nTime - pnode->nLastRecv);
  pnode->fDisconnect = true;
  }
  else if (pnode->nPingNonceSent &&
  pnode->nPingUsecStart + (TIMEOUT_INTERVAL * 1000000) < (int64_t)GetStopwatchMicros())
  {
  - LOG(NET, "Node %s ping timeout: %fs\n", pnode->GetLogName(),
  + LOG(NET, "Node %s: ping timeout: %fs\n", pnode->GetLogName(),
  0.000001 * (GetStopwatchMicros() - pnode->nPingUsecStart));
  - if (ignoreNetTimeouts.Value() == false)
  pnode->fDisconnect = true;
  }
  }
  }
  + }
  // A cs_vNodes lock is not required here when releasing refs for two reasons: one, this only decrements
  // an atomic counter, and two, the counter will always be > 0 at this point, so we don't have to worry
  // that a pnode could be disconnected and no longer exist before the decrement takes place.
  