p2p/server: allow setting MaxPeers dynamically

Signed-off-by: Csaba Kiraly <csaba.kiraly@gmail.com>
This commit is contained in:
Csaba Kiraly 2025-05-03 10:38:42 +02:00
parent 2619478ae9
commit 5046ea5626
No known key found for this signature in database
GPG key ID: 0FE274EE8C95166E
2 changed files with 11 additions and 0 deletions

View file

@ -185,6 +185,10 @@ func newDialScheduler(config dialConfig, it enode.Iterator, setupFunc dialSetupF
return d
}
func (d *dialScheduler) setMaxDialPeers(maxDialPeers int) {
d.maxDialPeers = maxDialPeers
}
// stop shuts down the dialer, canceling all current dial tasks.
func (d *dialScheduler) stop() {
d.cancel()

View file

@ -420,6 +420,13 @@ func (srv *Server) Start() (err error) {
return nil
}
func (srv *Server) SetMaxPeers(max int) {
srv.lock.Lock()
defer srv.lock.Unlock()
srv.MaxPeers = max
srv.dialsched.setMaxDialPeers(srv.MaxDialedConns())
}
func (srv *Server) setupLocalNode() error {
// Create the devp2p handshake.
pubkey := crypto.FromECDSAPub(&srv.PrivateKey.PublicKey)