Browse Source

Merge pull request #3248 from zsfelfoldi/light-topic3

Topic discovery bugfix
Felix Lange 9 years ago
parent
commit
932d973e36
2 changed files with 8 additions and 2 deletions
  1. 5 2
      les/handler.go
  2. 3 0
      p2p/discv5/net.go

+ 5 - 2
les/handler.go

@@ -236,7 +236,7 @@ func (pm *ProtocolManager) removePeer(id string) {
 }
 
 func (pm *ProtocolManager) findServers() {
-	if pm.p2pServer == nil {
+	if pm.p2pServer == nil || pm.topicDisc == nil {
 		return
 	}
 	enodes := make(chan string, 100)
@@ -259,7 +259,10 @@ func (pm *ProtocolManager) findServers() {
 			}
 		}
 	}()
-	time.Sleep(time.Second * 20)
+	select {
+	case <-time.After(time.Second * 20):
+	case <-pm.quitSync:
+	}
 	close(stop)
 }
 

+ 3 - 0
p2p/discv5/net.go

@@ -863,6 +863,9 @@ func init() {
 		name: "verifywait",
 		handle: func(net *Network, n *Node, ev nodeEvent, pkt *ingressPacket) (*nodeState, error) {
 			switch ev {
+			case pingPacket:
+				net.handlePing(n, pkt)
+				return verifywait, nil
 			case pongPacket:
 				err := net.handleKnownPong(n, pkt)
 				return known, err