From 39c1f46f857aeb34a6ca9bc61cea044f166927f7 Mon Sep 17 00:00:00 2001 From: Olaoluwa Osuntokun Date: Sat, 30 Jun 2018 17:14:22 -0500 Subject: [PATCH] routing: new newLogClosure to delay spew evaluation until log print time In this commit, we update the generateSphinxPacket to use newLogClosure to delay the spew evaluation until log print time. Before this commit, even if we weren't on the trace logging level, the spew call would always be evaluated. --- routing/router.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/routing/router.go b/routing/router.go index 4f3a5bfb..d03f1634 100644 --- a/routing/router.go +++ b/routing/router.go @@ -1458,7 +1458,10 @@ func generateSphinxPacket(route *Route, paymentHash []byte) ([]byte, hopPayloads := route.ToHopPayloads() log.Tracef("Constructed per-hop payloads for payment_hash=%x: %v", - paymentHash[:], spew.Sdump(hopPayloads)) + paymentHash[:], newLogClosure(func() string { + return spew.Sdump(hopPayloads) + }), + ) sessionKey, err := btcec.NewPrivateKey(btcec.S256()) if err != nil { @@ -1467,8 +1470,9 @@ func generateSphinxPacket(route *Route, paymentHash []byte) ([]byte, // Next generate the onion routing packet which allows us to perform // privacy preserving source routing across the network. - sphinxPacket, err := sphinx.NewOnionPacket(nodes, sessionKey, - hopPayloads, paymentHash) + sphinxPacket, err := sphinx.NewOnionPacket( + nodes, sessionKey, hopPayloads, paymentHash, + ) if err != nil { return nil, nil, err }