diff options
author | Bas van Kervel <basvankervel@gmail.com> | 2016-12-01 00:47:39 +0800 |
---|---|---|
committer | Bas van Kervel <basvankervel@gmail.com> | 2016-12-01 00:47:39 +0800 |
commit | 56b446190aedf7970c9532b1e428fbf1b5b94413 (patch) | |
tree | 9b64332963e5c8bfae5c9b3a4f50a1e533e489f2 | |
parent | 86f9e836bea8161d9f6c1dacaa0b208e86b42e83 (diff) | |
download | dexon-56b446190aedf7970c9532b1e428fbf1b5b94413.tar.gz dexon-56b446190aedf7970c9532b1e428fbf1b5b94413.tar.zst dexon-56b446190aedf7970c9532b1e428fbf1b5b94413.zip |
ethstats: check if received event is valid
-rw-r--r-- | ethstats/ethstats.go | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/ethstats/ethstats.go b/ethstats/ethstats.go index b87f5ab78..a5fa84468 100644 --- a/ethstats/ethstats.go +++ b/ethstats/ethstats.go @@ -145,13 +145,21 @@ func (s *Service) loop() { glog.V(logger.Warn).Infof("Full stats report failed: %v", err) } case head := <-headSub.Chan(): + if head == nil { // node stopped + conn.Close() + return + } if err = s.reportBlock(out, head.Data.(core.ChainHeadEvent).Block); err != nil { glog.V(logger.Warn).Infof("Block stats report failed: %v", err) } if err = s.reportPending(out); err != nil { glog.V(logger.Warn).Infof("Post-block transaction stats report failed: %v", err) } - case <-txSub.Chan(): + case ev := <-txSub.Chan(): + if ev == nil { // node stopped + conn.Close() + return + } // Exhaust events to avoid reporting too frequently for exhausted := false; !exhausted; { select { |