From e7030c4bf59e8e148822c50ae1a5896c604c38c1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?P=C3=A9ter=20Szil=C3=A1gyi?= <peterke@gmail.com>
Date: Fri, 3 Mar 2017 11:41:52 +0200
Subject: all: update light logs (and a few others) to the new model

---
 les/odr.go | 33 ++++++++++++++++-----------------
 1 file changed, 16 insertions(+), 17 deletions(-)

(limited to 'les/odr.go')

diff --git a/les/odr.go b/les/odr.go
index 78c7c1af4..afc894ab5 100644
--- a/les/odr.go
+++ b/les/odr.go
@@ -19,7 +19,6 @@ package les
 import (
 	"crypto/rand"
 	"encoding/binary"
-	"fmt"
 	"sync"
 	"time"
 
@@ -70,9 +69,8 @@ func (odr *LesOdr) Database() ethdb.Database {
 	return odr.db
 }
 
-// validatorFunc is a function that processes a message and returns true if
-// it was a meaningful answer to a given request
-type validatorFunc func(ethdb.Database, *Msg) bool
+// validatorFunc is a function that processes a message.
+type validatorFunc func(ethdb.Database, *Msg) error
 
 // sentReq is a request waiting for an answer that satisfies its valFunc
 type sentReq struct {
@@ -113,18 +111,19 @@ func (self *LesOdr) Deliver(peer *peer, msg *Msg) error {
 		return errResp(ErrUnexpectedResponse, "reqID = %v", msg.ReqID)
 	}
 
-	if req.valFunc(self.db, msg) {
-		close(delivered)
-		req.lock.Lock()
-		delete(req.sentTo, peer)
-		if req.answered != nil {
-			close(req.answered)
-			req.answered = nil
-		}
-		req.lock.Unlock()
-		return nil
+	if err := req.valFunc(self.db, msg); err != nil {
+		peer.Log().Warn("Invalid odr response", "err", err)
+		return errResp(ErrInvalidResponse, "reqID = %v", msg.ReqID)
+	}
+	close(delivered)
+	req.lock.Lock()
+	delete(req.sentTo, peer)
+	if req.answered != nil {
+		close(req.answered)
+		req.answered = nil
 	}
-	return errResp(ErrInvalidResponse, "reqID = %v", msg.ReqID)
+	req.lock.Unlock()
+	return nil
 }
 
 func (self *LesOdr) requestPeer(req *sentReq, peer *peer, delivered, timeout chan struct{}, reqWg *sync.WaitGroup) {
@@ -151,7 +150,7 @@ func (self *LesOdr) requestPeer(req *sentReq, peer *peer, delivered, timeout cha
 	select {
 	case <-delivered:
 	case <-time.After(hardRequestTimeout):
-		log.Debug(fmt.Sprintf("ODR hard request timeout from peer %v", peer.id))
+		peer.Log().Debug("Request timed out hard")
 		go self.removePeer(peer.id)
 	case <-self.stop:
 		return
@@ -237,7 +236,7 @@ func (self *LesOdr) Retrieve(ctx context.Context, req light.OdrRequest) (err err
 		// retrieved from network, store in db
 		req.StoreResult(self.db)
 	} else {
-		log.Debug(fmt.Sprintf("networkRequest  err = %v", err))
+		log.Debug("Failed to retrieve data from network", "err", err)
 	}
 	return
 }
-- 
cgit v1.2.3