interceptAccept method

  1. @override
bool interceptAccept(
  1. Conn conn
)
override

Tests whether an incipient inbound Conn is allowed.

This is called by the upgrader, or by the transport directly, straight after it has accepted a Conn from its socket.

Implementation

@override
bool interceptAccept(Conn conn) {
  if (isConnBlocked(conn.id)) {
    _logger.fine('Blocked connection accept: ${conn.id}');
    return false;
  }

  // Check total connection limit
  if (_activeConnections.length >= _maxConnections) {
    _logger.fine('Connection limit reached: ${_activeConnections.length} connections');
    return false;
  }

  // Check per-peer connection limit
  final peerIdStr = conn.remotePeer.toString();
  final peerConns = _peerConnections[peerIdStr] ?? {};
  if (peerConns.length >= _maxConnectionsPerPeer) {
    _logger.fine('Per-peer connection limit reached for peer $peerIdStr: ${peerConns.length} connections');
    return false;
  }

  // Track the connection
  _activeConnections.add(conn.id);
  _peerConnections[peerIdStr] = peerConns..add(conn.id);
  _setupConnectionTimeout(conn.id);
  _recordConnectionMetrics(conn.id, conn.remotePeer);
  return true;
}