mirror of
https://github.com/fluencelabs/tendermint
synced 2025-05-30 22:51:19 +00:00
only allow one connection per ip
This commit is contained in:
parent
b92c0401e6
commit
4f94e0f200
@ -68,7 +68,7 @@ func newPeer(conn net.Conn, peerNodeInfo *types.NodeInfo, outbound bool, reactor
|
|||||||
mconn: mconn,
|
mconn: mconn,
|
||||||
running: 0,
|
running: 0,
|
||||||
NodeInfo: peerNodeInfo,
|
NodeInfo: peerNodeInfo,
|
||||||
Key: mconn.RemoteAddress.String(),
|
Key: mconn.RemoteAddress.IP.String(),
|
||||||
Data: NewCMap(),
|
Data: NewCMap(),
|
||||||
}
|
}
|
||||||
return p
|
return p
|
||||||
|
@ -170,9 +170,9 @@ func (pexR *PEXReactor) ensurePeers() {
|
|||||||
if try == nil {
|
if try == nil {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
alreadySelected := toDial.Has(try.String())
|
alreadySelected := toDial.Has(try.IP.String())
|
||||||
alreadyDialing := pexR.sw.IsDialing(try)
|
alreadyDialing := pexR.sw.IsDialing(try)
|
||||||
alreadyConnected := pexR.sw.Peers().Has(try.String())
|
alreadyConnected := pexR.sw.Peers().Has(try.IP.String())
|
||||||
if alreadySelected || alreadyDialing || alreadyConnected {
|
if alreadySelected || alreadyDialing || alreadyConnected {
|
||||||
/*
|
/*
|
||||||
log.Debug("Cannot dial address", "addr", try,
|
log.Debug("Cannot dial address", "addr", try,
|
||||||
@ -190,7 +190,7 @@ func (pexR *PEXReactor) ensurePeers() {
|
|||||||
if picked == nil {
|
if picked == nil {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
toDial.Set(picked.String(), picked)
|
toDial.Set(picked.IP.String(), picked)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Dial picked addresses
|
// Dial picked addresses
|
||||||
|
@ -188,9 +188,9 @@ func (sw *Switch) startInitPeer(peer *Peer) {
|
|||||||
|
|
||||||
func (sw *Switch) DialPeerWithAddress(addr *NetAddress) (*Peer, error) {
|
func (sw *Switch) DialPeerWithAddress(addr *NetAddress) (*Peer, error) {
|
||||||
log.Debug("Dialing address", "address", addr)
|
log.Debug("Dialing address", "address", addr)
|
||||||
sw.dialing.Set(addr.String(), addr)
|
sw.dialing.Set(addr.IP.String(), addr)
|
||||||
conn, err := addr.DialTimeout(peerDialTimeoutSeconds * time.Second)
|
conn, err := addr.DialTimeout(peerDialTimeoutSeconds * time.Second)
|
||||||
sw.dialing.Delete(addr.String())
|
sw.dialing.Delete(addr.IP.String())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Debug("Failed dialing address", "address", addr, "error", err)
|
log.Debug("Failed dialing address", "address", addr, "error", err)
|
||||||
return nil, err
|
return nil, err
|
||||||
@ -205,7 +205,7 @@ func (sw *Switch) DialPeerWithAddress(addr *NetAddress) (*Peer, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (sw *Switch) IsDialing(addr *NetAddress) bool {
|
func (sw *Switch) IsDialing(addr *NetAddress) bool {
|
||||||
return sw.dialing.Has(addr.String())
|
return sw.dialing.Has(addr.IP.String())
|
||||||
}
|
}
|
||||||
|
|
||||||
// Broadcast runs a go routine for each attempted send, which will block
|
// Broadcast runs a go routine for each attempted send, which will block
|
||||||
|
Loading…
x
Reference in New Issue
Block a user