mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-25 06:06:44 +00:00
fixed newPeerCh
This commit is contained in:
parent
f085237df3
commit
c48b7caf6a
1 changed files with 12 additions and 1 deletions
|
|
@ -133,7 +133,7 @@ func NewProtocolManager(chainConfig *core.ChainConfig, lightSync bool, networkId
|
||||||
txrelay: txrelay,
|
txrelay: txrelay,
|
||||||
odr: odr,
|
odr: odr,
|
||||||
peers: newPeerSet(),
|
peers: newPeerSet(),
|
||||||
newPeerCh: make(chan *peer, 1),
|
newPeerCh: make(chan *peer),
|
||||||
quitSync: make(chan struct{}),
|
quitSync: make(chan struct{}),
|
||||||
noMorePeers: make(chan struct{}),
|
noMorePeers: make(chan struct{}),
|
||||||
}
|
}
|
||||||
|
|
@ -152,6 +152,8 @@ func NewProtocolManager(chainConfig *core.ChainConfig, lightSync bool, networkId
|
||||||
case manager.newPeerCh <- peer:
|
case manager.newPeerCh <- peer:
|
||||||
manager.wg.Add(1)
|
manager.wg.Add(1)
|
||||||
defer manager.wg.Done()
|
defer manager.wg.Done()
|
||||||
|
fmt.Println("enter handler", p.ID())
|
||||||
|
defer fmt.Println("exit handler", p.ID())
|
||||||
return manager.handle(peer)
|
return manager.handle(peer)
|
||||||
case <-manager.quitSync:
|
case <-manager.quitSync:
|
||||||
return p2p.DiscQuitting
|
return p2p.DiscQuitting
|
||||||
|
|
@ -230,6 +232,10 @@ func (pm *ProtocolManager) Start() {
|
||||||
if pm.lightSync {
|
if pm.lightSync {
|
||||||
// start sync handler
|
// start sync handler
|
||||||
go pm.syncer()
|
go pm.syncer()
|
||||||
|
} else {
|
||||||
|
go func() {
|
||||||
|
for range pm.newPeerCh {}
|
||||||
|
}()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -268,10 +274,13 @@ func (pm *ProtocolManager) handle(p *peer) error {
|
||||||
// Execute the LES handshake
|
// Execute the LES handshake
|
||||||
td, head, genesis := pm.blockchain.Status()
|
td, head, genesis := pm.blockchain.Status()
|
||||||
headNum := core.GetBlockNumber(pm.chainDb, head)
|
headNum := core.GetBlockNumber(pm.chainDb, head)
|
||||||
|
fmt.Println("handshake")
|
||||||
if err := p.Handshake(td, head, headNum, genesis, pm.server); err != nil {
|
if err := p.Handshake(td, head, headNum, genesis, pm.server); err != nil {
|
||||||
glog.V(logger.Debug).Infof("%v: handshake failed: %v", p, err)
|
glog.V(logger.Debug).Infof("%v: handshake failed: %v", p, err)
|
||||||
|
fmt.Println(" err:", err)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
fmt.Println(" done")
|
||||||
if rw, ok := p.rw.(*meteredMsgReadWriter); ok {
|
if rw, ok := p.rw.(*meteredMsgReadWriter); ok {
|
||||||
rw.Init(p.version)
|
rw.Init(p.version)
|
||||||
}
|
}
|
||||||
|
|
@ -316,8 +325,10 @@ func (pm *ProtocolManager) handle(p *peer) error {
|
||||||
|
|
||||||
// main loop. handle incoming messages.
|
// main loop. handle incoming messages.
|
||||||
for {
|
for {
|
||||||
|
fmt.Println("handleMsg")
|
||||||
if err := pm.handleMsg(p); err != nil {
|
if err := pm.handleMsg(p); err != nil {
|
||||||
glog.V(logger.Debug).Infof("%v: message handling failed: %v", p, err)
|
glog.V(logger.Debug).Infof("%v: message handling failed: %v", p, err)
|
||||||
|
fmt.Println(" err:", err)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue